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:
- An active Effinity advertiser account with at least one live programme.
- 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.
- Your affiliate tracking links must carry the
eff_cptparameter (and optionallyeff_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
| Field | Required | Description |
|---|---|---|
advertiser_id | Yes | Your 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.
Select consent categories
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:
| Signal | Parameter | Source | Description |
|---|---|---|---|
| Click / counter id | id_compteur | eff_cpt URL param | The core attribution key. Identifies the publisher and click. |
| Sub id 1 | effi_id | eff_sub1 URL param | Optional publisher sub-tracking id. |
| Sub id 2 | effi_id2 | eff_sub2 URL param | Optional publisher sub-tracking id. |
| Product id | prod_id | eff_pid URL param | Optional 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 event | Effinity servlet | Conversion type |
|---|---|---|
Order Completed | effi.revenuemobile | Sale |
Lead Generated | effi.leadmobile | Lead |
All other events (including page) are dropped — Effinity only needs the final conversion.
Sale parameters
| Signal property | Effinity parameter | Notes |
|---|---|---|
order_id | ref | Unique transaction reference. Required. |
revenue | montant | Order value, excluding tax and shipping. Required. |
currency | monnaie | 3-letter ISO-4217 code (e.g. EUR, GBP). Required. |
coupon | voucher | Promo / voucher code used. |
new_customer | newcustomer | 1 for a new customer, 0 for returning. |
Lead parameters
| Signal property | Effinity parameter | Notes |
|---|---|---|
lead_id | ref | Unique 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=1Example: 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=1Testing Your Integration
Click an affiliate link
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
| Problem | Solution |
|---|---|
| Conversion accepted (200) but no commission attributed | id_compteur is missing. Confirm the affiliate link carries eff_cpt and that Datafly.js captured and persisted it before the conversion. |
| No request reaching Effinity | Check the event is Order Completed or Lead Generated — other events are dropped. Verify the integration is enabled and consent is granted. |
| Wrong servlet hit | Sales must route to effi.revenuemobile and leads to effi.leadmobile. Check the event-to-servlet mapping in the integration’s field mappings. |
| Currency rejected | monnaie must be a 3-letter ISO-4217 code (e.g. EUR, GBP). |
| Value looks wrong | montant should be the order value excluding tax and shipping. Adjust the revenue property you send. |