Revenue Attribution
The promotion revenue you see on the dashboard is not just the sum of purchases that happened on the promotion screen itself. If a user views a promotion and then purchases later somewhere else, that purchase can still be credited to the promotion when the promotion influenced the decision.
This page explains the rules and the reasoning behind them.
Throughout this page, "viewing a promotion" refers to a product impression that satisfies both of the following:
- The impression is logged via the SDK function
MonetaiSDK.logViewProductItem(). - The
placementof that impression is connected to a promotion that is currently being optimized.
The following impressions are therefore not used for revenue attribution:
- Product impressions on a regular-price page (placement not connected to any promotion)
- Impressions on a placement whose promotion is paused or ended
Two Attribution Paths
There are two ways a purchase gets attributed to a promotion.
1. Direct revenue
The user views your promotion and purchases right there (or within a few minutes through the same screen).
[View promotion] → [Purchase on the same screen]
↓
Direct revenue for this promotion
The purchase is naturally tagged with the promotion at the time of payment.
2. Indirect revenue (within 14 days)
The user views your promotion but does not purchase right away. Later, they purchase on a regular (non-promotion) page within 14 days.
[View promotion] → 9 days later → [Purchase on regular page]
↓
Indirect revenue for this promotion
(because the user had viewed it within 14 days)
[View promotion] → 20 days later → [Purchase on regular page]
↓
Not attributed (over 14 days)
Last-touch rule. If the user viewed multiple promotions, only the most recently viewed one (within 14 days) gets the credit. A single purchase is never split across multiple promotions.
Why We Track Indirect Revenue
You might ask: "The purchase didn't happen on my promotion screen. Why is it being credited to my promotion?"
Viewing a promotion changes how users purchase afterwards — and the effect goes both ways. The promotion might leave a positive impression that leads users to buy at full price later, or it might make them hesitate or abandon the purchase entirely.
To measure the true impact of your pricing optimization, you have to track those follow-up regular-price purchases by the same users. If we only counted direct revenue, you'd see only part of the effect (positive or negative) the promotion is actually having.
"Doesn't this inflate the numbers?"
A common follow-up concern: "If indirect revenue is added, won't the numbers look artificially high?"
This is why Monetai measures revenue as an A/B test increment, not absolute totals. Every metric you see is the difference between two groups:
- monetai group: Users shown the AI-optimized offer
- baseline group: Users shown the fixed (control) offer
The same indirect-revenue logic applies to both groups equally. So even if both groups' raw numbers are slightly higher because of the 14-day window, the difference (lift) between them — which is what you actually use to evaluate the promotion — stays accurate.
In other words: indirect revenue may add the same amount of "background noise" to both groups, but it does not bias the comparison.
Free Trials
Free trials are handled as a single revenue unit:
- Trial start event begins the unit. The 14-day attribution window is measured from this point.
- Trial converted event (when the trial converts to paid) provides the revenue amount.
- The revenue is recorded at the trial start date (not the conversion date).
Day 1: View promotion
Day 5: Trial starts ← Revenue is recorded HERE
Day 12: Trial converts ($30) ← Revenue amount comes from this event
This makes attribution timing consistent: whether users go directly to a paid product or through a trial, the revenue lands at the moment they committed.
Worked Examples
Example 1: Direct purchase
| Day | User A action |
|---|---|
| Apr 1 | Views Promotion X, purchases ($10) |
→ Promotion X gets $10 (direct).
Example 2: Indirect purchase within 14 days
| Day | User B action |
|---|---|
| Apr 1 | Views Promotion X (no purchase) |
| Apr 8 | Buys on regular page ($20) |
→ Promotion X gets $20 (indirect, 7 days later — within window).
Example 3: Two promotions, last-touch wins
| Day | User C action |
|---|---|
| Apr 1 | Views Promotion X |
| Apr 5 | Views Promotion Y |
| Apr 10 | Buys on regular page ($30) |
→ Promotion Y gets $30. Promotion X gets $0. The most recently viewed promotion wins. The same $30 is never counted twice.
Example 4: Outside the 14-day window
| Day | User D action |
|---|---|
| Apr 1 | Views Promotion X |
| Apr 20 | Buys on regular page ($15) |
→ No attribution (19 days > 14 days). Neither promotion gets the revenue.
Example 5: User never saw any promotion
| Day | User E action |
|---|---|
| Apr 5 | Buys on regular page ($25) |
→ No attribution. The user never engaged with any promotion.
Example 6: Free trial across promotions
| Day | User F action |
|---|---|
| Apr 1 | Views Promotion X |
| Apr 3 | Trial starts |
| Apr 10 | Trial converts ($30) |
→ Promotion X gets $30, recorded at Apr 3 (trial start date).
How ARPU Is Calculated
- Numerator: Attributed revenue (using the rules above).
- Denominator: Distinct users who viewed the promotion in the period (regardless of whether they purchased).
So ARPU shows: "For every user that saw this promotion, how much attributable revenue did it generate on average?"
Users who viewed but didn't purchase are still counted in the denominator with $0 contribution. This is what makes ARPU comparable between groups in the A/B test.
What Is Not Counted
- Purchases by users who never viewed the promotion (no engagement, no attribution).
- Purchases that happened before the user first viewed the promotion.
- Purchases more than 14 days after the last view of the promotion.
- Purchases of products that the user only saw on a regular-price page (the promotion was never viewed).
- Purchases in non-PRODUCTION environments (sandbox, dev) — these are zeroed out.
- The same purchase counted by two promotions — never happens (last-touch rule).