Skip to main content
If you cannot host JavaScript on your pages or need to record clicks from a backend service, you can create clicks by making a server-side HTTP request directly to your Everflow tracking domain. This returns a transaction ID that you can use for conversion attribution, just like the JavaScript SDK.
This method is for click tracking only. It does not apply to impression tracking or smart link tracking.

When to use server-side clicks

  • Your environment does not support JavaScript (email, SMS, native apps, server-to-server flows)
  • You need to record clicks from a backend service before redirecting the user
  • You want full control over when and how clicks are created

Creating a click

Make a GET request to your tracking domain’s /clk endpoint to receive a JSON response instead of a redirect:
GET https://{your-tracking-domain}/clk?oid={offer_id}&affid={affiliate_id}

Required parameters

ParameterTypeDescription
oidintegerThe offer ID
affidintegerThe affiliate ID

Optional parameters

You can append any of the standard Everflow tracking parameters to the click URL. Common ones include:
ParameterTypeDescription
sub1sub5stringSub-placement tracking values
source_idstringTraffic source identifier
uidintegerOffer URL ID (extra destination URL)
creative_idintegerCreative identifier
coupon_codestringCoupon code for click-level attribution
fbclidstringFacebook click ID
gclidstringGoogle Ads click ID
idfastringApple Identifier for Advertisers (format: 8-4-4-4-12)
google_aidstringGoogle Advertiser ID for mobile tracking
android_idstringAndroid device ID
For the full list of supported parameters and macros, see the Parameters & Macros guide.

Response

{
  "aid": 411,
  "error_code": 0,
  "oid": 2101,
  "session_duration": 24,
  "transaction_id": "73b30b226eb44dc884d56968282b8f39"
}
FieldTypeDescription
transaction_idstringThe unique transaction ID for this click, used for conversion attribution
oidintegerThe offer ID that was passed in
aidintegerThe affiliate ID that was passed in
session_durationintegerThe session duration in hours for this offer
error_codeinteger0 indicates success

Examples

Python

import requests

response = requests.get(
    "https://www.your-tracking-domain.com/clk",
    params={
        "oid": 123,
        "affid": 266,
        "sub1": "campaign_abc"
    }
)

data = response.json()
transaction_id = data["transaction_id"]

cURL

curl "https://www.your-tracking-domain.com/clk?oid=123&affid=266"

PHP

$params = http_build_query([
    'oid' => 123,
    'affid' => 266,
    'sub1' => 'campaign_abc'
]);

$response = file_get_contents("https://www.your-tracking-domain.com/clk?{$params}");
$data = json_decode($response, true);
$transactionId = $data['transaction_id'];

Using the transaction ID

Once you have the transaction_id, pass it when firing a conversion to attribute it back to this click. You can fire conversions via the JavaScript SDK, the Network API, or a server-side postback.