Help Center
/
Integrations
/
How purchases and subscriptions are counted

How purchases and subscriptions are counted

Monetization Models & Revenue Troubleshooting

1. Monetization Models Table

Monetization Model Description Services
In-App Purchases (IAP) 🛒 One-time purchases inside the app / web funnel — cw_nrc_purchase Apple S2S webhooks, Google S2S webhooks, Adapty, Apphud, RevenueCat, Stripe S2S webhooks, PayPal S2S webhooks
Subscription 🔄 Recurring payments (monthly/yearly/weekly) for access to content or a service — cw_subscribe Apple S2S webhooks, Google S2S webhooks, Adapty, Apphud, RevenueCat, Stripe S2S webhooks, PayPal S2S webhooks
Ad Revenue 📢 Earnings from ad impressions (banners, video, native) AppLovin MAX, AdMob, ironSource
Rewarded Ads 🎁 User watches an ad in exchange for a reward (coins, content) Tapjoy, Adjoe

2. Revenue Troubleshooting

"No Revenue in Dashboard"

Diagnosis — WEB:

  1. Verify Google Analytics is present
  2. Check for Purchase/Subscribe events
  3. Verify event parameters

Solution:

  • Events not implemented → client must configure them in GA
  • Events exist but parameters missing → add subscription_id, customer_id, etc.

Diagnosis — MOBILE:

  1. Check the MMP (Adjust / AppsFlyer)
  2. Verify purchase events
  3. Check the RevenueCat webhook

Solution:

  • Events not configured → client configures them in the MMP
  • RevenueCat not passing user identifiers → connect RevenueCat to Adjust

Revenue Discrepancy

Mismatch between Campaignswell and the client's source (App Store Connect, Adjust, RevenueCat). Common causes: gross vs. net, refunds, time zones, Day 0 logic.

Revenue in N.A. (Not Attributed)

Revenue not tied to any marketing source. Cause: missing purchase events or incorrect implementation.

Purchases in Parent + Child App Architecture

In a two-platform app (parent + child), purchases can flow through different systems — e.g., Google Play connected on the parent app, Stripe on the child app. In Campaignswell this must be accounted for when analyzing revenue by platform, using the billing processor filter.