Tracking & results
Sending conversions to ad platforms
Send your leads and sales back to Meta, TikTok, Google Ads and native networks from our server, so their ads find more people like your buyers.
Ad platforms learn from conversions. When Meta, TikTok, Google Ads or a native network can see which of its clicks became leads and sales, it shows your ads to more people like them. Connections send those conversions from our server, so ad blockers and lost cookies don’t hide them.
How it works
- A visitor arrives from an ad. We keep the ad’s click id from the page address, for example
fbclid,ttclid,gclidortblci. - They click through to your offer. The click goes through our server, which records it and fills in your link tokens.
- They sign up on your page, or your network reports a sale with a postback.
- We send that lead or sale to each connection whose click id is on the visit. Visits from other sources are skipped, and Sync activity says why.
On pages published before ad connections were added, sales can’t be matched to an ad click until you publish the page again, so Sync activity skips them with a reason like “No Meta click on this visit”.
Adding a connection
Open Tracking & postbacks and choose Add connection. Only workspace owners and admins can add or change connections. How many connections you can have depends on your plan: see Plans, limits & billing.
| Platform | What you need |
|---|---|
| Meta | Your pixel ID and a Conversions API access token from Events Manager |
| TikTok | Your pixel code and an Events API access token from TikTok Events Manager |
| Google Ads | The names of your import conversion actions |
| Taboola, Outbrain, MGID | Your event names. We fill in the network’s postback URL for you (for MGID, you add your MGID ID to it) |
| Custom postback | Your network’s or tracker’s postback URL, with our tokens in it, and the name of the click id parameter on your page’s address |
Access tokens are stored encrypted and never shown again: you see only their last 4 characters. Type a new one to replace it.
Click ids from native networks
We match a lead or sale to its ad click through the click id on your page’s address. Taboola adds its own (tblci). For Outbrain and MGID you set the parameter up in the network’s campaign settings:
- Outbrain: in the campaign’s tracking code, add
OutbrainClickId={{ob_click_id}}exactly as written. Outbrain then adds the click id to your page’s address. The event names you enter must match your Outbrain conversions exactly, capitals included. - MGID: add
click_id={click_id}to the campaign’s tracking link.
What we send
Meta and TikTok get a Lead for each lead and a Purchase for each sale. A sale always goes with its payout and currency, and a sale paid out at 0 is sent with a value of 0, because Meta’s Purchase event requires both. A lead carries no value.
Choosing what to send
Each connection sends leads, sales or both. Sales come from your network’s postbacks, so set up your postback URL first. Under Send sales you choose when a sale goes out:
- As soon as they’re reported, pending or approved. This is the fastest.
- Only once they’re approved. If your network reports a sale as pending first, it goes out when the approval arrives.
A rejected sale is never sent, and a sale we already sent isn’t taken back if your network rejects it later. Meta refuses events more than 7 days old, and we hold TikTok to the same limit. So with Only once they’re approved, a sale that is approved more than 7 days after it was reported is skipped for both, and Sync activity says so.
Postback tokens
In a postback URL, put these tokens where the network expects its values:
| Token | Filled with |
|---|---|
{click_id} | The network’s click id from the visit (the parameter you name in the connection) |
{event} | Your event name for leads or for sales |
{value} | The sale’s payout, such as 42.00 (empty for leads) |
{currency} | The payout’s currency, such as USD (empty for leads) |
{txid} | The network’s transaction id, when it sent one (empty for leads) |
{np_click_id} | Our own click id for the click a sale came from (empty for leads) |
Google Ads
Google Ads picks up conversions from a private file instead of us pushing them. We show the file’s address as soon as you add the connection, and Feed address on the connection shows it again. Then:
- In Google Ads, create a conversion action for offline conversions from clicks (the ones that use a Google Click ID). Give it the exact name you entered here, spelling and capitalization included, and wait 4 to 6 hours before the first upload.
- Go to Goals › Conversions › Uploads, open Schedules and add a new schedule.
- Choose HTTPS as the source and paste your feed URL. If Google asks for a user name and password, enter any: the URL itself is the key, so keep it private.
- Choose how often it runs (daily is best) and a time, then click Save & preview. Each run picks up the last 60 days of conversions, and Google doesn’t count a conversion twice, so repeats are harmless.
Because Google reads the file itself, Google connections don’t show in Sync activity. Google now calls this kind of import “legacy”, but scheduled uploads from a web address still work.
Checking it works
- Send test sends a test event. Meta and TikTok need the test event code from Events Manager (choose Edit on the connection to add it), so the test shows under Test events instead of counting as a real conversion. For postbacks we show the exact URL first, then call it with test values. A test isn’t added to Sync activity.
- Sync activity lists the 50 most recent entries, one for each lead or sale on each connection: Sent, Waiting, Skipped with the reason (such as “No Meta click on this visit”), or Failed with the platform’s answer.
When a platform turns down 3 sends in a row, the connection shows Needs attention with the error. A send is turned down when the platform answers with an HTTP 4xx such as 400 or 401 (for example “Meta answered HTTP 400”), or when TikTok says the access token is invalid or expired, or lacks permission. Busy and timeout answers (HTTP 408, 425 and 429) are retried instead. A turned-down send usually means an access token expired or was revoked, or a postback URL is wrong. If we can’t read a saved access token, the connection needs attention at once, because only a new token fixes that. Choose Edit, enter a new access token or correct the settings, and save: the connection goes back to Active at once. We keep sending to a connection that needs attention, so the first send that goes through clears it too.
When a platform is down or busy, or doesn’t answer, the entry shows as Waiting while we try again, and it ends up as Failed after we’ve retried for more than 14 hours. Other failures, such as a redirect or TikTok turning down a single event, show as Failed at once with the platform’s answer. Neither kind flags the connection.