Product
Publishers
Advertisers
Networks
Help
Pause animations
Browse help topics
Concept Everyone

Why our numbers and yours differ

Updated

View as Markdown

Two sets of numbers that track the same users rarely match to the unit, and the gap almost always has one of a few causes: our days are UTC days, our Conversions count only an offer’s first step, reversals lower the day a conversion was earned and postbacks that failed, repeated or were tests count differently on your side than on ours.

See also: Reporting

On this page

To find the exact rows, follow Reconcile our numbers with yours, step by step.

The usual causes

CauseWhat we countWhat you might be counting
Time zonesUTC days. A Texas evening lands partly on tomorrow.Your local days
Conversions and eventsConversions is the first step of an offer only. Later steps are Events.Every postback as a conversion
ReversalsTaken off the day the conversion was earned, so a closed week can dropTaken off the day the reversal arrived, or not at all
Postbacks that never reached youEvery conversion, sent or notOnly what your server received
RepeatsOne conversion, even when the postback was sent twiceEach copy, if you dedupe on action_id alone or not at all
Test postbacksNothing: a test creates no conversionTests your code credited
Rejected or in-review conversionsNot in totalsNothing, since no postback was sent
Money fieldsYour earningspayout on the Hosted Offerwall, which is the player’s reward there
ClicksTaps that reached our tracking linkTaps on your own button, including ones that never loaded the link

Example

Example, made up: Pebble Rewards’ own database shows 12 Harbor Blocks installs for 29 October, Texas time. Our Dashboard shows 10 conversions for 29 October.

  • One install came in at 7:30 PM in Texas, which is 12:30 AM on 30 October in UTC. It’s in our 30 October.
  • One “install” in their database is the player reaching level 10. Their code booked every postback as an install. On our side it’s an event.

12, less one on the next UTC day, less one later step, is 10. Nothing is missing.

Reconcile in four steps

  1. Get our rows for the same UTC window. Publishers: Conversions, then Download CSV, or GET /publisher/conversions with your API key; Pull conversions instead has the call. Networks: Reporting, then Flight Recorder lists each postback with its Action ID.
  2. Match on action ID and status. Our actionId is the postback’s action_id. A reversal repeats the action_id with status=reversed, so match on both. For conversions first sent before 10 September 2026, match on the end of the ID: the postback’s can be longer.
  3. Rows we have and you don’t: open Reporting, then Flight Recorder, and look at Delivery. failed means your server didn’t answer with a 2xx; skipped_no_url means no postback URL matched. Publishers: with no postback secret, nothing is sent at all. How to answer a postback covers retries.
  4. Rows you have and we don’t: look for test=true, and for the same action_id and status stored twice.

Advertisers: our numbers and your attribution tool’s

We charge and count an event only when it carries a click ID that matches a tap on your campaign. These never count:

  • Events without a click ID, logged as missing_attribution.
  • The same eventId sent again: we answer duplicate and count only the first.
  • Events whose timestamp is more than 48 hours from when we received them, logged as outside_window.
  • Test events.

Your attribution tool also has its own windows and its own way of picking which tap gets the credit, so its installs from AffiliateOS can be higher or lower than ours. Event logs on each campaign shows each event we logged and its status; a repeated eventId isn’t logged again.

Send us this

If the gap is still there: the email you sign in with, the UTC window, your count and ours, and a few action_id values (advertisers: event IDs) that you have and we don’t, or the other way round.

Reversal. A conversion taken back after it was reported, by the advertiser or after our traffic checks. We take back its payout and send the publisher a reversal postback.What is a reversal?

Support

Still stuck? Write to us.

One address for every question: hello@affiliateos.ai. Put the details from this list in your first message so we can find the click or conversion without asking you for them again.

Put these in your message

  1. 01The email you sign in with
  2. 02Your role: publisher, advertiser or network
  3. 03The offer ID
  4. 04The click ID or action_id
  5. 05The time it happened, with your time zone
  6. 06What you expected to happen

Looking for a reward in an app? Ask that app's support. It credits your reward, so only it can see your balance.

Search help