AppsFlyer iOS

Send iOS app events and conversions to AppsFlyer for mobile attribution, SKAdNetwork support, and campaign analytics.

Prerequisites

Complete these steps in the AppsFlyer dashboard and App Store Connect before configuring Signal.

Create an AppsFlyer account

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

Register your iOS app

Click Add App in the dashboard, select iOS, and enter your app’s Apple App ID or search by name. The app must be live on the App Store or registered in App Store Connect.

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.

Find your Apple App ID

Log in to App Store Connect, open your app, and locate the numeric Apple ID on the App Information page (e.g. 123456789). This is required for SKAdNetwork attribution.

Note your AppsFlyer App ID

Your AppsFlyer App ID for iOS is typically in the format id123456789 (the id prefix followed by your Apple App ID).

Configuration

FieldTypeRequiredDescription
app_idstringYesThe AppsFlyer app ID for your iOS app (e.g. id123456789).
dev_keystringYesYour AppsFlyer Dev Key from Configuration > App Settings.
api_tokensecretYesThe AppsFlyer V2 API token from Security Center.
apple_app_idstringYesThe numeric Apple App ID from App Store Connect, used for SKAdNetwork attribution.

Signal Setup

Quick Setup

  1. Navigate to Integrations in the sidebar.
  2. Open the Integration Library tab.
  3. Find AppsFlyer iOS 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_ios/install \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "AppsFlyer iOS",
    "variant": "default",
    "config": {
      "app_id": "id123456789",
      "dev_key": "AbCdEfGhIjKlMnOpQrSt",
      "api_token": "your_api_token",
      "apple_app_id": "123456789"
    },
    "delivery_mode": "server_side"
  }'

Event Mapping

Signal events are mapped to AppsFlyer S2S in-app events via your blueprint. Common mappings include:

Signal EventAppsFlyer Event NameNotes
purchaseaf_purchaseRequires af_revenue, af_currency, and af_order_id
add_to_cartaf_add_to_cartMap product details to af_content_id and af_price
sign_upaf_complete_registrationMap registration method to af_registration_method
subscriptionaf_subscribeMap subscription tier and price

AppsFlyer requires the appsflyer_id device identifier on every S2S event. For iOS, the idfa (Identifier for Advertisers) is also recommended when available for improved attribution accuracy.

Testing

  1. Install your iOS app on a test device and trigger the events you want to track.
  2. Send a test event through Signal using the Test Event button on the integration detail page.
  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. Check Live Logs in Signal to confirm delivery returned 200 OK.

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 ID formatiOS app IDs must include the id prefix (e.g. id123456789).
SKAdNetwork attribution missingMissing or wrong apple_app_idVerify the numeric Apple App ID matches your App Store Connect listing.
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.