Conversion Tracking
Learn how to track when clicks turn into customers, signups, or any other conversion event — and attach the revenue behind each one so Track Link can compute ROI and ROAS for your campaigns.
Overview
Conversion tracking allows you to measure the effectiveness of your links by tracking when users complete desired actions (purchases, signups, form submissions, etc.) after clicking your tracked links. Recording conversions works on every plan; sending them back to your traffic source is on Pro and up.
Which method should I use?
There are two ways to report a conversion. The right one depends on a single question: do you control the page where the sale happens?
JavaScript snippet
You own the destination site and can add a script tag to the thank-you page. Easiest setup — the script captures the click ID and reports the sale for you.
Server-to-server postback
You don't own the checkout — you promote an affiliate offer on ClickBank, Digistore24, Impact or similar. The network calls your postback URL when the sale clears.
Running paid traffic? Once sales come in, you can also send them back to your traffic source so it can optimise your ads.
The sales setup guide
The Set up sales tracking card at the top of the Conversions page walks you through a postback setup one step at a time. Each step is checked against real traffic that arrived after you started, so a tick means that part works, not that you clicked a button.
- Choose your network and traffic source. Pick Other network if yours isn't listed and enter its sub-ID parameter and click-ID macro.
- Send the click ID to your network. Pick the link you promote, or paste your affiliate link to create one. Track Link adds the network's sub-ID with
{click_id}, and warns when the link is paused, points at a vendor page, or hides parameters after a#. - Have your network call Track Link. Paste the postback URL, then press the network's test button. The step completes when the test or a real postback for that link arrives. If something arrives but can't be recorded, the guide says why.
- Capture the ad platform's click ID. Shown when you buy traffic; completes when a click carries it.
- Send sales back to the traffic source (Pro). Connect the forward and send a test with the test ID your platform gives you.
- Your first sale. Completes when a postback records a sale on the chosen link.
Simulate a sale checks Track Link's side without a real purchase: open your link, press it within two hours, and Track Link runs your postback against that click. It shows the offer URL your visitor reached, with the click ID filled in, and records nothing. Progress is shared by everyone in the workspace. Members see the postback URL without the key and ask an admin to connect forwards.
How It Works
- User clicks your tracked link
Track Link gives the click a unique ID and passes it to your destination — as
{click_id}wherever you placed it, or appended asutm_click. - The ID travels with the visitor
On your own site, our script stores it. On an affiliate offer, the network stores it in its sub-ID field.
- The conversion comes back with the ID
Your page calls
track(), or the network calls your postback URL — with the order value, so revenue rolls up to the link and campaign.
Quick Start (Recommended)
The easiest way to implement conversion tracking is using our tracking script. Add this snippet to your website:
1. Add the Tracking Script
Add this script to every page of your website (ideally in the <head>):
<script src="https://api.gettrack.link/t.js" data-api="https://api.gettrack.link"></script>
2. Track Conversions
Call track(eventType, details) when a user completes a desired action. Pass a value on revenue-generating events (like sales) so Track Link can roll up revenue, ROI and ROAS:
// A sale, with revenue (powers ROI / ROAS)
track('sale', {
value: 49.99, // Order total
currency: 'USD', // ISO code (defaults to USD)
event_name: 'Checkout' // Optional label
});
// A lead / signup (no monetary value)
track('lead', {
event_name: 'Newsletter signup'
});
// You can also attach the user who converted
track('sale', {
value: 49.99,
currency: 'USD',
event_name: 'Checkout',
id: 'user_12345', // Your internal user ID
name: 'John Doe',
email: '[email protected]',
metadata: { orderId: 'ord_987', plan: 'pro' }
});3. Example: After Purchase
// On your checkout success page
document.addEventListener('DOMContentLoaded', function() {
track('sale', {
value: order.total, // The revenue for this conversion
currency: order.currency, // e.g. 'USD'
event_name: 'Checkout',
id: currentUser.id,
name: currentUser.name,
email: currentUser.email,
metadata: { orderId: order.id }
});
});Backward compatible: trackConversion() still works exactly as before, and value is always optional — omit it for leads and signups.
That's it! The script automatically captures the click ID from the URL and cleans up after a successful conversion.
How the Script Works
The tracking script (t.js) is a lightweight, dependency-free (<2KB) JavaScript file that:
- Automatically detects the
utm_clickparameter in the URL - Stores the click ID in localStorage for persistence
- Provides the global
track()andtrackConversion()functions - Reports conversion
valueandcurrencyso revenue, ROI and ROAS roll up automatically - Automatically cleans up after a successful conversion
- Handles errors gracefully without breaking your site
Server-to-Server Postback (Affiliate Networks)
Use a postback when you don't control the destination page — the normal situation when you promote someone else's offer. The advertiser owns the checkout, so you can never install a script on it. Instead, the network calls a URL of yours the moment a sale is approved. Nothing runs in the visitor's browser, so ad blockers, cookie banners and closed tabs can't break it.
Your postback URL
https://api.gettrack.link/postback?click_id={CLICK_ID}&payout={PAYOUT}&txid={ORDER_ID}Replace the parts in braces with your network's own macros — the table below has them for the common networks. On every plan, the Conversions page in your dashboard gives you a keyed URL (https://api.gettrack.link/postback/<your key>) that ties every postback to your workspace, so sales that can't be matched still show up there. On Pro and up it can be made the only accepted form, and every postback your networks send is logged.
New key replaces the key at once: networks still using the old URL stop being matched to your workspace until you paste the new one. Turn on Only accept postbacks with this key once every network uses the keyed URL; plain https://api.gettrack.link/postback postbacks for your links are then refused.
Step 1 — Pass the click ID into the network
Put {click_id} in your affiliate link where the network expects its sub-ID. Track Link replaces it with the click's ID on every click:
Destination: https://hop.clickbank.net/?affiliate=you&vendor=offer&unique_aff_sub1={click_id}
Visitor gets: https://hop.clickbank.net/?affiliate=you&vendor=offer&unique_aff_sub1=c9hw979uq47q69The Links page spots common networks and offers to add the right parameter for you. A link without the token still gets the ID appended as utm_click, which works for your own site but not for a network — networks only return their own sub-ID field.
Step 2 — Register the postback with your network
| Network | Add to your affiliate link | Postback URL to paste |
|---|---|---|
| ClickBank | unique_aff_sub1={click_id} | https://api.gettrack.link/postback?click_id={unique_aff_sub1}&payout={affiliate_earnings}¤cy=USD&txid={receipt_id}&status={event_type}Select Initial Purchase and Upsell Purchase only. Combined Conversion counts upsells twice, and order-form events aren't sales. ClickBank reports earnings in USD. Refunds don't arrive by postback. |
| Digistore24 | cid={click_id} | https://api.gettrack.link/postback?click_id={cid}&payout={amount_affiliate}¤cy={currency}&txid={transaction_id}&status={transaction_type}&billing={billing_type}&test={is_test}Select the payment, refund and chargeback events. Every refund and rebill has its own transaction ID; Track Link matches refunds to the sale on the same click. |
| Impact | subId1={click_id} | https://api.gettrack.link/postback?click_id={SubId1}&payout={Payout}¤cy={Currency}&txid={ActionId}&status={Status}Macros are case-sensitive. Impact re-sends on modifications and reversals, which update the conversion's status. |
| Awin | clickref={click_id} | https://api.gettrack.link/postback?click_id=!!!clickRef!!!&payout=!!!commission!!!¤cy=!!!transactionCurrency!!!&txid=!!!transactionId!!!ShareASale moved into Awin in October 2025 — use this for former ShareASale programs. |
| Rakuten Advertising | u1={click_id} | https://api.gettrack.link/postback?click_id=<u1>&payout=<commissions>&txid=<etransaction_id>&status=<is_event>Turn on Signature in your Rakuten settings first. Reversals arrive with negative amounts and are recorded as refunds. Rakuten tries each postback once. |
| Everflow networks | sub1={click_id} | https://api.gettrack.link/postback?click_id={sub1}&payout={payout_amount}¤cy={offer_currency}&txid={transaction_id}&event={event_name}Many CPA networks run on Everflow. If your links carry sub1…sub5, this is probably yours. |
| CAKE networks | s2={click_id} | https://api.gettrack.link/postback?click_id=#s2#&payout=#price#&txid=#leadid#Your network may need to approve the postback before it goes live. |
| CPAlead | subid={click_id} | https://api.gettrack.link/postback?click_id={subid}&payout={payout}&txid={lead_id}CPAlead does not re-send on reversals. |
| JVZoo | tid={click_id} | https://api.gettrack.link/postback?click_id={tid}&payout={affiliate_amount}¤cy={currency}&txid={transaction_id}&status={transaction_type}Set the postback type to Purchase, not Initiated, or checkout visits count as sales. |
| BuyGoods * | subid={click_id} | https://api.gettrack.link/postback?click_id={SUBID}&payout={COMMISSION_AMOUNT}&txid={ORDERID}&event={CONV_TYPE}Macro names come from a tracker's integration guide — confirm them in BuyGoods. |
| MaxWeb | subid2={click_id} | https://api.gettrack.link/postback?click_id={SUBID2}&payout={COMMISSION_AMOUNT}&txid={ORDERID}Add the postback on each campaign you promote. |
| TUNE / HasOffers networks | aff_sub={click_id} | https://api.gettrack.link/postback?click_id={aff_sub}&payout={payout}¤cy={currency}&txid={transaction_id}Your network may turn postbacks on per offer. |
| MaxBounty * | s2={click_id} | https://api.gettrack.link/postback?click_id=#S2#&payout=#RATE#Macro names come from a tracker's integration guide — confirm them in MaxBounty. |
| WarriorPlus * | See note | https://api.gettrack.link/postbackWarriorPlus takes the tracking code as the last part of your affiliate link's path, e.g. …/o2/a/abc/0/{click_id}. Paste the postback URL as the offer's IPN URL; WarriorPlus posts its WP_* fields and Track Link reads them. |
| Travelpayouts * | sub_id={click_id} | https://api.gettrack.link/postbackShort links accept ?sub_id={click_id}. Postbacks are set up by your Travelpayouts manager: send them the postback URL and ask them to put the SubID where click_id goes. |
* Macro names come from a tracker's integration guide rather than the network's own documentation — confirm them in your network before going live. Can't report sales back: CJ (Commission Junction), Amazon Associates, PartnerStack.
Step-by-step guides: ClickBank, Digistore24, NewsBreak.
Accepted parameters
Networks all name their parameters differently and none let you reshape the callback, so the endpoint accepts every common spelling. Parameter names are case-insensitive.
| What it is | Accepted names | Required |
|---|---|---|
| Click ID | click_id, clickid, cid, tid, subid, sub_id, sub1, aff_sub, aff_sub1, unique_aff_sub1, s1, clickref, u1, utm_click, wp_hop_tid, wp_hop_sid | Yes |
| Payout | payout, amount, value, revenue, commission, affiliate_earnings, sum, total, price, sale_amount, wp_sale_earnings_aff | No |
| Currency | currency, cur, ccy, wp_sale_currency — defaults to USD | No |
| Transaction ID | txid, transaction_id, order_id, oid, orderid, receipt, receipt_id, trans_id, wp_saleid, wp_txnid — separates upsells | No |
| Status | status, cnv_status, conversion_status, state, transaction_type, wp_action — approved, pending, declined or refunded; network wording such as Purchase, RFND or chargeback is understood, and checkout steps such as ClickBank's Order_impression are ignored | No |
| Event | event, event_type, et, type, action — defaults to sale | No |
| Test flag | is_test, test — 1 or true logs the postback as a test and records nothing | No |
| Billing type | billing, billing_type — subscription, installment or recurring makes later payments on the click rebills | No |
| Customer | email, customer_email, buyer_email, user_id, uid, customer_id, external_id | No |
| Anything else | Unrecognised parameters (sub2…sub5) are stored with the conversion | No |
Amounts are forgiving: 49.95, $49.95, 49,95 and 1.049,95 are all read correctly. A negative amount is recorded as a refund.
Duplicates, upsells and refunds
A conversion is identified by its click, event and transaction ID. A network retrying the same postback updates the conversion it already made, a new transaction ID on the same click (an upsell) is a new conversion, and a lead followed by a sale are two. When a network later sends the same transaction as refunded or declined, the conversion changes status and drops out of your revenue. A refund that arrives with a transaction ID of its own (Digistore24 does this) is applied to the sale on the same click with the same amount, or else the most recent sale on that click, and a resent refund isn't applied twice. When the postback says the payment is part of a subscription, a later payment on the same click is recorded as a rebill event: it adds revenue, and isn't sent to your traffic source as another sale.
What the endpoint returns
Always 200 OK with the body 1 — even for an unknown click or a duplicate, because networks treat any non-2xx as a failure and retry. The X-Tracklink-Result header says what happened, and on Pro the postback log on the Conversions page keeps each result for 30 days. Results that can't be tied to your workspace, such as an unknown key, only appear in the header.
| Result | Meaning | What to do |
|---|---|---|
created | A new conversion was recorded. | — |
updated | An existing conversion changed status or amount, e.g. pending → approved, or a refund. | — |
duplicate | Same click, event and transaction ID, nothing changed. | Nothing: networks retry, and this is harmless. |
missing_click | The request had no click ID. An empty request is usually the network checking the URL when you save it. | Make the postback URL pass the network's sub-ID macro as click_id. |
test | The network flagged the postback as a test (Digistore24's is_test), or the click ID was sample data such as some-id. | Nothing: the URL works. Real sales carry real click IDs. |
simulated | You pressed Simulate a sale in the setup guide. It matched your click and recorded nothing. | Nothing: your link and postback URL work. |
ignored | The network reported a checkout step, e.g. a ClickBank order-form impression, not a sale. | Turn that trigger off in the network so only purchases are sent. |
unfilled_macro | The network sent its macro text, e.g. {unique_aff_sub1}, instead of a value. | Check the affiliate link carries {click_id} in that sub-ID field, and the macro name is right. |
unknown_click | No click matches the ID. The sale is listed under Sales we couldn't match for 90 days. | Check the affiliate link's sub-ID field holds {click_id}, and the postback reads that same field. |
bad_key | The key in the URL doesn't exist, e.g. after you created a new key. | Paste the current postback URL from the Conversions page. |
key_required | Your workspace only accepts keyed postbacks and this one had no key. | Use the keyed URL, or turn off Only accept postbacks with this key. |
Test it before you go live
The quickest check is in the app: open your tracked link once, then press Simulate a sale in the setup guide. It confirms the link passes the click ID and the postback finds the click, and records nothing. Then press your network's own test button to confirm the network can reach Track Link.
To test by hand instead, click one of your own tracked links, copy the click ID out of the address bar, then run:
curl -i "https://api.gettrack.link/postback?click_id=PASTE_ID_HERE&payout=9.99&txid=test-1"
The conversion appears on that link's detail page and on the Conversions page. Use a throwaway test link rather than a live campaign, so you don't put fake revenue into real reporting.
Tokens for your destination URL
Put any of these in a link's destination and Track Link fills it in on every click. Values are URL-encoded; write {_name} to insert one as-is. Anything in braces Track Link doesn't recognise is left untouched.
| Token | Filled with |
|---|---|
{click_id} | Track Link click ID — Put it in your network's sub-ID field so each sale can be matched to its click. |
{source_click_id} | Ad platform click ID — The traffic source's own click ID (gclid, tblci, NewsBreak callback…), if the click carried one. |
{param:NAME} | Any incoming parameter — The value of ?NAME= on the short link the visitor opened. |
{utm_source} | utm_source — Also {utm_medium}, {utm_campaign}, {utm_term}, {utm_content}. |
{country} | Country code — Two-letter code from the visitor's IP, e.g. US. |
{device} | Device type — Desktop, Mobile or Tablet. |
{os} | Operating system — e.g. iOS, Android, Windows. |
{slug} | Link slug — The short link's slug. |
Send conversions back to your traffic source (Pro)
Ad platforms optimise on the conversions they see. When your sale is reported to Track Link by an affiliate network, Track Link can pass it on to the platform that sent the click:
- Add the traffic source's click-ID macro to your ad's landing URL — your Track Link short link — as shown below. Track Link stores that ID with the click.
- On the Conversions page, add a forward for the traffic source and paste its postback URL. The presets fill in the right format;
{source_click_id}marks where the platform's ID goes. - Use Send test with the test click ID your traffic source gives you, then go live. Every send is logged with the traffic source's response.
By default only approved sales are sent. Each sale is sent once, the first time it's pending or approved, so a pending sale that later gets approved isn't counted twice. Declined and refunded updates are only sent when the URL includes {status}; without it the traffic source would count them as new sales. A failed send is retried with growing gaps for about two hours (a 4xx answer other than 429 isn't retried, because it won't succeed later), and a forward that fails 15 times in a row switches itself off until you press Enable. A sale whose click came in with another platform's click ID (say fbclid when the forward is for NewsBreak) isn't sent. A workspace can have up to 10 forwards.
| Traffic source | Add to your ad's landing URL |
|---|---|
| NewsBreak | ?nb_cid=__CALLBACK_PARAM__ |
| Taboola | Nothing — Taboola adds tblci automatically |
| Outbrain | ?ob_click_id={{ob_click_id}} |
| MGID | ?mgid_cid={click_id} |
| PropellerAds | ?pa_cid=${SUBID} |
| Zeropark | ?zp_cid={cid} |
| ExoClick | ?exo_cid={conversions_tracking} |
| RevContent | Nothing — RevContent adds rc_uuid automatically |
Example for NewsBreak: https://gtlk.link/your-slug?nb_cid=__CALLBACK_PARAM__. Google, Meta and TikTok click IDs (gclid, fbclid, ttclid) are captured too, but those platforms need their own conversion APIs rather than a postback URL.
Alerts when tracking breaks
A broken postback usually goes unnoticed until the ad spend is gone, so Track Link watches for the two common failures and tells the workspace owner with a notification in the app and an email:
- Sales aren't reaching your traffic source. Three sales in a row couldn't be sent to a forward, and again if it switches itself off after 15.
- Sales stopped arriving. Checked daily. A link that had at least 3 postback sales in the previous 30 days, still gets clicks, and has had no sales for 3 days when its usual rate says about 3 were due. The alert says whether postbacks arrived and were refused, or nothing arrived at all.
Each alert is sent at most once a week for the same problem, and every alert links to the Conversions page.
Manual Implementation
If you prefer not to use our script, you can implement conversion tracking manually.
API Endpoint
POST https://api.gettrack.link/api/conversionsRequest Body
{
"click_id": "C9HW979UQ47Q69",
"value": 49.99, // Optional - revenue for this conversion
"currency": "USD", // Optional - ISO code, defaults to USD
"event_type": "sale", // Optional - "sale" | "lead" | "signup" | custom
"event_name": "Checkout", // Optional - human label
"order_id": "ord_987", // Optional - a second order counts separately
"user_id": "user_12345", // Optional
"name": "John Doe", // Optional
"email": "[email protected]", // Optional
"host": "yoursite.com", // Optional
"page_url": "https://yoursite.com/success", // Optional
"metadata": "{\"plan\":\"pro\"}" // Optional - JSON string
}Response
{ "success": true }The response is deliberately identical whether or not the click existed, so the endpoint can be called from a public page without revealing which click IDs are valid. Repeating a call with the same click, event and order ID changes nothing.
Manual JavaScript Example
Capture the click ID and register conversions manually:
// 1. Capture click_id on page load
const urlParams = new URLSearchParams(window.location.search);
const clickId = urlParams.get('utm_click');
if (clickId) {
localStorage.setItem('link_track_id', clickId);
}
// 2. Register conversion when needed
async function registerConversion(userData) {
const clickId = localStorage.getItem('link_track_id');
if (!clickId) return;
try {
const response = await fetch('https://api.gettrack.link/api/conversions', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
click_id: clickId,
value: userData?.value, // Optional - revenue for ROI / ROAS
currency: userData?.currency, // Optional - defaults to USD
event_type: userData?.eventType,
event_name: userData?.eventName,
order_id: userData?.orderId,
user_id: userData?.id,
name: userData?.name,
email: userData?.email,
host: window.location.hostname,
page_url: window.location.href
}),
});
if (response.ok) {
localStorage.removeItem('link_track_id');
}
} catch (error) {
console.error('Conversion tracking failed:', error);
}
}Server-Side Examples
Node.js / Express
app.post('/checkout/success', async (req, res) => {
const { clickId, user, order } = req.body;
await fetch('https://api.gettrack.link/api/conversions', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
click_id: clickId,
value: order.total, // Revenue for ROI / ROAS
currency: order.currency, // e.g. 'USD'
event_type: 'sale',
event_name: 'Checkout',
order_id: order.id,
user_id: user.id,
name: user.name,
email: user.email,
}),
});
res.json({ success: true });
});Python
import requests
def register_conversion(click_id, value=None, currency=None,
event_type=None, event_name=None, order_id=None,
user_id=None, name=None, email=None):
response = requests.post(
'https://api.gettrack.link/api/conversions',
json={
'click_id': click_id,
'value': value, # Optional - revenue for ROI / ROAS
'currency': currency, # Optional - defaults to USD
'event_type': event_type,
'event_name': event_name,
'order_id': order_id,
'user_id': user_id,
'name': name,
'email': email,
}
)
return response.json()
# A sale, with revenue
register_conversion(
click_id='C9HW979UQ47Q69',
value=49.99,
currency='USD',
event_type='sale',
event_name='Checkout',
order_id='ord_987',
)
# A lead, no value
register_conversion(
click_id='C9HW979UQ47Q69',
event_type='lead',
event_name='Demo request'
)Best Practices
- Send a transaction ID - It lets upsells count separately and lets refunds find the sale they cancel.
- Send revenue on sales - Pass
value(andcurrency) on purchases so Track Link can compute ROI and ROAS for each campaign. Leave it off for leads and signups. - Use the tracking script on your own site - It handles edge cases and cleanup automatically.
- Track meaningful conversions - Focus on actions that matter (purchases, signups, not page views).
- Test before going live - Press Simulate a sale and your network's test button, and check both before spending on traffic.
Viewing Conversions
- The Conversions page lists recent conversions with their status, and on Pro, every postback your networks sent and what happened to it
- Sales we couldn't match lists postbacks from the last 90 days whose click ID matched no click, with the transaction ID and amount, so you can fix the link and follow up with the network
- A link's detail page shows its conversion count, rate and revenue
- Each click on the link detail page shows the conversions it produced
Frequently Asked Questions
What is a server-to-server (S2S) postback?
A server-to-server postback is a plain HTTP request your affiliate network sends to a URL you register with them, at the moment a sale is approved. Nothing runs in the visitor's browser, so it works even when you do not control the checkout page — which is the normal situation for an affiliate promoting someone else's offer. Track Link's postback URL is https://api.gettrack.link/postback and it accepts a GET or a form POST.
When should I use a postback instead of the JavaScript snippet?
Use the JavaScript snippet when you own the destination site and can add a script tag to the thank-you page. Use the postback when you do not — for example when you promote a ClickBank, Digistore24 or Impact offer, where the advertiser owns the checkout and you can never install code on it. The postback is also more reliable in general, because it is not affected by ad blockers, cookie banners or the visitor closing the tab.
How do I pass the Track Link click ID to my affiliate network?
Put {click_id} in your affiliate link where the network expects its sub-ID — for example unique_aff_sub1={click_id} on a ClickBank HopLink. Track Link replaces it with a 14-character click ID on every click, and the network hands that ID back in the postback, so the sale is matched to the exact click that produced it. A link without the {click_id} token gets the ID appended as ?utm_click= instead.
Why is the Track Link click ID only 14 characters?
Affiliate networks cap the length and the characters of their sub-ID fields, so a long identifier silently fails to round-trip and the conversion is never matched. The 14-character letters-and-digits code fits every major network's limit, and matching ignores letter case, so a network that changes capitalisation cannot break it.
Does Track Link count a duplicate postback twice?
No. A conversion is identified by its click, its event and its transaction ID. A retried postback updates the conversion it already made, while a new event on the same click (a lead, then a sale) or a new transaction ID (an upsell) is recorded separately. The endpoint always answers 200, because networks treat any other response as a failure and keep retrying.
Can Track Link send conversions back to NewsBreak, Taboola or other traffic sources?
Yes, on the Pro plan and up. Add the traffic source's click-ID macro to your ad's landing URL — for NewsBreak that is ?nb_cid=__CALLBACK_PARAM__. Track Link stores it with the click, and when your affiliate network reports the sale, Track Link calls the traffic source's postback URL with that ID so the platform can optimise your campaign.
How do I test a postback without making a real sale?
Open your tracked link once, then press Simulate a sale in the setup guide on the Conversions page. Track Link runs your postback against that click, shows the offer URL with the click ID filled in, and records nothing, so no fake revenue lands in your reports. To check the network's side, press your network's own test button: the guide marks the step done as soon as that test postback arrives.
What happens to a sale whose click ID matches no click?
It isn't counted, but it isn't lost either. When the postback uses your keyed URL, the sale is listed under Sales we couldn't match on the Conversions page for 90 days, with the click ID, transaction ID and amount the network sent. The usual cause is an affiliate link that doesn't put {click_id} in the sub-ID field the postback reads, or a vendor page that drops it.
Will Track Link tell me if conversion tracking stops working?
Yes. The workspace owner gets a notification and an email when sales can't be sent to a traffic source three times in a row, and again if the forward switches itself off. Once a day Track Link also checks links that normally get sales by postback: if one keeps getting clicks but has had no sales for three days, you're told sales stopped arriving. Each alert is sent at most once a week.
Need Help?
If you have questions about implementing conversion tracking, please contact us at [email protected]