Postback troubleshooting

Postback Macro Not Replaced

Callbacks arrive but contain literal {clickid} or {payout} strings because the template never swapped values.

Introduction

Macro Not Replaced means templates still contain placeholder braces when the callback hits its destination.

The root cause typically lies in mismatched macro names, extra encoding, or platforms that stripped braces.

Why the problem happens

Macros are only substituted when the tracker recognizes the token. If naming conventions drift or placeholders get double-encoded, nothing swaps.

Partners and agencies often copy templates across offers without updating macros, so literal braces slip into production.

Common causes

Pinpoint who owns each macro: tracker, network, or advertiser. Compare documentation to your live template so you see the mismatch.

How to check it

Before editing the callback template, prove what is breaking in the live flow. Compare the template you expected to send with the exact request that reached the partner so you can isolate whether the failure comes from macro syntax, encoding, or a bad endpoint variant.

If you need a faster read on the callback URL itself, run the same payload through Postback URL Checker for a checker-style review, then use Postback Debugger when the response looks inconsistent or the partner insists their server never saw the right values.

  1. Capture the real callback URL

    Copy the exact postback template that is live in the tracker or partner panel, not the version from an onboarding doc.

  2. Check for literal braces or encoded placeholders

    Look for raw {clickid}, {payout}, %7Bclickid%7D, or other tokens that prove the tracker never substituted the macro.

  3. Run a checker-style validation

    Use Postback URL Checker to review the callback structure before you retest against the partner endpoint.

  4. Replay the failing request with diagnostics

    Use Postback Debugger or Postback Tester to compare what the endpoint received versus what the tracker should have sent.

Step-by-step troubleshooting

Create a side-by-side comparison of the desired payload and the actual callback. Correcting macros is straightforward once you see the difference.

If the callback still fails after macro cleanup, branch into Fix postback not working so you can rule out transport, auth, or partner-side validation issues.

  1. Document macro expectations

    List tracker-supported macros and partner-required fields. Highlight mismatches.

  2. Inspect the live template

    Review the callback template for brace encoding, casing differences, or typos.

  3. Replay with Postback Tester

    Fire the template and confirm which macros still appear literally.

  4. Update and retest

    Rename macros, adjust encoding, and retest until the payload carries real values.

  5. Add linting

    Set up a sanity check that flags callbacks containing curly braces.

Tools that help solve the problem

These tools work best in sequence: use Postback URL Checker for a fast structure review, Postback Debugger when you need a deeper callback transcript, and Postback Tester to confirm the final fixed payload reaches the destination cleanly.

Conclusion

Build a macro glossary for every partner and share it with agencies.

Monitor callbacks for literal braces and treat alerts as high priority.

Related issues

Knowledge base articles