To set up postbacks, log into your partner dashboard and click Advanced > Postbacks from the left-hand menu.
Postbacks report a conversion event back to your own server in real time. With postbacks in place, you can pull conversion data straight into your platform to optimize your campaigns and run more advanced reporting on your first-party data.
Entering Your Postback URL
In the Postback URL field, paste the endpoint on your server that should receive conversion data. This is the URL we call each time a conversion fires.
- Your URL must start with http:// or https://.
- Add dynamic values, like your click ID (passed through a Sub ID), the payout, or the conversion ID, by inserting macros into the URL.
A completed Postback URL looks like this. Lead with the click ID you sent through a Sub ID, since that is what ties the conversion back to the click in your system:
https://yourserver.com/postback?click_id={sub1}&payout={payout_amount}&txn={conversion_id}
Here {sub1} carries back the click ID you passed in on the link, so it is the field your own system matches the conversion on. {payout_amount} is the payout for the event, and {conversion_id} is Inflektion’s reference for reconciliation.
Adding Macros
Macros are placeholders that get replaced with real conversion data when the postback fires. To add one:
- Place your cursor in the Postback URL where you want the value to appear.
- Click the { } Add Macro button, or type { as a keyboard shortcut.
- Search the list and click the macro you want. It is inserted at your cursor.
Available Macros
These macros are available to insert into your Postback URL:
| Macro | What it returns |
| {sub1} | Sub ID 1 from the partner tracking URL |
| {sub2} | Sub ID 2 from the partner tracking URL |
| {sub3} | Sub ID 3 from the partner tracking URL |
| {sub4} | Sub ID 4 from the partner tracking URL |
| {sub5} | Sub ID 5 from the partner tracking URL |
| {offer_currency} | Currency of the offer (e.g. USD, GBP, EUR) |
| {payout_amount} | Amount paid out to the partner for an event (conversion or post-conversion) |
| {conversion_id} | Unique ID associated to the conversion |
| {unique_click_id} | Unique ID associated to the transaction |
| {timestamp} | Unix timestamp of an event (UTC) |
| {datetime} | Date and time of an event formatted as YYYY-MM-DD HH:MM:SS (UTC) |
| {geo_country_code} | Two-letter country code (ISO 3166-1 alpha-2) |
| {user_ip} | IP address of the user (conversion) |
| {user_agent} | User-agent string of the device |
Passing Your Sub IDs
The {sub1} through {sub5} macros pull the Sub ID values from your tracking links. Sub IDs let you break your traffic down by source, content, or campaign, so passing them through your postback ties each conversion back to its exact origin.
You set your Sub IDs on the Links & Promotion page:
- Go to Links & Promotion in the left-hand menu.
- Scroll to the bottom and click Add Sub IDs.
- Enter your values. Your tracking links update automatically as you type:
- Sub ID 1: Traffic source (e.g. instagram)
- Sub ID 2: Content type (e.g. story, post, bio)
- Sub ID 3: Campaign name (e.g. summerlaunch)
When a conversion fires, the matching {sub1}, {sub2}, and {sub3} macros in your Postback URL are replaced with these exact values, so you can attribute the conversion inside your own system.
Saving and Testing
Once your Postback URL is built with the macros you need, click Save.
Conversions are now posted to your server in real time. We recommend firing a test conversion and confirming your server receives the call with all expected values populated.
For Media Buyers: Meta, TikTok & Google (Paid Traffic)
If you run paid traffic, postbacks are how you send each conversion back to the ad platform's server-side API (Meta Conversions API, TikTok Events API, or Google offline conversion import). This lets the platform's algorithm optimize on real conversions and lets your ROAS show up inside the ad account, not just in the partner dashboard. The steps below are account-level and intentionally simple.
How the Click ID Handoff Works
When someone clicks your ad, each platform appends its own click ID to your landing URL. The flow is the same on all three platforms:
- The ad platform adds its click ID to your link (for example ?gclid=...).
- You capture that click ID into a Sub ID of your choice on the Links & Promotion page (whichever slot your team standardizes on).
- You include the matching macro (for example {sub1}) in your Postback URL so the click ID is passed back when the conversion fires.
- Your server forwards that conversion, with the click ID, to the platform's conversion API or import.
So if you capture the click ID into Sub ID 1, your tracking link and Postback URL pair up like this:
Link: https://www.programdomain.com/...?sub1={click_id_from_platform}
Postback: https://yourserver.com/track?click_id={sub1}&payout={payout_amount}&cid={conversion_id}&ts={timestamp}
Platform Reference
Each platform uses a different click ID and a different server-side destination. Use this as your account-level cheat sheet:
| Platform | Click ID | Where it goes (server-side) | Key note |
| Meta | fbclid | Meta Conversions API. Stored as fbc in the fb.1.<timestamp>.<fbclid> format. | Do not hash fbc. Only send it when a real fbclid exists. event_time is a Unix timestamp in seconds. |
| TikTok | ttclid | TikTok Events API, sent as ttclid in user data. | Auto-appended to landing URLs since Apr 2024. Valid for 30 days. Dedupe with a shared event_id if you also run the Pixel. |
| gclid | Google offline conversion import, or Enhanced Conversions for Leads via Data Manager (now recommended). | Requires auto-tagging. The gclid is case-sensitive and must be an exact, full-string match. |
Best Practices
- Capture the click ID into a consistent Sub ID slot across all your ad accounts so your postback mapping never changes.
- Always pass {timestamp} so your conversion lands inside the platform's attribution window.
- If you also run the platform's pixel, deduplicate pixel and postback events with a shared event ID to avoid double-counting.
- Use an HTTPS endpoint, and never fabricate a click ID. Only pass one back when a real ad click produced it.
- The actual API endpoint, pixel/dataset ID, and access token are set up inside each ad platform. Confirm those with your team before going live.