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
| Field | Required | Description |
|---|---|---|
appid | Yes | Your 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:
| Signal | Parameter | Description |
|---|---|---|
| Click token | subid | The Click ID Digital Turbine appended to the original Click URL. Required for the conversion to be credited. |
| IP address | ip | The user’s external device IP address, forwarded from the original request. |
| Android advertising ID | google_ad_id | Google Advertising ID (GAID). Required for Android campaigns. |
| Android limited tracking | google_ad_id_limited_tracking_enabled | Whether the user has limited ad tracking on Android. |
| iOS advertising ID | apple_idfa | Apple’s IDFA. Required for iOS campaigns. |
| iOS tracking enabled | apple_idfa_tracking_enabled | Whether 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 event | Digital Turbine action_id |
|---|---|
Order Completed | purchase |
Signed Up | register |
Trial Started | trial |
Lead Generated | lead |
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=falseA 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
| Problem | Solution |
|---|---|
| Postback returns 200 but no conversion shows in Digital Turbine | The 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 request | The click token was not captured in your app/web flow. Ensure the Click URL token is persisted and surfaced to Signal. |
| Android conversions not attributed | google_ad_id is missing or empty. Confirm the event carries the device GAID. |
| iOS conversions not attributed | apple_idfa is missing (often due to ATT opt-out). Confirm IDFA availability and apple_idfa_tracking_enabled. |
| HTTP 400 / 403 / 404 | Malformed request or wrong host/path. These are permanent errors and are not retried — review the request in the event debugger. |