Understanding and implementing Server-to-Server tracking (S2S)
Notes : ⚠️⚠️⚠️
- Your programme’s URL format must be in S2S: this allows the programme to switch tracking links to redirection, and to validate the conversion on the server side. You can change the URL format by going to your program’s configuration, then changing the general settings.
- The use of CMP remains mandatory.
⓵ Definition
Server-to-Server is a tracking method that may not deposit a cookie on the user’s device. It works by generating and storing a unique click ID when the user clicks on an affiliate link or a ad impression. When the same user then converts, the “ClickID” corresponds to the click and enables the conversion to be traced for the partner. The information is stored on the server and the tracking is done by publishing the “clickID”, generated when the user clicks on the server allowing the tracking. You no longer need to place tracking scripts (JS, Iframe, Pixel img) directly on your site. With S2S, the tracking information is directly transmitted in the URL.
This means that you need to configure your program in tracking by redirection, allowing Affilae to automatically generate the “ClickID” when the user clicks.
The “ClickID” is therefore unique per user and this ID is passed on as a variable throughout the conversion funnel.
⓶ Advantages of Server-to-Server tracking
S2S is certainly more demanding to implement compared to JavaScript or Iframe tracking scripts, but there are also many advantages when using this method.
ⓐ Precision
The S2S only generates a ClickID when the user sees or clicks on an affiliate tracking link, thus increasing tracking accuracy. With the development of “adblockers” that can detect and delete cookies, the S2S is particularly interesting because it is independent and does not necessarily require the use of a cookie.
ⓑ Security
Since conversions can only be tracked via a “ClickID”, you are able to avoid many types of affiliate fraud such as cookie stuffing.
ⓒ Mobile
Tracking application downloads or in-app conversions through cookies has many limitations.
Notably because of the following :
➜ The mobile search engines like Safari for example, have their cookies deactivated.
➜ Limiting the deposit of cookies in app stores for application downloads.
By using S2S tracking, you can ensure that your ad tracking is smooth and accurate, without having to worry about cookies.
⓷ Integration
As seen previously, the S2S tracking uses the « ClickID ».
➜ The “ClickID” is a unique ID that is automatically generated by Affilae called “aecid”, it is created when the Internet user clicks on an affiliate tracking link for example.
➜ The ClickID is then sent to the advertiser for server-side matching at the user level.
➜ On the advertiser’s side, a server captures and stores this “ClickID” and any other relevant information from the tracking URL.
➜ If the same user then makes a purchase, the advertiser sends this information back to Affilae via a postback URL.
➜ Upon receipt, Affilae checks whether the ClickID is unique or not, and if it is, the conversion is registered.
➜ In cases where the ClickID is invalid or duplicated due to server errors, fraud or any accidental action by the user, it will be rejected.
S2S Schema
⓸ How can the advertiser store the transaction ID?
Multiple methods are available:
ⓐ Via a cookie
Storing in a cookie on the user’s browser when they load the landing page. This is the most common method, however, it has several disadvantages as the online advertising market is slowly moving towards a cookie-free world.
ⓑ Hidden variable
A second method is to store the “ClickID” as a hidden variable in the URLs
ⓒ URL tracking parameter
The third method is to transfer the “ClickID” as a URL parameter until the conversion is completed.
➜ This process will probably vary depending on the CRM solution you use.
⓹ How to put S2S into place?
ⓐ Inject the “Click ID” into a URL parameter on your tracking links.
In order to track the affiliate partner who made the conversion, Affilae will generate the “ClickID” during each click or impression on your program, via a redirect tracking URL.
➜ The “Click ID” makes it possible to link the Internet user, the affiliate, to the affiliate program. By using a redirect Affilae tracking, the “ClickID” will automatically be assigned to the “aecid” variable on your landing page.
Exemple : https://votresite.com/?aecid=603ed1800000000000000000 ClickID Format: 24 characters (e.g. 603ed1800000000000000000)
ⓑ Store the “Click ID” and send the conversion to Affilae in the postback URL
As mentioned, several methods are available to store the ClickID, but here are some things to consider if you use a cookie ⚠ :
➜ The cookie must be set in the HTTP response header and not in a client-side script, for example.
➜ The cookie must set with a HttpOnly flag.
➜ Le cookie must be defined with the secure flag. Once you have the “ClickID” in the incoming traffic URLs, it should be linked to the conversion in your back office and Affilae.
➜ To do this you need to configure the postback URL to be triggered after the customer has converted and filled in the cids variable with the “click IDs” collected (separated by `-`). Exemple:
Variable | Required | Value Information |
---|---|---|
key | Yes | This key is supplied to you on the “conversion code” page available through your affiliate program Configuration dashboard. e.g.5f04fe700000000000000000-5f04fe700000000000000000 |
id | Yes | Populate this parameter with a unique identifier, for example, a unique order number. If you use this code to confirm a subscription to a newsletter yet you do not have an automatically generated unique identifier, you can, for example, use the user’s email Hash (e.g. MD5) to populate this parameter. |
amount | Yes for sales | Total amount Excluding Tax of an order, which will serve as the basis for calculating the commission and Revenue generated. e.g.123.45 |
currency | Yes | Currency code ISO 4217 |
payment | Yes if conversion requires payment | If the conversions are subject to payment, specify the client’s mode of payment, if not simply leave this parameter blank:
|
customer | Yes if revenue share is activated | Your client identifier if the “Revenue Share” option is activated. Please use an identifier that will not change over time, the best being the ID number used in your database. Leave this parameter blank if you do not use the Revenue Share option. |
cv | No | custom variable that will be available in the interface and API: products, new customer etc. |
voucher | No | Should be replaced by the voucher code that was applied during the check-out process. ; as a separator to add multiples codes. |