Digital Turbine

Datafly Signal reports attributed conversion actions to Digital Turbine (formerly Fyber / DT Offer Wall) using its Server-to-Server (S2S) tracking API. When a user completes a tracked action, Signal fires a real-time postback to Digital Turbine’s actions endpoint so the conversion is credited to the originating Digital Turbine campaign.

This is a mobile app-install / in-app action attribution integration. Conversions are matched by the campaign AppID plus the click token (the subid Digital Turbine appended to the original Click URL) and the device advertising ID (GAID on Android, IDFA on iOS). It is not a web pixel — events must carry mobile advertising identifiers.

Prerequisites

Before configuring Digital Turbine in Signal you need:

  • An active Digital Turbine advertiser campaign created in the ACP Edge Console.
  • Your campaign AppID (from the campaign details, or from your Digital Turbine account manager).
  • The list of action IDs your campaign expects (each tracked action is defined per-campaign in ACP Edge — for example a tutorial-complete, registration, or purchase action).
  • Your app’s Click URL flow must persist the click token that Digital Turbine appends, so Signal can return it as subid.

Digital Turbine S2S tracking attributes a conversion by appid + subid + advertising ID. There is no API key or secret — the AppID is the only credential, so keep it correct and treat the integration as conversion-only.

Configure in Signal

Configuration Fields

FieldRequiredDescription
appidYesYour Digital Turbine campaign AppID. Sent on every action postback. Attribution silently fails (HTTP 200, no credit) if this is wrong.

Management UI Setup

Add the integration

Go to Integrations > Add Integration > Digital Turbine.

Choose a preset

Select the Default preset, which maps the standard Signal conversion events to Digital Turbine action postbacks.

Enter your AppID

Paste your campaign AppID.

Match your action IDs

Open the integration’s Field Mappings and set each event’s vendor action name (action_id) to match the action names defined in your Digital Turbine campaign. The preset ships with placeholder values (purchase, register, trial, lead) — rename them to your campaign’s actual actions.

Save

Select your consent categories (typically advertising) and click Save.

API Endpoint

GET https://service.fyber.com/actions/v2?appid={appid}&action_id={action}&answer_received=0&subid={click_id}&ip={ip}&google_ad_id={gaid}

All fields travel in the URL query string. There is no request body. Signal injects appid from your config and always sends answer_received=0 (the required value for an attributed action). The endpoint returns HTTP 200 with an empty body on success; any other status indicates a malformed request.

Identity Signals

Digital Turbine matches each action postback to a click using these signals. Signal populates them automatically from the event:

SignalParameterDescription
Click tokensubidThe Click ID Digital Turbine appended to the original Click URL. Required for the conversion to be credited.
IP addressipThe user’s external device IP address, forwarded from the original request.
Android advertising IDgoogle_ad_idGoogle Advertising ID (GAID). Required for Android campaigns.
Android limited trackinggoogle_ad_id_limited_tracking_enabledWhether the user has limited ad tracking on Android.
iOS advertising IDapple_idfaApple’s IDFA. Required for iOS campaigns.
iOS tracking enabledapple_idfa_tracking_enabledWhether ad tracking is enabled on iOS.
⚠️

Digital Turbine’s actions endpoint uses raw mobile advertising IDs as the identity key — it does not accept hashed email or phone. Make sure your Signal source carries device advertising IDs (mobile SDK events). Web-only sources cannot attribute through this endpoint.

Event Mapping

Only conversion actions route to Digital Turbine — pageviews and other non-conversion events are dropped. Each Signal event maps to a Digital Turbine action_id.

Default preset

Signal eventDigital Turbine action_id
Order Completedpurchase
Signed Upregister
Trial Startedtrial
Lead Generatedlead

The action_id values above are placeholders. They must exactly match the action names defined in your Digital Turbine campaign (ACP Edge Console), or the postback is discarded. Rename them in the integration’s Field Mappings.

Example: Conversion Event

Datafly.js call:

datafly.track("Order Completed", {
  order_id: "ORD-001",
  total: 19.99,
  currency: "USD"
});

Digital Turbine postback sent by Signal:

GET https://service.fyber.com/actions/v2?appid=9ed9fdf1b5546748d56b4a01298a84fd&action_id=purchase&answer_received=0&subid=2fc13660-4509-f1a2-a0f1-61198a460826&ip=178.210.115.51&google_ad_id=38400000-8cf0-11bd-b23e-10b96e40000d&google_ad_id_limited_tracking_enabled=false

A 200 OK with an empty body confirms the action was accepted.

Testing

Use a known action

Send a tracked event whose action_id matches a real action in your campaign, with a valid subid (click token) and advertising ID.

Check the response

A successful postback returns HTTP 200 with an empty body. Inspect the outgoing request and response in Signal’s event debugger.

Verify attribution

Open your Digital Turbine campaign reporting / attribution dashboard. Attributed actions appear there once Digital Turbine matches the subid to a click.

⚠️

Digital Turbine does not publish a sandbox endpoint. Test against production using a known test action and confirm the result in your campaign dashboard rather than relying on the HTTP response alone (the endpoint returns 200 even when it cannot attribute the action).

Troubleshooting

ProblemSolution
Postback returns 200 but no conversion shows in Digital TurbineThe appid, subid, or action_id is wrong, or the click token never matched a click. Confirm the AppID, verify the click token is captured on landing, and confirm the action_id matches a campaign action exactly.
No subid on the requestThe click token was not captured in your app/web flow. Ensure the Click URL token is persisted and surfaced to Signal.
Android conversions not attributedgoogle_ad_id is missing or empty. Confirm the event carries the device GAID.
iOS conversions not attributedapple_idfa is missing (often due to ATT opt-out). Confirm IDFA availability and apple_idfa_tracking_enabled.
HTTP 400 / 403 / 404Malformed request or wrong host/path. These are permanent errors and are not retried — review the request in the event debugger.