Affiliate network setup
Impact Postback Setup: Track Impact Sales by Video
How to set up an Impact partner postback with the SubId1, ActionId, Amount, Payout and Currency macros so each sale is tied to the click and video behind it.
Updated
To track Impact sales by video, every click needs a unique ID in Impact's subId1 link parameter, and Impact needs to send that ID back in a server postback when the sale happens. As a partner you set this up under Settings, then Technical, then Event Notifications, using Impact's {SubId1}, {ActionId}, {Amount}, {Payout} and {Currency} macros.
Impact's own reports show sales per tracking link and per sub ID. They don't know which of your videos sent the buyer. The postback closes that gap by handing your click ID back to a system that does know.
How Impact postbacks work
Impact calls a sale or lead an "action." When an action is tracked, Impact can call a URL you give it and fill in details about that action. Impact calls these event notifications. Partners have two places to set them up:
- Global (Action Life Cycle Events). One URL for every brand you promote. Impact's help center says global postbacks also fire for non-standard events, such as an action being modified or reversed.
- Event level (per brand). Set on one brand's Tracking Integration page, for a chosen event type. These don't fire for modifications or reversals.
For most creators the global postback is the right choice. You set it once and it covers new brands you join later. Impact documents both options in Set Up Action Lifecycle Postbacks.
The Impact macros you need
Impact replaces each macro in your postback URL with a real value when it sends the request. Macros are case-sensitive.
| Postback field | Impact macro | What Impact fills in |
|---|---|---|
| click_id | {SubId1} |
The value in subId1 on the link that was clicked |
| order_id | {ActionId} |
Impact's unique ID for the action |
| sale_amount | {Amount} |
The sale amount, in the brand's account currency |
| commission | {Payout} |
Your payout for the action, in your partner currency |
| currency | {Currency} |
The currency code for the action |
| status | {Status} |
The action's status (see the note below) |
One detail worth knowing: Impact describes {Amount} in the brand's account currency and {Payout} in your partner currency. For most US creators promoting US brands these are both USD. If you promote brands that report in another currency, the sale amount and the commission may arrive in different currencies, while the postback carries only one currency code. Your commission total is the number that matters most, so check a few sales against Impact's own report after setup.
Step 1: Put a click ID in subId1 on every click
The sub ID has to be unique per click, or at least per video, for the postback to tell you anything useful. You have two options:
- Do it by hand. Create a separate tracking link per video with a fixed value, such as
subId1=storm-video. This works for a handful of videos but gets messy fast, and it tells you nothing about which place (TikTok bio, YouTube description) the click came from. - Let a redirect add it. A link tool generates a click ID on every click and appends
subId1=to the Impact link before sending the visitor on. This is how Vyrl works.
If a tool adds the sub ID for you, leave subId1 out of the link you paste into it. Two subId1 values on one link can confuse the match.
Step 2: Add the global postback in Impact
- In Impact, open your user profile menu in the top navigation and choose Settings.
- Under Technical, select Event Notifications.
- Next to Action Life Cycle Events, select Edit.
- Enter your server URL and choose GET as the HTTP method. Impact recommends GET when you pass values in the URL.
- Leave the optional header, delay and rate settings at their defaults unless your tool asks for them.
- Select Save.
Make sure this is a server postback (a URL Impact calls from its servers), not a pixel or a tracking tag on a web page.
What the URL looks like
If you use Vyrl, the Networks screen gives you a URL with Vyrl's placeholders in it. Swap each placeholder for the Impact macro from the table above. After the swap it looks like this, with your own secret:
https://vyrl.at/postback/impact/YOUR-SECRET?click_id={SubId1}&order_id={ActionId}&sale_amount={Amount}&commission={Payout}¤cy={Currency}
Both Vyrl's placeholders and Impact's macros use curly braces, so it is easy to leave one unchanged by mistake. Read the URL once more before you save. Every value should be an Impact macro.
A note on the status field
Vyrl's postback understands a status of pending, approved or reversed in any capitalization, plus common network words such as declined, rejected and cancelled (counted as reversed). Impact's help center lists a Status field but doesn't publish the exact words it sends. If it ever sends a word Vyrl doesn't recognize, that postback is refused rather than guessed, and Impact retries it.
The safest start is without it. Leave &status=... off the URL, as in the example above, and every Impact sale counts as approved. Once your first sales arrive, add &status={Status} and send a test: if it records, reversals will update the sale too. Postbacks for the same {ActionId} update the existing sale instead of adding a new one.
Step 3: Test it
- Tap one of your own tracked links so a real click exists.
- Send a test. If you also set up a brand-level postback, Impact's Tracking Integration page lists it with a Test option in its Actions menu.
- Check your revenue. In Vyrl, a matched sale shows within a minute, credited to that click.
A test may send sample values instead of your real subId1. In that case the sale arrives but can't be matched to a click. The surest end-to-end test is a small real purchase through your own link. Impact retries a failed postback up to 15 times, so a short outage on the receiving side doesn't lose sales.
Why a sale might not match
- You shared Impact's link directly. If the buyer never passed through your link tool, no click ID was added, and
{SubId1}comes back empty. - A macro has the wrong case.
{subid1}and{SubId1}are different to Impact. - The link had its own subId1. Remove it and let the redirect add one.
- A placeholder wasn't swapped. A literal
{order_id}in the URL means Impact sent nothing for that field.
Using Vyrl with Impact
Vyrl was built for this setup. Connect Impact under Networks, paste your Impact tracking links under Links with Affiliate network set to Impact, and Vyrl adds subId1 with its own click ID on every click. When the postback arrives, the sale is credited to the link, the video address and the place the click came from. You then see commission and earnings per click by video, which is the question which video made the sale answers. Postbacks are part of the Creator plan; see pricing.
Questions
Where do Impact partners add a postback URL?
Open your user profile menu, go to Settings, then Event Notifications under Technical, and edit Action Life Cycle Events. That global postback covers every brand you promote. Brand-level postbacks live under the brand's Tracking Integration page.
Which Impact macro returns my sub ID?
{SubId1} returns whatever value was in the subId1 parameter of the tracking link that was clicked. Impact macros are case-sensitive, so {subid1} will not work.
Is the Impact Payout macro my commission or the sale amount?
{Payout} is your commission for the action, in your partner account currency. {Amount} is the sale amount, in the brand's account currency.
Will Impact tell me when a sale is reversed?
A global Action Life Cycle postback also fires for non-standard events such as modifications and reversals. Brand-level postbacks do not, so use the global setting if you want reversals reported.