IntegrationsAttributionAppsFlyer Android

AppsFlyer Android

Send Android app events and conversions to AppsFlyer server-to-server for mobile attribution, analytics, and campaign optimisation.

⚠️

This blueprint is currently alpha — schema and behaviour may change before GA.

Prerequisites

Complete these steps in the AppsFlyer dashboard before configuring Signal.

Create an AppsFlyer account

Sign up at appsflyer.com and log in to the AppsFlyer dashboard.

Register your Android app

Click Add App in the dashboard, select Android, and enter your package name (e.g. com.example.myapp). The app must be registered before you can send server-to-server events.

Find your Dev Key

Navigate to Configuration > App Settings in the left sidebar. Your Dev Key is displayed at the top of the page. Copy this value.

Generate an API token

Go to Security Center (accessible from the top-right user menu or under Configuration). Generate a V2 API Token. This token authenticates all server-to-server event calls.

Note your App ID

Your App ID is the Android package name you registered (e.g. com.example.myapp). You will need this when configuring the integration in Signal.

Configuration

FieldTypeRequiredDescription
app_idstringYesThe Android package name as registered in AppsFlyer (e.g. com.example.myapp).
dev_keystringYesYour AppsFlyer Dev Key from Configuration > App Settings.
api_tokensecretYesThe AppsFlyer V2 API token from Security Center.

Signal Setup

Quick Setup

  1. Navigate to Integrations in the sidebar.
  2. Open the Integration Library tab.
  3. Find AppsFlyer Android or filter by Attribution.
  4. Click Install, select a variant if available, and fill in the required fields.
  5. Click Install Integration to create the integration with a ready-to-use default blueprint.

API Setup

curl -X POST http://localhost:8084/v1/admin/integration-catalog/appsflyer_android/install \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "AppsFlyer Android",
    "variant": "default",
    "config": {
      "app_id": "com.example.myapp",
      "dev_key": "AbCdEfGhIjKlMnOpQrSt",
      "api_token": "your_api_token"
    },
    "delivery_mode": "server_side"
  }'

Event Mapping

The Retail variant maps the following Datafly events to AppsFlyer in-app event names:

Datafly EventAppsFlyer EventNotes
Product Viewedaf_content_viewProduct details map to af_content_id, af_price, af_currency
Product Addedaf_add_to_cartProduct details map to af_content_id, af_price, af_currency
Order Completedaf_purchaseRequires af_revenue, af_currency, af_order_id
Custom eventsPassed throughAdd the AppsFlyer event name in the blueprint event map

Identity

The default blueprint forwards the following identifiers to AppsFlyer:

SourceAppsFlyer field
vendor_ids.appsflyer_idappsflyer_id
vendor_ids.gps_adidadvertising_id (Google Play)
context.ipip
context.user_agentuser_agent

Capture appsflyer_id from the AppsFlyer Android SDK at app start and pass it via the Datafly mobile SDK — every S2S event requires it.

Default consent category: advertising. Gate behind advertising consent in your CMP; only forward gps_adid when the user has not opted out of personalised ads.

AppsFlyer requires the appsflyer_id device identifier on every S2S event. Ensure your mobile app captures and forwards this ID through Signal.

Verify it’s working

  1. Install your Android app on a test device and trigger the events you want to track.
  2. In the Signal Management UI, open your AppsFlyer Android integration and watch the Live Events stream.
  3. In the AppsFlyer dashboard, navigate to Activity > Event Timeline and filter by your test device.
  4. Verify the event name, revenue, and custom parameters match expectations.
  5. Confirm 200 responses in Signal’s Live Events log.

Troubleshooting

SymptomCauseResolution
401 UnauthorizedInvalid API tokenRegenerate the V2 API token in Security Center and update Signal.
400 Bad RequestMissing required fieldsEnsure appsflyer_id and app_id are present in the event payload.
Events not appearingWrong app IDConfirm app_id matches the package name registered in AppsFlyer.
Revenue not trackedMissing af_revenue fieldMap your revenue field to af_revenue (numeric) and af_currency (ISO 4217) in the blueprint.

Visit AppsFlyer documentation for full API reference and credential setup instructions.

Blueprint

The AppsFlyer Android blueprint version is 0.1.0 (alpha). It ships with a Retail variant covering af_content_view, af_add_to_cart, and af_purchase events.

See also

  • AppsFlyer iOS — iOS counterpart.
  • Adjust — alternative mobile attribution.
  • Branch — alternative mobile attribution with deep linking.
  • Singular — alternative mobile attribution and analytics.