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

Reconcile our numbers with yours, step by step

Updated

View as Markdown

Export our conversions and join them to your records on action_id: the one in our reports is the one on your postbacks. Then work down this list for the rows that differ. The reasons behind each gap are in Why our numbers and yours differ.

On this page

What you see

What you seeWhat it meansWhat to do
A past day’s total dropped after you closed itA reversal came in later, dated on the conversion’s dayCount reversals by conversion date
Totals differ near the start or end of a dayWe count days in UTCCompare in UTC, or row by row
You have more conversions than we doYou counted test postbacks, or the same step twiceSkip test=true; dedupe on action_id and status
We show reversals you don’t haveYour dedupe dropped themDedupe on action_id and status together
We show conversions your server never gotTheir delivery failed or found no URLFilter Flight Recorder by Delivery
Your Hosted Offerwall earnings are too highYou added revenue and payout togetherUse revenue only
Advertisers: your attribution tool counts more installs than we chargedWe charge only events matched to our tapsCompare against Event logs

Export our side first

Publishers: open Conversions, set From and To, choose Apply, then Download CSV. Each row has its Action ID, Sub ID, status, payout and time, and reversed rows say when the reversal came in. Networks: look up each action_id in Reporting, then Flight Recorder.

Checks, most likely first

  1. Reversals arrived after you closed the day

    How to confirm: Publishers: in Conversions, rows read reversed with Reversed on a later date than their Time. Networks: the conversion in Flight Recorder shows Reversed because.

    Fix: Reconcile by conversion date, not arrival date: a reversal is dated on its conversion’s day. The conversions list shows it at once; daily totals pick up a reversal of an earlier day at our next rebuild, a few hours later (we rebuild those days four times a day).

  2. You compare in a different time zone

    How to confirm: The gap sits at the edges of a day, and the totals over a whole week agree.

    Fix: Compare in UTC, or compare single rows by action_id.

  3. You counted test postbacks

    How to confirm: Your records have rows with test=true, or sample IDs you don’t find in our export.

    Fix: Skip every row with test=true.

  4. You dedupe on action_id alone

    How to confirm: We show a reversal for an action ID that your records show only as credited.

    Fix: Dedupe on action_id and status together, or every reversal looks like a repeat and gets dropped.

  5. Some postbacks never reached you

    How to confirm: In Reporting, then Flight Recorder, publishers set Delivery to failed or skipped_no_url; networks choose a row and read Network Delivery Response. These conversions count on our side and never reached yours.

    Fix: Fix the cause (Postback not firing or never arrives). Publishers: send us the action IDs, and our team can send failed credits from the Offer API and links again; a credit that never reached you gets no reversal postback either.

  6. You read the wrong money field

    How to confirm: Your Hosted Offerwall earnings are about the player’s reward, or the two added together.

    Fix: Use revenue whenever it’s present, and never add the two. Which field holds what: the usual causes.

  7. Rejected users are in your numbers

    How to confirm: Publishers: your own count includes users who show as rejected in Conversions.

    Fix: Leave them out of yours. A rejected conversion pays $0 and isn’t counted in our totals.

  8. Advertisers: your attribution tool counts every install

    How to confirm: Your attribution tool shows more installs or events than you were charged for. Attribution shows Installs from elsewhere: first opens with no tap of ours behind them.

    Fix: Compare your records with Event logs by eventId. We charge only live events with a click ID that matches a tap we recorded; events that come back campaign_paused, insufficient_balance or rejected aren’t charged either. More on attribution tools.

Send us this

  • The email you sign in with, and your role.
  • The date range you compared, and the time zone you used.
  • Your totals and ours, and the offer IDs involved.
  • Three to five action IDs (or event IDs) that differ, and what each side shows for them.
  • Your export, if you can share it.
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?
Action ID. The ID of one conversion, sent as action_id on its postback. A reversal repeats the same ID.What is an action ID?

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