# Conversion tracking

## Overview

Collective Audience™ provides a **Click ID–based conversion tracking system** designed to be reliable, privacy-friendly, and compatible with both client-side and server-side environments.

This system allows advertisers and publishers to track conversions using:

* a simple image pixel,
* JavaScript,
* or a fully **Server-to-Server (S2S)** postback.

As long as the **Click ID** is correctly captured and returned, the conversion will be accurately attributed.


---

## Step 1 – Click ID Injection (Audience Desk™)

When configuring a campaign in **Audience Desk™**, Collective Audience™ automatically generates a **unique Click ID** for each click.

### URL Macro

You can inject this Click ID into the advertiser’s final URL using the macro:

```
[POSTBACK_CLICK_ID]
```

 ![](https://s3.eu-west-1.amazonaws.com/outline-assets.collectiveaudience.co/uploads/a579229e-61bc-476b-887f-f4ebec869d46/603ecbd6-f44c-4662-9419-5a1ce8731b03/link-postback.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIA4G6VWWYWENBOMIQL%2F20261016%2Feu-west-1%2Fs3%2Faws4_request&X-Amz-Date=20261016T224500Z&X-Amz-Expires=86400&X-Amz-Security-Token=IQoJb3JpZ2luX2VjECYaCWV1LXdlc3QtMSJGMEQCIFIVLlTsgTg96wh%2B13hbcBBtTjtouLzGHYFUQwAMyGCgAiBZQvQLCUm0fJPROIy9UX0zelwKaJXHduvgCeOJjz9zHirGBQjv%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F8BEAIaDDgzOTU3NzQxNzI2MCIM0yab%2Fsb9UPYpqt2CKpoFuB%2BEa5MwONKzFCbtf5wiVAAVRaYR9GmGt6NdMSaKWAK2%2BOb%2BLlpx%2F7ratzmo5gOwnpVXaX%2FyyDJmygkNiMOc%2BgpZ%2FhbNJEfn8TloAI3BYdgaAX5xIMxfElG1K1uLvqeo%2F6U%2FmVj2%2BFlCBT9JxUJDO19Xuaen5xUsRewtRqOWeD9x47bV4x5%2BB3O9QDZOk2LC%2Bu7J1NSYWN3qnLJDOWv5tNMbN%2FKBj0FHzZDzZH7Wx80eg81oATJXexfevFkg0pXRaTrdloHnNhzBft1Jrn9Etddl5rA754DWiTULdpjC%2BCcYhEZNmJcWNnzvkFAZZIleU5QyGSJvlUlWAVzPswAhXPHyvnSu27cxmTKXgphDOHTN3Voxp%2FxYNTJk83LqQzjoTrOdS4q4phhD3Hz5eJm9nJkc2ImiYxz2UBGhRx8Zeb4j%2Fi1ml%2BrnZbxzsNegZdlIYVLCr9vbTpCNpOXisVtb%2FBOzaF7YL6fnhiEzCuuHVDISjdVDV46UnRfpFlvSjO15nPzRHDGbfLfADew7iMYlQVec4B3GZp0QCpnqFDXYPKAxUHbIot%2BjO9NK0qaQOMNqkI3fL6IOXYGz0GMTXqL4mPhd3ET5Jb9SwWRUbnOfY1rrkt7JD6Zu%2BgmijASDdnpvxeMND7EvJ9hBwn7eEWbX9VkBVpSM0T7pUbFtsKzecam6yDn6EwCFw2QO1AfSnYyeG%2FFxsQUzj0cXEMuCk%2FryoSOxY2MVnEkK2dQn9cM74B8SQfCRq%2B0c8TK6Mch3CQ29OkUEeGtIh9j%2F4JF3NcqkBAntcbbvH%2BJDXMakkwybgisr7GwsMoidrDxI%2FAwyPpDADt9e8%2BQweALbpQY0mo4GZNaEu0Rc5nAqH1J5OjBbEydoiIMSQHah2UgHMOu0ytYGOrIBA7%2BJIQPrc8lI3Xk%2FuX9wOXXeLdPxQv0gQ5r10iRjh1hC9aT3%2BK%2BLKUDZo0SxrxFWA7bcxdNYA9kBsmm%2F9gA25vfZ4quNROTqd17T3k3NJT7JJGWCTIt3KxpyePhbKVJEXcfWhVOEL2EwBC7cBAcqe5PlBwWAgwnqhyVopkionYKI49pKBD4BxaU0zkBWmMjB0UdxMqY8L8%2Bc0CC3wpqY75IKUc7Y6yqARbgBVuNlQyiHzA%3D%3D&X-Amz-Signature=b65acc36e798e5af1bdff7263f7714474fdde1fc8cd4245e041f88e2a5e4ad09&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject " =724x494")


### Example Final URL

```text
https://www.advertiser-site.com/landing?sub_id=[POSTBACK_CLICK_ID]
```

💡 **Important:** The advertiser is free to name the parameter however they want:

* `click_id`
* `sub_id`
* `cid`
* `transaction_id`
* or any custom name

Collective Audience™ will always populate it with the correct **unique Click ID** at click time.


---

## Step 2 – Capture the Click ID on the Advertiser Side

When the user lands on the advertiser’s site, the Click ID is already present in the URL.

### JavaScript Example

```javascript
const params = new URLSearchParams(window.location.search);
const clickId = params.get("sub_id"); // or click_id, cid, etc.
```

Store this value until the conversion happens:

* cookie
* localStorage
* session
* backend database


---

## Step 3 – Send the Conversion Event

Once the conversion occurs, send the Click ID back to Collective Audience™.


---

### Option 1: Image Pixel (Simple & Universal)

```markup
<img src="https://s.collectiveaudience.co/tc?click_id=CLICK_ID_VALUE" />
```

✅ Easy to implement ⚠️ Subject to browser limitations


---

### Option 2: JavaScript Call (Client-Side)

```javascript
fetch("https://s.collectiveaudience.co/tc?click_id=" + clickId, {
  method: "GET",
  mode: "no-cors"
});
```

Useful for SPA or client-side flows.


---

### Option 3: Server-to-Server Postback (Recommended)

This is the **most reliable method**.

#### cURL Example

```bash
curl "https://s.collectiveaudience.co/tc?click_id=CLICK_ID_VALUE"
```

#### Node.js Example

```javascript
fetch("https://s.collectiveaudience.co/tc?click_id=" + clickId);
```

✅ Not impacted by ad blockers ✅ Not dependent on browser consent ✅ Strongly recommended for performance and accuracy


---

## What Happens on Our Side

When the conversion endpoint is called:

* The Click ID is validated
* The full delivery context is retrieved (campaign, creative, inventory, format)
* The conversion is recorded and attributed
* Data becomes available in reporting & analytics

No additional parameters are required.


---

## Best Practices

* Always pass the **same Click ID received on landing**
* Prefer **Server-to-Server** postbacks
* Trigger one call per conversion
* Test with real traffic before scaling


---

## Privacy & Compliance

* No third-party cookies required
* Click ID does not contain personal data
* Fully compatible with consent-based environments (GDPR, etc.)


---

## Summary

✔ You inject `[POSTBACK_CLICK_ID]` in the final URL ✔ The advertiser captures it on landing ✔ They send it back on conversion ✔ Collective Audience™ reconciles everything automatically

Simple, flexible, and reliable.


---

## Need Help?

Contact your Collective Audience™ representative or support team if you need help validating your setup.