Back to knowledge base

Postback tracking

How to compare a postback template vs a live request

Diff the callback you expected against the callback that actually fired so macro, encoding, and partner-side mismatches stop hiding inside 200 responses.

Last reviewed April 2026 9 min read

Introduction

A postback template is only a promise. The real troubleshooting value comes from proving whether the live callback matches that promise once the tracker expands macros, encodes the URL, and sends the request to the partner endpoint.

This workflow is for the common gray-zone failure mode: the network says your template looks right, the endpoint returns 200, but the conversion is still missing or the payload in the receiving log does not match what the team thought it shipped.

Explanation of the concept

The comparison needs two artifacts: the approved template from the tracker or partner documentation, and the exact live request that was actually sent. Without both, teams argue over screenshots instead of isolating the mismatch.

Treat the diff as structured QA. You are comparing parameter names, macro substitutions, encoding, payout formatting, event names, and any auth or signature fields, not just whether the request happened at all.

Common problems

Most postback disputes come from silent differences between the template and the delivered request. A macro may stay literal, a click ID may map to the wrong field, or a tracker may append an extra parameter that changes how the partner parses the callback.

Because many endpoints still answer with 200 on malformed payloads, teams often stop at transport success and miss the business-level mismatch that actually prevents attribution.

Step-by-step troubleshooting

Save the expected template and the live request in plain text before you compare anything. Once both are visible side by side, you can isolate whether the mismatch happened in the tracker template, during macro substitution, or at the receiving endpoint.

Run the comparison in order. Confirm the template first, then replay the real request, then inspect only the differences that remain. That keeps the debugging path short and evidence-based.

If you need to send the callback again while preserving the exact structure, use Postback Tester for a controlled replay and keep Postback Debugger ready for the deeper transcript when the server response still does not explain the failure.

  1. Freeze the approved template

    Copy the exact tracker or partner template that was supposed to fire, including parameter names, macros, placeholders, signatures, and notes about encoding.

  2. Capture the real callback

    Pull the actual request from your tracker log, network log, or Postback Debugger so you compare against the live payload instead of a reconstructed guess.

  3. Diff field by field

    Check click ID, payout, status, goal, sub IDs, auth fields, and URL encoding one field at a time. If the structure looks suspicious before replaying it, run the URL through Postback URL Checker first.

  4. Replay the request in a controlled test

    Send the corrected or suspicious version through Postback Tester and save the full response, headers, and latency so the team can prove what changed.

  5. Route the mismatch to the right fix path

    If macros stayed literal, continue with Postback Macro Not Replaced. If the endpoint returns 200 but the partner still does not credit the event, continue with Postback Returns 200 but No Conversion.

Tools that help solve the problem

You do not need a large stack for this audit. Use the postback tools as a sequence: validate the callback URL structure, inspect the live request, replay the payload, and then move to the matching fix guide only after the mismatch is proven.

That sequence keeps template reviews grounded in evidence instead of assumptions from screenshots or tracker UI labels.

Conclusion

A postback comparison is complete only when the team can point to the exact field that drifted between template and live request. That removes guesswork from partner escalations and prevents repeated 200-response dead ends.

Keep the approved template, the live request, and the replay evidence together. That small evidence pack makes future postback launches and incident reviews much faster.

Related issues

Need help debugging your tracking setup?

Pair these diagnostics with a guided audit and keep attribution clean.