Skai (Kenshoo)

Datafly Signal delivers conversions to Skai (formerly Kenshoo) server-to-server using the Infinity Tag conversion endpoint. This reports purchases and leads to Skai for omnichannel ad measurement and optimisation across the walled gardens, without a client-side Skai pixel that can be blocked by ad blockers or browser tracking prevention.

Skai’s Infinity Tag conversion endpoint is a conversion-tracking surface, not a full analytics stream. Only conversion events (purchases, leads, refunds) should be sent to Skai. Page views and intermediate funnel events are dropped automatically.

Prerequisites

Before configuring Skai in Signal you need an active Skai account with a conversion configuration set up, and your Skai-managed ad URLs must carry the Skai click identifier so conversions can be attributed.

Step 1: Get your Skai tracking server and conversion token

  1. In Skai, open your conversion configuration (Infinity Tag setup).
  2. Note your tracking server / subdomain — the SERVER_ID prefix of your *.xg4ken.com endpoint (for example the 00 in https://00.xg4ken.com/trk/v1).
  3. Note your conversion config token — the long alphanumeric value Skai applies to the conversion tag’s id (cid) parameter.

If you cannot find these, ask your Skai account team for your tracking subdomain and conversion configuration token.

Step 2: Add the Skai click-id macro to your ad URLs

Skai attributes a conversion to a click using a click identifier captured when the visitor lands on your site. Your Skai-managed ad URLs must include the Skai click macro:

https://www.example.com/?k_clickid=_kenshoo_clickid_

Skai replaces _kenshoo_clickid_ with the real click id at click time. Datafly.js captures this value on landing and Signal sends it back with each conversion as the kenshoo_id cookie.

Step 3: Confirm your conversion types

Skai conversions carry a conversion type (type, default conv). Confirm the conversion-type strings configured in your Skai account (for example conv for purchases, lead for leads, refund for refunds) so they match the blueprint event mapping.

Configure in Signal

Configuration Fields

FieldRequiredDescription
subdomainYesYour Skai tracking server / subdomain — the SERVER_ID prefix of your *.xg4ken.com endpoint (e.g. 00).
tokenYesYour Skai conversion config token, sent as the id parameter.

Management UI Setup

Open the integration

Go to Integrations > Add Integration > Skai.

Choose a preset

  • Default — purchases and leads.
  • Retail — purchases and refunds.

Enter your credentials

Enter your subdomain and token.

Select the consent categories that apply (typically advertising or marketing).

Save

Click Save.

API Endpoint

GET https://{subdomain}.xg4ken.com/trk/v1?id={token}&type={conversionType}&track=1&val={revenue}&valueCurrency={currency}&orderId={orderId}&promoCode={promoCode}
Cookie: kenshoo_id={click_id}

Skai’s conversion endpoint accepts all fields on the URL query string (there is no request body). The account is identified by the id (token) parameter; the click is attributed by the kenshoo_id cookie.

⚠️

The endpoint returns HTTP 200 even for hits it cannot attribute. Always confirm delivery in the Skai conversion report, not by HTTP status alone.

Identity Signals

Skai matches a conversion to a click using the Skai click id captured at landing.

SignalFieldDescription
Skai click idkenshoo_id (cookie)The value of the k_clickid / _kenshoo_clickid_ macro on your Skai-managed ad URLs, captured by Datafly.js and sent back as the kenshoo_id cookie. Required for attribution.

Skai’s real-time conversion endpoint matches on the click id, not on hashed PII. If you also use Skai’s offline conversion upload (SFTP CSV) for hashed first-party data, that is a separate path and is not configured here.

Event Mapping

Default preset

Signal eventSkai conversion type (type)
Order Completedconv
Lead Generatedlead

Retail preset

Signal eventSkai conversion type (type)
Order Completedconv
Order Refundedrefund

Parameter mapping

Signal propertySkai parameterNotes
properties.order_idorderIdUnique order/transaction id
properties.revenuevalConversion value
properties.currencyvalueCurrencyISO-4217 currency code
properties.couponpromoCodePromo/voucher code
captured click idkenshoo_id (cookie)Attribution

Example: Purchase conversion

Datafly.js call:

datafly.track("Order Completed", {
  order_id: "ORD-001",
  revenue: 129.99,
  currency: "USD",
  coupon: "EASTER"
});

Skai request sent by Signal:

GET https://00.xg4ken.com/trk/v1?id=YOUR_TOKEN&type=conv&track=1&val=129.99&valueCurrency=USD&orderId=ORD-001&promoCode=EASTER
Cookie: kenshoo_id=abc123def456

To customise, edit the integration’s Field Mappings in the Management UI.

Testing Your Integration

Generate a tracked click

Visit your site through a Skai-managed ad URL (or append ?k_clickid=test123 to a landing URL) so Datafly.js captures a click id.

Trigger a conversion

Complete a purchase (or fire datafly.track("Order Completed", ...)).

Confirm in Signal

Open the Signal Event Debugger and confirm the outbound Skai request carries id, type, val, valueCurrency, orderId, and a kenshoo_id cookie.

Confirm in Skai

Check your Skai conversion report for the conversion against the matching click.

Troubleshooting

ProblemSolution
Conversions not appearing in SkaiConfirm the kenshoo_id cookie is present on the request. If it is empty, the click id was not captured — check that your ad URLs carry k_clickid=_kenshoo_clickid_.
Wrong account / no dataVerify subdomain (the *.xg4ken.com prefix) and token (id) match your Skai conversion configuration.
Conversion recorded under the wrong typeConfirm the type value (conv / lead / refund) matches a conversion type configured in your Skai account; edit the blueprint event mapping if not.
HTTP 200 but nothing in reportsThe endpoint returns 200 even for unattributed hits. Verify the click id and token, then check the Skai conversion report rather than the HTTP status.