Introduction
To optimise advertising campaigns, ad networks require performance data on publishers in specific GEO-targeted regions, as well as on creatives and their formats.
Furthermore, this data needs to be transmitted in a specific format that enables an account manager to optimise campaigns quickly. Many years ago, the client would request a performance spreadsheet from his analytics team, then forward it to his manager on the ad network side, who would manually review it, label the data, and only then make changes to the campaign. This took days and burned a lot of ad budget.
Currently, there are several ways to pass this data in near-real-time with near-100% accuracy, reducing budget waste and improving performance.
One of the most accurate and robust ways to achieve this is to implement Server-to-Server Tracking (S2S). This allows the Client to automatically pass specific events to the Ad Network, enabling it to attribute the conversion to a particular publisher, ad format, and creative.
How S2S Tracking Works
When you set up a campaign in Cointraffic, your landing page URL can include dynamic tracking macros such as {CAMPAIGN_ID}, {GEO}, {WEBSITE_DOMAIN}, and {CLICK_ID}. When a visitor clicks your ad, Cointraffic replaces these macros with actual values before redirecting the user.
The most important macro is {CLICK_ID}. This unique identifier ties the click to a specific impression in Cointraffic's system, enabling accurate conversion attribution.
You can define where the click ID appears in your URL (e.g., example.com?my_param={CLICK_ID}). If you don't include it, Cointraffic automatically appends it as ct_click_id.
On your side, you need to:
Capture the click ID from the URL when the visitor lands
Store it (typically in a first-party cookie or your database)
Send it back to Cointraffic when a conversion event occurs (e.g., signup, deposit)
This completes the attribution loop — Cointraffic can now credit the conversion to the correct publisher, creative, and campaign.
You can trigger multiple actions and pass the necessary data to track conversions, including any additional data required.
Storage considerations: Typically, the Click ID parameter is stored in localStorage, cookies, or an analytics system.
Sending Conversion Data to Cointraffic
When a conversion occurs, your server sends a GET request to Cointraffic's S2S endpoint:
https://apps-pxl.ctengine.io/e?k={PIXEL_KEY}&ev={EVENT}&click_id={CLICK_ID}
Required Parameters
Parameter | Description | Example |
k | Your unique pixel key (provided by your Cointraffic account manager) | ABcdEFgH |
click_id | The click identifier captured from the landing page URL | 3647587a-4c6f-4452-496b-547462b755d2 |
ev | Event name (max 20 characters, alphanumeric only, no spaces) | signup |
Optional Parameters
You can append any custom parameters to pass additional conversion data:
Parameter | Description | Example |
user_id | Your internal user identifier | 12345 |
deposit_amount | Transaction value | 50.00 |
currency | Currency code | USD |
Parameter names must be alphanumeric with underscores. Values should be URL-encoded.
Examples
Signup event:
Signup event:
https://apps-pxl.ctengine.io/e?k=ABcdEFgH&ev=signup&click_id=3647587a-4c6f-4452-496b-547462b755d2
Signup with user ID:
Signup with user ID:
https://apps-pxl.ctengine.io/e?k=ABcdEFgH&ev=signup&click_id=3647587a-4c6f-4452-496b-547462b755d2&user_id=12345
Deposit with amount:
Deposit with amount:
https://apps-pxl.ctengine.io/e?k=ABcdEFgH&ev=deposit&click_id=3647587a-4c6f-4452-496b-547462b755d2&user_id=12345&deposit_amount=50.00
Implementation Notes
Send the request server-side, not from the browser — this prevents ad blockers from interfering and keeps your pixel key private
Fire the request immediately when the conversion occurs for accurate attribution timing
A successful request returns HTTP 200 — implement retry logic for failed requests
Ensure the click_id is URL-encoded if it contains special characters
