- Go to Tracking → Goals, click New goal and choose Event goal.
- Select the
purchaseevent. - Open Advanced and set Measure to Revenue.
- Click Add Goal and add the goal to your tests under Editor → settings → Manage conversion goals.
purchase event can also back a plain conversion goal (did the visitor buy at all) next to the revenue goal.
Revenue format
Revenue sent withwindow._pgnt.push or the REST API must be an integer in cents (minor units), not a decimal.
- ✅
revenue: 999is $9.99 - ❌
revenue: 9.99is not an integer, so the event is dropped
Convert in your code:
Events observed from your dataLayer are the exception. Tag managers send order values like
value: 49.99, so a definition’s Revenue path is read in major units and converted for you: 49.99 is recorded as 4999.Common use cases
Properties
Addproperties for context about the purchase. It must be an object or an array.
Best practices
- Always send cents from your code.
- Send revenue once per order. Reloading a thank-you page can report the same purchase twice. Guard with a flag, or report the purchase from your backend with the REST API.
- Keep revenue on real transactions. For estimated values such as leads, use a separate label so they don’t mix with actual sales.
- Leave outlier capping on. One unusually large order can swing a test. The default Automatic capping handles this.
Troubleshooting
Revenue not showing- Check that
revenueis an integer. Open your site with?pagent_debug=1: invalid events are logged in the console. - Check the event arrives under Tracking → Sources → Events.
- Check the goal’s Measure is set to Revenue.
- Reported events need cents. Observed dataLayer events are converted from major units automatically, so don’t multiply those.
Deprecated: revenue on conversions
Older integrations send revenue withkind: "conversion" and a Programmatic goal. This still works but is deprecated. Change kind to "event" and follow Migrating from programmatic goals.