Plausible Goals and Custom Events: Conversion Tracking Guide
Set up Plausible goals, custom events, funnels and revenue tracking the right way, with the CE versus cloud differences, real code, a worked funnel and the mistakes that break conversion data.

You installed Plausible, the dashboard fills up with pageviews, and then someone asks the only question that matters: which of those visits turned into signups, leads or revenue. Pageviews do not answer that. Goals, funnels and revenue tracking do, and Plausible supports all three, but the setup has sharp edges: some features require the Business plan on cloud, and funnels and revenue goals do not exist at all in the self-hosted Community Edition. This guide walks through the full conversion-tracking setup, with real code, a worked funnel, and an honest map of what works where.
Everything below is verified against Plausible's official documentation as of November 2026. Where cloud and self-hosted differ, we say so explicitly.
What counts as a goal in Plausible
Plausible has two goal types:
- Pageview goals. A visit to a specific URL, such as
/thank-youor/signup/success. No code required. You type the path into site settings and Plausible starts counting matching pageviews. - Custom event goals. Any action you define: a button click, a form submit, a video play, a scroll depth. These need a small JavaScript snippet or a CSS class on the element.
On top of those, Plausible can auto-track four common actions without any code at all: outbound link clicks, form submissions, file downloads and 404 error pages. You toggle these in site settings under Tracking, and the script handles the rest. If your conversion is "visitor clicked our app store link" or "visitor downloaded the pricing PDF", you may already be done.
Two things to know about how goals behave:
- A goal only appears in the dashboard after it has converted at least once. Do not panic when a freshly created goal shows nothing.
- Clicking a goal in the dashboard filters the entire view by converting visitors. You instantly see which sources, pages, countries and campaigns produced conversions. This one-click segmentation is where Plausible goals pay for themselves.
Set up pageview goals, step by step
This is the procedure for the most common case: tracking visits to a confirmation page.
- In your Plausible dashboard, open site settings and go to the Goals section.
- Click "Add goal" and choose "Pageview" as the trigger.
- Enter the path exactly as Plausible records it, for example
/thank-you. Wildcards are supported, so/blog/*matches every post. - Save, then visit the page yourself to trigger a conversion.
- Check the dashboard. The goal appears under the Goal Conversions report once the first conversion lands.
A detail that trips people up: Plausible strips all query parameters except ref, source and the five utm_* tags (utm_source, utm_medium, utm_campaign, utm_content, utm_term) before storing page URLs. If your confirmation page is /checkout?order=123, Plausible sees /checkout. That is what your goal should match. If a funnel step shows zero, open the Top Pages report and copy the URL exactly as recorded there.
Custom events: two ways to track any action
Pageview goals cover confirmation pages. Everything else is a custom event. There are two implementation styles, both documented in Plausible's custom event goals guide.
The CSS class approach (no JavaScript)
Add a specially named class to any clickable element:
<button class="plausible-event-name=Signup plausible-event-plan=Pro">
Start free trial
</button>
When a visitor clicks, Plausible fires an event named Signup with a property plan set to Pro. Use + for spaces in names: plausible-event-name=Download+Whitepaper. This works well for marketers who can edit templates but do not want to touch JavaScript, and there are official integrations for WordPress and Google Tag Manager if you want a fully codeless setup.
The JavaScript approach (full control)
For anything dynamic, call the plausible function directly:
plausible('Signup', { props: { plan: 'Pro', method: 'google-oauth' } });
Use this for SPA route changes, form success callbacks, video milestones or any event that depends on runtime state. Then register Signup as a custom event goal in site settings, or let Plausible prompt you to add it the first time the event arrives.
One cost note that surprises people on cloud: custom events count toward your billable monthly pageviews. Tracking ten events per visit multiplies your event volume. On the entry tiers that can push you into a higher plan, so track decisions, not noise.
Custom properties: the context that makes events useful
An event named Signup tells you it happened. Properties tell you which plan, which method, which page variant. Plausible's custom properties are the equivalent of Google Analytics custom dimensions, documented at the custom properties introduction.
The hard limits:
- Up to 30 properties per event.
- Property names up to 300 characters, values up to 2,000. Scalars only: strings, numbers, booleans.
- You can attach properties in the snippet itself via
plausible.init({ customProperties: {...} }), for examplepage_typeorlogged_inon every pageview.
The hard rule: never send personally identifiable information. No names, emails, IP addresses or pseudonymous user IDs. This is not just policy. Property values cannot be deleted individually; the only way to remove them is to wipe the site's stats entirely. Treat every property value as permanent and public to anyone with dashboard access.
A feature worth knowing: property-filtered goals. You can define a goal that matches an event only when a property has a specific value, for example Signup where plan=Pro, and use that as a funnel step. That is how you build per-plan signup funnels without multiplying event names.
Build a funnel that does not lie to you
Funnels are a Business plan feature on Plausible cloud, documented in the funnel analysis guide. A funnel is 2 to 8 ordered goals, and Plausible reports how many visitors completed each step in sequence.
The three funnel types
- Sequential (the default): steps must happen in order, but visitors can do other things in between. Right for most signup and checkout flows.
- Flexible: only the first and last steps are required in order; middle steps can be skipped. Right when a step is optional, like a cart page in a shop that allows buy-now.
- Strict: exact consecutive order. Any detour disqualifies the visit. Useful for diagnosing UX confusion, but expect low numbers by design.
A worked example with real numbers
Say a SaaS site gets 10,000 visitors a month and you build this sequential funnel:
- Step 1, /pricing viewed: 2,000 visitors (20% of all traffic)
- Step 2, /register completed: 400 (20% of pricing viewers)
- Step 3, onboarding step 1 done: 300 (75%)
- Step 4, reached dashboard: 240 (80%)
End to end, 2.4% of visitors activate. The funnel tells you where to work: the pricing-to-register step loses 80%, while onboarding leaks only a quarter. A 10-point improvement at step 1 to 2 (400 to 600 registrations) adds more activated users than doubling onboarding completion. Without the funnel, teams routinely polish the steps they can see, which are rarely the steps that leak.
Three honest limitations, all from the official docs:
- Funnels are not retroactive. They only count visits recorded after you create the funnel. Create them early.
- No branching or conditional paths. To compare two checkout variants, build two separate funnels.
- Funnels work across subdomains, and detours to Stripe or PayPal do not break them, because Plausible automatically excludes payment processor referrals from attribution.
Revenue tracking: money on the dashboard
Also a Business plan feature, documented in Plausible's ecommerce revenue tracking guide. You assign a currency to a goal when you create it, then send amounts with the event:
plausible('Purchase', {
revenue: { currency: 'USD', amount: 49.00 },
props: { plan: 'Pro', billing: 'annual' }
});
Rules that matter:
- Amounts are in major units (49.00, not 4900), as numbers, not strings. Currency codes follow the ISO 4217 standard: three letters, so USD, EUR, KES.
- The goal's base currency is locked at creation. You can send other currencies per purchase and Plausible converts, but you cannot change the goal's currency later.
- Fire the event on the confirmation page, not the checkout button. A button click is intent; a confirmation page is money. Firing early inflates revenue with failed payments.
- One
Purchaseevent with properties beats five product-specific events. You get total revenue, average revenue and conversion rate, and you can still break down by plan or product via properties.
The attribution detail that makes this trustworthy: PayPal, Stripe, Paddle and other payment gateways are automatically excluded as referrers, so the sale is credited to the campaign or source that actually brought the visitor, not to stripe.com. On WordPress, the official plugin tracks WooCommerce purchases automatically, including a prebuilt purchase funnel.
The dashboard then shows unique and total conversions, conversion rate, total revenue and average revenue per conversion, all filterable by source, campaign, page, device or country.
The CE versus cloud reality check
This is the section most guides skip, and it decides your architecture.
Plausible Community Edition is free, open source (AGPLv3) and self-hosted, but it is not feature-complete. Per Plausible's own self-hosted comparison, CE does not include marketing funnels, user journeys, ecommerce revenue goals, SSO or the sites API. Those are not paywalled tiers inside CE; they are absent from the codebase published in the community-edition repository, which ships as Docker Compose services on a twice-yearly release cycle. Cloud is also updated multiple times a week while CE ships roughly twice a year, and cloud adds bot filtering based on about 32,000 data-center IP ranges on top of CE's user-agent and referrer-spam filtering.
So the decision table, in words:
- Self-hosted CE: pageview goals and custom event goals work. Custom properties work. Funnels and revenue tracking do not exist. Fine if you need traffic and basic conversion counting with full data residency.
- Cloud Starter ($9 per month for one site and up to 10k monthly pageviews, or $90 per year): goals and custom events included, no custom properties, no funnels, no revenue.
- Cloud Growth ($14 per month at the same tier): up to three sites and three team members, shared links and embedded dashboards, still no funnels or revenue.
- Cloud Business ($19 per month at the 10k pageview tier): up to ten sites and team members, custom properties, the stats API (600 requests per hour), ecommerce revenue attribution, funnels and user journeys. This is the tier this guide's funnel and revenue sections require.
If you are committed to self-hosting for data residency, say under Kenya's Data Protection Act or an internal bank policy, and you also need funnels, the honest options are: pay for cloud Business and accept EU hosting (Plausible cloud runs on German infrastructure and data never leaves the EU, per their data policy), or run CE for traffic and pair it with a product analytics tool for funnel work. We compared the self-hosted analytics options in Plausible vs Matomo: Choosing Self-Hosted Web Analytics, and the setup and server costs of CE in How to Self-Host Plausible Analytics.
Attribute conversions to what caused them
Conversion counts without sources are trivia. Plausible's answer is UTM tags plus automatic channel grouping, covered in the top referrers documentation.
- Tag every link you control. Newsletter links, social bios, partner placements, ad campaigns. Plausible keeps only
utm_source,utm_medium,utm_campaign,utm_content,utm_term,refandsource; everything else is stripped before storage. - Use the Channels report. It groups sources into Paid Search, Social, Email and, notably, an AI Assistants channel covering ChatGPT, Claude, Perplexity, Gemini and Copilot referrals. If you publish content, this channel is increasingly where conversions come from.
- Click to segment. Clicking any source, campaign or goal filters the whole dashboard. Source quality shows up immediately in bounce rate and visit duration, and goal-filtered views show you which campaign actually produced revenue rather than raw clicks.
If you want goal completions pushed into Slack, a CRM or a weekly digest, the stats API (Business plan, 600 requests per hour) plus an n8n workflow covers it. That kind of wiring is exactly what our business automation service builds for teams.
Common mistakes that break conversion data
These are the failures that show up again and again, most of them straight from Plausible's troubleshooting docs:
- Mismatched goal URLs. A funnel step shows zero because the goal is
/thank-youbut Plausible records/thank-you/or the page lives on a subdomain. Always copy the URL from the Top Pages report. - Firing revenue on button clicks. You end up reporting intent as income. Fire on the confirmation page.
- Strict funnels by default. Strict mode disqualifies any visit with an interleaved action. Start with Sequential, use Strict only to diagnose.
- Expecting retroactive funnels. Funnels count from creation onward. Build them the week you launch tracking, not the quarter you need the report.
- Sending PII in properties. It cannot be deleted selectively. A full data wipe is the only fix.
- Event spam on cloud. Every custom event is a billable event. Ten events per pageview can triple your billable volume.
- SPA misconfiguration. The script auto-tracks
pushStatenavigations, but Turbo or Turbolinks setups needautoCapturePageviews: falseand manual calls, per the script extensions reference. Symptoms are double-counted or missing pageviews, which silently corrupt every funnel step.
When Plausible is the wrong tool
Plausible is web analytics with goals and funnels, not product analytics. Be honest about the boundary:
- You need user-level profiles, cohorts or retention curves. Plausible deliberately has no cross-device or cross-day user stitching; the daily-rotating visitor hash described in its data policy makes that impossible by design. Use PostHog or Matomo.
- You need session recordings or heatmaps. Plausible has none. Pair it with a dedicated tool or choose a platform that includes them.
- You need funnels with branching logic or more than 8 steps. That is product analytics territory.
- You must self-host and must have revenue attribution. CE cannot do it. Matomo's self-hosted funnels or a PostHog deployment fit better.
If you are still on GA4 and weighing the move, the conversion-tracking differences are covered in How to Migrate From Google Analytics to Plausible: A Safe Playbook, and the money side of the decision in Plausible vs Google Analytics: Real Cost and Privacy Trade-Offs.
Frequently asked questions
Are Plausible funnels available in the self-hosted Community Edition? No. Funnels, user journeys and ecommerce revenue goals are cloud-only features, and on cloud they require the Business plan. CE supports pageview goals, custom events and custom properties.
Do Plausible goals work retroactively? Goals count from the moment data matching them exists, so pageview goals backfill from historical pageviews, but funnels only count visits recorded after the funnel is created. Create funnels early.
Do custom events increase my Plausible bill? On cloud, yes. Billable monthly pageviews include custom events, so heavy event tracking can push you into a higher traffic tier. On self-hosted CE there is no bill, only your server costs.
Can I track revenue in multiple currencies? Yes. You lock a display currency when you create the goal and send each purchase in its own currency; Plausible converts to the goal currency. Send amounts in major units as numbers, with ISO 4217 currency codes.
How do I track conversions without a developer? Use pageview goals for confirmation pages, toggle on the built-in outbound link, form, file download and 404 tracking, and use the CSS class method or the official WordPress plugin and Google Tag Manager template for button clicks. No JavaScript required for any of that.
Does Plausible show which marketing campaign produced a conversion? Yes. Tag links with UTM parameters, then click any goal to filter the dashboard by converting visitors. You see sources, campaigns and channels, including an AI Assistants channel for traffic from tools like ChatGPT and Perplexity.
Where to go from here
Start with one pageview goal on your most important confirmation page today, add two or three custom events for the actions that predict revenue, and create your funnel now even if you do not need the report yet, because funnels are not retroactive. If you want Plausible deployed, upgraded and managed for you, self-hosted for data residency or on cloud, that is part of our managed open-source stack service, and we are happy to talk through which edition actually fits your reporting needs before you commit to either.
About AI Agents Plus Editorial
AI automation expert and thought leader in business transformation through artificial intelligence.



