Home / Symptoms / All platforms

Revenue events missing in the MMP or network

Missing revenue events usually come from SDK timing, unmapped postbacks or network rejections. Trace the event from app to MMP to ad network to find the break.

SymptomPurchases or other revenue events happen in the app but are missing in your MMP or in an ad network.
Most likely causeThe event is not reaching the MMP, is not mapped to the network, or is rejected by the network.
First checkTrigger a test purchase and look for it in the MMP's raw event log, then in the postback delivery log.

Short answer: trace the event in order. If it is missing in the MMP, check SDK timing and event names. If it reaches the MMP but not the network, check event mapping and the postback delivery log. On Meta iOS campaigns, check AEM event configuration.

Where revenue events get lost

Postback: a message the MMP sends to an ad network or partner to report an install or in-app event, so the network can attribute and optimise on it.

A purchase passes through three hops: app to MMP, MMP to network, network to report. Each hop has its own failure modes, so find the hop first.

Is the event missing in the MMP or only in the network?

Check the MMP's raw event log for a test purchase. If it is there, the problem is between the MMP and the network; if not, it is in the app or server set-up.

Likely causes

  • Event fires before the SDK has started, or under a different name from the MMP set-up (general practice).
  • Server events without the install's identifier, so the MMP cannot join them to a campaign (general practice).
  • Event not mapped to the network, so no postback is sent (general practice).
  • Network rejects the postback, for example a wrong conversion ID or label on Google.
  • Not AEM-eligible on Meta iOS. Meta lists ineligible events among the reasons iOS results differ, and allows 8 prioritised events.
  • Currency or value mismatch. Google lists mismatched value settings among discrepancy causes.
  • Failed purchases. Google says Play excludes failed purchases, so its counts can be lower.

How to confirm it

  1. Make a test purchase on a device with a known install.
  2. Look for the event in the MMP's raw event log, with its name, value and currency.
  3. Open the network's event mapping in your MMP and check the event is switched on.
  4. Read the postback delivery log for errors from the network.
  5. For Meta iOS, check AEM event prioritisation in Events Manager.

MMPs such as Linkrunner, Tenjin or Kochava document how revenue should be sent to them, including the currency field; compare your implementation against your MMP's guide.

How to fix it

  1. Start the SDK on first open and queue events until it is ready.
  2. Use one list of event names across app, server and MMP.
  3. Pass the MMP's identifier to your server and include it on server-side events.
  4. Map each revenue event to each network and switch postbacks on.
  5. Send an ISO currency code with every revenue event.
Where it is missingLook at
MMP event logSDK timing, event name, server identifier
Network, Android or webEvent mapping, postback log
Meta iOS onlyAEM configuration
Values onlyCurrency, refunds, failed purchases

The events and revenue troubleshooter walks through these hops, and if counts match but values do not, see ROAS differs although counts match. If installs themselves are unattributed, start with paid installs showing as organic.

FAQ

Common questions

Why are purchases missing in my MMP?

Usually the event fires before the SDK starts, uses a name the MMP does not expect, or comes from a server without the identifier needed to join it to the install.

Why does Meta not receive my purchase events?

Check that the event is mapped for Meta in your MMP and that postbacks are on. On iOS 14+ campaigns, the event also needs to be in your AEM configuration.

Should I send purchases from the app or the server?

Either works, but pick one, or share a transaction ID between both so duplicates are dropped. Sending from both without one counts purchases twice.

Why are events credited to organic?

Events inherit the install's attribution. If the install was not matched to a campaign, its events are not either.

What is mobile attribution?

Mobile attribution is the process of crediting each app install or in-app event to the ad, link or channel that drove it. A mobile measurement partner (MMP) does this across all your channels so each install is counted once.

Why do ad networks report more installs than my MMP?

Each network counts every install it touched within its own windows, including views, while an MMP gives each install to a single source. Adding the networks' numbers together therefore overstates real installs.