Loading article…
Loading article…
Last updated on Aug 28, 2026
Advanced Billing hosts some of the pages your customers pass through on their way to buying from you, so a complete picture of your funnel means tracking those pages alongside your own site. This article covers what Advanced Billing gives you to work with: where your tracking code runs, the transaction values the receipt page publishes, the parameters a redirect can carry, and the URL patterns your analytics tool needs to recognize.
This integration is yours to maintain. Maxio provides the place to put your tracking code and the page structure it runs against, but the Google Analytics configuration, and keeping it working, are your responsibility.
The Google Analytics side — creating a property, defining conversion events, building funnel reports — is Google's product and changes on Google's schedule. Follow Google's own setup documentation for that, and use this article for the Advanced Billing details it can't tell you.
You add your tracking code once, to the custom JavaScript for your Public Signup Pages. Advanced Billing then injects it into every hosted page that carries the public-signup-page marker:
Expect pageviews from all four. Self-Service Pages are deliberately excluded, so code placed here never runs there.
Wrap your tracking code in a check for that marker. Without the wrapper, the code also runs on pages you didn't intend it to:
if ($('.public-signup-page').length !== 0) {
// Your analytics tracking code goes here.
}jQuery is available on these pages, which is what makes the check above work. A narrower check for the receipt page alone is $('.public-signup-page__success').length === 1 — use it to confine a transaction call to the receipt page, so a completed signup isn't reported again on every other hosted page the outer wrapper covers.
Important: Don't include
<script>tags. Analytics vendors, Google included, hand you a tag to paste into a page's HTML, so the snippet you're given is wrapped in<script>and</script>. This field takes JavaScript rather than HTML, and Advanced Billing adds the<script>tag on your behalf. Paste only what sits between the tags, or the code is invalid and never runs. See the Custom JavaScript and CSS for Modern Public Signup Pages help article.
Three things worth knowing when you place the code:
<script> tags from whatever your analytics vendor gives you, as above.If no data reaches your analytics tool at all, leftover <script> tags are the first thing to check.
When a signup completes, Advanced Billing writes the transaction details into hidden elements on the receipt page, and injects your custom JavaScript immediately after them. Your code can read the values directly rather than passing them through the URL.
Values Advanced Billing publishes on the receipt page
| Element ID | Contains |
|---|---|
analytics-signup-payment-id | The ID of the signup payment |
analytics-signup-revenue | The signup revenue |
analytics-currency | The subscription's currency |
analytics-product-id | The product ID |
analytics-product-handle | The product handle |
analytics-signup-created-at | The subscription's creation time, as a Unix timestamp |
Read one with an ordinary selector, for example $('#analytics-signup-revenue').html().
If you'd rather finish the journey on your own site, Advanced Billing redirects the customer after a successful signup and appends the transaction details to the redirect URL as query parameters. Your thank-you page reads them back out, and your tracking code goes on that page instead of in the custom JavaScript.
To configure the redirect
Edit the Public Signup Page you want to redirect from. See the Public Signup Page Settings Reference help article.
Enter the full thank-you page URL under Return URL after successful signup, for example http://www.mywebsite.com/my-thank-you-page.html.
Enter the parameters you want under Return Parameters, each placeholder wrapped in braces. For example:
transaction_id={signup_payment_id}&revenue={signup_revenue}&name={product_handle}&sku={product_id}
Save your changes, and repeat for each Public Signup Page that should redirect.
Important: Leaving Return URL after successful signup blank sends customers to Advanced Billing's own receipt page instead. In that case the values in Values published on the receipt page apply, and no return parameters are involved.
Seven placeholders are available:
Return Parameter placeholders
| Placeholder | Contains |
|---|---|
{signup_payment_id} | The ID of the signup payment |
{signup_revenue} | The signup revenue |
{product_handle} | The product handle |
{product_id} | The product ID |
{subscription_id} | The subscription ID |
{customer_id} | The customer ID |
{customer_reference} | Your own reference for the customer |
Whatever analytics tool you use, it needs to recognize Advanced Billing's pages by URL to count a signup as a conversion or place it in a funnel. Two patterns matter:
Advanced Billing URL patterns
| Page | Pattern |
|---|---|
| Public Signup Page | /subscribe/ |
| Receipt page | .*\/subscribe\/.*\/show |
The receipt page is the one that marks a completed signup, so it's the conversion. The Public Signup Page is the step before it.
If your analytics tool matches on a path rather than a full URL, exclude your own domain from the pattern and match a unique part of the path. For a "buy now" page at www.mywebsite.com/home.html, that's /home.html.
Your Public Signup Pages are served from chargifypay.com, not from your own domain. To an analytics tool, a customer who moves from your site to a Public Signup Page and on to the receipt page is two unrelated visitors on two unrelated sites — and the revenue is credited to neither.
Fixing this is cross-domain tracking, and it needs configuring on the Google side rather than in Advanced Billing. What Advanced Billing determines is the domain you have to name: check the domain your own Public Signup Pages actually serve from and use that, since a custom domain changes it.
For how to set it up, see Google's cross-domain measurement documentation.
Still need help?
Reach out and our support team will take it from here.