Effinity

Datafly Signal delivers affiliate conversions to Effinity (Effiliation) server-to-server. Sales and leads are posted directly from your Signal server to the Effiliation tracking servlet, so commissions are attributed to your publishers reliably, even when ad blockers or Intelligent Tracking Prevention (ITP) would block a client-side pixel.

Prerequisites

Before configuring Effinity in Signal, you need:

  1. An active Effinity advertiser account with at least one live programme.
  2. Your Effinity ID (your unique advertiser identifier). Ask your Effinity account manager if you do not have it — it is the same value used in the Effinity tag.
  3. Your affiliate tracking links must carry the eff_cpt parameter (and optionally eff_sub1, eff_sub2, eff_pid). This is how a click is tied to the publisher who drove it.

How attribution works

When a visitor arrives from an Effinity publisher link, the URL carries eff_cpt (the click / counter id) plus optional eff_sub1, eff_sub2, and eff_pid. Datafly.js captures these on the landing page and stores them in a first-party cookie. When the visitor later completes a purchase or submits a lead, Signal includes the stored click id (id_compteur) in the conversion postback so Effinity can credit the correct publisher.

⚠️

Without eff_cpt, the conversion is still accepted by Effinity (HTTP 200) but no publisher is credited. Confirm your affiliate links carry eff_cpt and that Datafly.js is capturing it on the landing page.

Configure in Signal

Configuration Fields

FieldRequiredDescription
advertiser_idYesYour Effinity ID (advertiser identifier). Sent as the id query parameter on every conversion.

Management UI Setup

Add the integration

Go to Integrations > Add Integration > Effinity.

Enter your Effinity ID

Paste your advertiser identifier into the Effinity ID field.

Choose the consent category that gates affiliate / marketing tracking (typically marketing). Signal maps your canonical marketing consent to Effinity’s consent_performance parameter.

Save

Click Save. The integration is now live and will post conversions as they occur.

API Endpoint

Effinity uses two GET endpoints — one for sales, one for leads. Signal selects the right one automatically based on the event:

GET https://track.effiliation.com/servlet/effi.revenuemobile?<params>   (sale)
GET https://track.effiliation.com/servlet/effi.leadmobile?<params>      (lead)

All conversion data is sent as URL query parameters. There is no request body and no secret token — your Effinity ID travels as the id parameter.

Identity Signals

Effinity is an affiliate attribution network, not an audience-matching platform, so no PII is hashed or sent. Attribution is based entirely on the click identifiers captured from the affiliate landing URL:

SignalParameterSourceDescription
Click / counter idid_compteureff_cpt URL paramThe core attribution key. Identifies the publisher and click.
Sub id 1effi_ideff_sub1 URL paramOptional publisher sub-tracking id.
Sub id 2effi_id2eff_sub2 URL paramOptional publisher sub-tracking id.
Product idprod_ideff_pid URL paramOptional product-level click id.

These are captured automatically by Datafly.js on the landing page and persisted in a first-party cookie until the conversion fires.

Event Mapping

The default preset maps two Signal events to Effinity conversions:

Signal eventEffinity servletConversion type
Order Completedeffi.revenuemobileSale
Lead Generatedeffi.leadmobileLead

All other events (including page) are dropped — Effinity only needs the final conversion.

Sale parameters

Signal propertyEffinity parameterNotes
order_idrefUnique transaction reference. Required.
revenuemontantOrder value, excluding tax and shipping. Required.
currencymonnaie3-letter ISO-4217 code (e.g. EUR, GBP). Required.
couponvoucherPromo / voucher code used.
new_customernewcustomer1 for a new customer, 0 for returning.

Lead parameters

Signal propertyEffinity parameterNotes
lead_idrefUnique lead reference. Required.

Example: Sale conversion

Datafly.js call:

datafly.track("Order Completed", {
  order_id: "ORD-001",
  revenue: 129.99,
  currency: "EUR",
  coupon: "WELCOME10",
  new_customer: true
});

Effinity postback sent by Signal:

GET https://track.effiliation.com/servlet/effi.revenuemobile
    ?id=12345
    &id_compteur=abc123clickid
    &ref=ORD-001
    &montant=129.99
    &monnaie=EUR
    &voucher=WELCOME10
    &newcustomer=1
    &consent_performance=1

Example: Lead conversion

Datafly.js call:

datafly.track("Lead Generated", {
  lead_id: "LEAD-789"
});

Effinity postback sent by Signal:

GET https://track.effiliation.com/servlet/effi.leadmobile
    ?id=12345
    &id_compteur=abc123clickid
    &ref=LEAD-789
    &consent_performance=1

Testing Your Integration

Visit your site through a real Effinity publisher link so the landing URL carries eff_cpt. Confirm in your browser dev tools that Datafly.js has stored the click id in a first-party cookie.

Trigger a conversion

Complete a test purchase (or submit a test lead). In Signal’s Event Debugger, confirm the outbound request hits track.effiliation.com with the correct servlet (effi.revenuemobile for a sale) and that id_compteur is populated.

Verify in the Effinity dashboard

A 200 response means Effinity accepted the postback — it does not guarantee a publisher was credited. Confirm the test conversion appears in your Effinity advertiser dashboard with the expected publisher attribution.

Because Effinity accepts conversions even without a click id, always validate end-to-end in the Effinity dashboard rather than relying on the 200 status alone.

Troubleshooting

ProblemSolution
Conversion accepted (200) but no commission attributedid_compteur is missing. Confirm the affiliate link carries eff_cpt and that Datafly.js captured and persisted it before the conversion.
No request reaching EffinityCheck the event is Order Completed or Lead Generated — other events are dropped. Verify the integration is enabled and consent is granted.
Wrong servlet hitSales must route to effi.revenuemobile and leads to effi.leadmobile. Check the event-to-servlet mapping in the integration’s field mappings.
Currency rejectedmonnaie must be a 3-letter ISO-4217 code (e.g. EUR, GBP).
Value looks wrongmontant should be the order value excluding tax and shipping. Adjust the revenue property you send.