Product
Publishers
Advertisers
Networks
Help
Pause animations

Reporting

Trace any conversion from tap to server reply.

Every conversion has a timeline you can open. Offer Health reads the patterns and tells you where to look next.

The Flight Recorder in the publisher portal, filtered to completed transactions: five conversions with their action ID, offer, goal, transaction and delivery status, sub ID, payout and time.

Tap any step to open it.

Conversion trace

act_5Hc81Q

Sent

Your postback was sent with HTTP 200.

Your postback delivery

Endpoint
api.pebble.example/afos/​postback
Carried
sub_id=u_48213, payout=4.20, verifier=••••
HTTP status
200
Attempts
1
Follow u_48213's $4.20 into Payouts

01Offer Health

See what broke, and where to look.

It reads one offer's clicks, conversions and postback deliveries together and gives a plain verdict with the next step. Pick a symptom.

What are you seeing?

Offer Health reads the last 24 hours, 7 days or 30 days. These examples use 7 days.

Critical Harbor Blocks · last 7 days

Postbacks to your server are failing

Conversions are arriving: 41 in the last 7 days. But 29 postback deliveries to your server failed. This looks like a delivery problem, not a dead offer.

Next step

Open the Flight Recorder and filter Delivery to Failed. Each trace shows the error. How postbacks retry

02Advertiser Health

How far players get after the install.

Advertisers judge traffic by what happens after the install. Advertiser Health shows you the same thing, offer by offer.

  1. 01 Installs

    It starts at the install

    Advertiser Health counts everyone who installed the offer in your date range. That's the 100% every other column is measured against.

    Advertiser Health · Lantern Run

    How far your users get into this offer after installing

    100 %
    • Installs 100%
    • → 1st
    • → 3rd
    • → 5th
    • → Completed
    • → Deposit

    Installs: 100%.

  2. 02 1st and 3rd

    Then the ribbon narrows

    The share of installers who completed at least one milestone, then at least three.

    Advertiser Health · Lantern Run

    How far your users get into this offer after installing

    100 % 61 % 44 %
    • Installs 100%
    • → 1st 61%
    • → 3rd 44%
    • → 5th
    • → Completed
    • → Deposit

    Installs: 100%, 1st: 61%, 3rd: 44%.

  3. 03 5th

    Five milestones in

    The share who completed at least five. An offer whose ladder is too short to have a fifth step shows a dash here, not a guess.

    Advertiser Health · Lantern Run

    How far your users get into this offer after installing

    100 % 61 % 44 % 29 %
    • Installs 100%
    • → 1st 61%
    • → 3rd 44%
    • → 5th 29%
    • → Completed
    • → Deposit

    Installs: 100%, 1st: 61%, 3rd: 44%, 5th: 29%.

  4. 04 Completed and deposit

    The end of the ladder

    The share who completed every milestone, and the share who hit a deposit or purchase step. Under 20 installs, every rate is a dash.

    Advertiser Health · Lantern Run

    How far your users get into this offer after installing

    100 % 61 % 44 % 29 % 7 % 4 %
    • Installs 100%
    • → 1st 61%
    • → 3rd 44%
    • → 5th 29%
    • → Completed 7%
    • → Deposit 4%

    Installs: 100%, 1st: 61%, 3rd: 44%, 5th: 29%, Completed: 7%, Deposit: 4%.

Step 1 of 4

03Traffic Quality

Who was turned away, and when it ends.

Every user our checks rejected, with the reason in plain words and the day the rejection expires.

Their conversions never count toward your totals. The same list comes from GET /publisher/traffic-quality.

How we decide who to reject

Traffic Quality

Users whose conversions we reject. Their conversions are recorded with status rejected, are not paid, and send no postback. A rejection expires 30 days after it was set.

Rejected users and reasons (sample)
User (sub id) Offer Reason Rejected Expires
u_48262 Harbor Blocks One device, many users 10/29/2026 11/28/2026
u_48277 Harbor Blocks Failed our connection checks 10/29/2026 11/28/2026
u_48251 Harbor Blocks Failed our connection checks 10/24/2026 11/23/2026
u_48239 Tidewater Putt Failed our device checks 10/22/2026 11/21/2026
u_48218 Lantern Run Failed our connection checks 10/20/2026 11/19/2026

04Dashboards and exports

Earnings by day, offer, platform or country.

The dashboard groups and breaks down the same numbers your postbacks carried, net of reversals. Take them out as CSV or by API.

Earnings by day

Pebble Rewards · Oct 16 to Oct 29, 2026 · net of reversals

Earnings by day, Pebble Rewards, Oct 16 to Oct 29, 2026 (example). Days not listed earned $0.00.
Oct 16 $0.00 ($4.20 install reversed on Oct 22)
Oct 18 $0.60
Oct 21 $1.50
Oct 24 $4.00
Oct 29 $4.20

Oct 16 reads $0.00: its $4.20 install was reversed on Oct 22, and the reversal is dated on the day of the conversion.

Two weeks, net of reversals $10.30
Group by
DayWeekMonthQuarterYear Pick any date range; the dashboard opens on the last 7 days. Days are UTC.
Break down and filter
OfferPlatformCountry Filter to one offer, platform or country. The app filter appears once your traffic carries a property ID.
Net of reversals, and exports
Earnings are net of reversals, each dated on its conversion's day. Download CSV from Conversions, with Reason and Reversed On columns, or call GET /publisher/dashboard-report.

Questions

What teams ask about the numbers.

Can't find a conversion? Send the action ID to hello@affiliateos.ai.

Why don't my numbers match my own records?

Three usual reasons. Our days are UTC. A reversal is dated on the day of the conversion it reverses, so an earlier day can drop. And a rejected user's conversions never count. The actionId in every report equals the action_id on your postback, so you can match line by line.

How far back can I trace?

Any date range you pick. The Flight Recorder opens on the last 28 days and shows 25, 50 or 100 rows at a time. Search by sub ID, offer or action ID to find one conversion. Search covers the newest conversions in the range, so on a busy account narrow the dates or pick the offer first.

What does FAILED mean on a delivery?

We tried your postback URL and couldn't deliver it. The trace shows the error, such as a timeout, so you know whether to look at your server, its firewall or the URL.

Can teammates see reports without the money?

Yes. A seat without money access still sees offers, statuses and conversion counts, and the amounts are removed from what it receives. In the Flight Recorder an amount reads as a dash, and the trace says a payout was recorded without the figure.

Can I pull the same numbers by API?

Yes, with your publisher key: GET /publisher/conversions for the line items, GET /publisher/dashboard-report for grouped totals and GET /publisher/traffic-quality for rejected users.

Find any conversion by its action ID.