When setting up server-to-server (S2S) tracking, a single missing or incorrect parameter can cause conversions not to track. This guide outlines the most common issues and how to spot and fix them.
1. Wrong Parameter Name for the Tracking System / MMP
Each tracking system or MMP (Mobile Measurement Partner) uses different parameter names to capture gk_click_id or any other values you want to pass.
If the wrong parameter name is used, the tracking system can’t match the click to a conversion.
Example:
Platform | Parameter Name | Example Link |
AppsFlyer |
|
|
TUNE |
|
|
🔍 Why this happens:
Each tracking system names its parameters differently. These parameters are placeholders — they tell the tracking platform where to store the click ID that will later be used to fire the postback when a conversion occurs.
2. Typo in the Link
Even a small typo in the tracking link (extra space, missing character, wrong case, or incorrect domain) can break the redirect path or prevent the postback from being delivered.
⚠️ Common mistakes:
gk_click_idmisspelled asgkclickidExtra space or line break in the link
Using
httpinstead ofhttpsMissing
{}around macros (e.g.,{gk_click_id})
3. Wrong Link Format or Syntax (? vs &)
Tracking URLs follow a strict format. The first parameter in a URL always starts with a ?, and any additional parameters are added using &.
If these are placed incorrectly, the system may not read the parameters properly.
✅ Correct Format:
https://example.com/offer?pub_click_id={click_id}&source=network
❌ Incorrect Formats:
https://example.com/offer&pub_click_id={click_id}?source=networkhttps://example.com/offer??pub_click_id={click_id}
4. Missing Click ID or Macro Not Populating
Sometimes the {click_id} placeholder isn’t replaced with a real value when the user clicks the offer.
This means the postback later has nothing to match against, so no conversion is attributed.
⚠️ How to check:
Click your offer link and see if a real value appears in place of {gk_click_id} in the URL:
https://api.brownboots.getgokart.ai/api/v1/offer-link/redirect/12345?aff_click_id=ABC123XYZ
If you still see a macro instead of a value, the macro wasn’t populated — that means the partner’s tracking system isn’t passing it correctly.
5. Postback URL Missing the Click ID or Using the Wrong Macro
Your postback URL must contain the macro that the advertiser’s or tracking system replaces with the click ID or conversion data.
If the postback doesn’t include the click ID macro, GoKart (or any tracking system) won’t know which click to credit.
✅ TUNE Example:
Correct Postback:
https://api.brownboots.getgokart.ai/api/v1/postback?gk_click_id={aff_click_id}Incorrect Postback (missing click ID):
https://api.brownboots.getgokart.ai/api/v1/postback
💡 Always double-check that the advertiser’s tracking platform is set to fire your postback with the correct macros replaced. (No click ID = no match.)
6. Incorrect or Missing Encoding
If your tracking link includes special characters (+, =, &, etc.) but isn’t URL-encoded, some systems may break the link during redirect.
✅ Example:
Instead of
&source=Network A, use&source=Network%20AUse online URL encoders if unsure.
7. Using the Wrong Environment (Sandbox vs Production)
Sometimes clients test using sandbox URLs but the live system fires to production URLs.
Make sure both sides (tracking and postback) point to the same environment.
8. Wrong Event ID (for Multi-Event Offers)
If your offer has multiple conversion events (e.g., Sign Up, First Trade, Level 1 Completion), GoKart needs to know which specific event the conversion belongs to.
This is controlled by the cnv_event_id parameter in your postback.
Option 1: Hardcoded Value
Use this when you want to always send a specific event ID.
https://api.brownboots.getgokart.ai/.../?cnv_event_id=FirstTrade&gk_click_id={subid}✅ GoKart expects an event named exactly FirstTrade to exist in the offer setup.
Option 2: Dynamic Macro (e.g. {event_name})
Use this if your advertiser or MMP sends different event names dynamically.
https://api.brownboots.getgokart.ai/.../?cnv_event_id={event_name}&gk_click_id={subid}In this case, GoKart will look for an event ID that matches whatever value the advertiser sends back for {event_name}.
⚠️ Important: The event ID in GoKart must exactly match the value the advertiser sends in the postback — including case sensitivity and underscores.
Example Reference Table
Event Name (From Advertiser) | Event ID in GoKart | Example Postback |
Sign Up | SignUp |
|
First Trade | FirstTrade |
|
Dynamic Event | Matches |
|
Common Mistakes with Multi-Event Offers
Mistake | Why It Fails |
Event name in GoKart is | Event ID mismatch (case-sensitive) |
Testing a “Level 1” conversion but no “Level 1” event mapped in GoKart | Conversion won’t track because GoKart doesn’t know what that event refers to |
✅ Fix:
Always double-check that:
Every event listed in your postback matches an existing Event ID in GoKart
If you’re testing a specific level or milestone, ensure that event is actually mapped in the offer setup
