AppsFlyer

The AppsFlyer Connector enables seamless data synchronization between AppsFlyer and HCL CDP (Customer Data Platform). It uses AppsFlyer Pull APIs to fetch, process, and insert or update raw attribution and in-app event data directly into HCL CDP, ensuring continuous, accurate, and up-to-date visibility into user acquisition and engagement metrics for enhanced targeted marketing and analytics.

Introduction

The connector operates through scheduled data fetch cycles designed to optimize the daily API call limits of AppsFlyer while providing flexibility based on data volume and business requirements. The connector fetches data automatically at defined intervals, converts the data from its native CSV format into JSON format, and securely sends it to the configured HCL CDP endpoints.

The connector supports the following comprehensive data categories to ensure full lifecycle tracking:

Category Description
Acquisition and Installs Tracks both Organic Installs (users who find the app naturally) and Non-Organic Installs (users acquired through paid marketing campaigns).
User Engagement (In-App Events) Monitors post-install behaviors, categorizing them into Organic In-App Events and Non-Organic In-App Events to measure campaign effectiveness over time.
App Uninstalls Records both Organic Uninstalls and Non-Organic Uninstalls to assist in churn analysis and retention strategies.
Retargeting Performance Captures Retargeting Conversions and Retargeting In-App Events to evaluate the success of campaigns aimed at re-engaging existing or dormant users.

Prerequisites

Before you configure or use the AppsFlyer Connector, ensure that the following requirements are met:

  • AppsFlyer Account: A valid AppsFlyer account with administrative or developer access. Your AppsFlyer account must have Pull API access enabled. Contact AppsFlyer Support to enable the Raw Data Export (Pull API) feature if it is unavailable.
  • AppsFlyer App ID: The unique identifier of the mobile app whose data you want to fetch.
  • AppsFlyer API Token (Developer Key): The token to authenticate all AppsFlyer Pull API requests.

    For detailed and up-to-date information on API quotas and rate limits, refer to the official AppsFlyer documentation:Report generation quotas (rate limitations)

    AppsFlyer enforces strict API rate limits based on report type and account usage. Data extraction schedules must be carefully planned and aligned with these limits to avoid request failures or incomplete data retrieval.

    Note: If the data volume within a single request exceeds the maximum allowed threshold (e.g., 1,000,000 rows), the remaining data will not be fetched. API calls should be distributed efficiently over time to stay within daily quotas and ensure reliable data ingestion.
  • HCL CDP API Key and Pass Key: The keys to authenticate and securely post transformed JSON data into HCL CDP.

Connection Screen Parameters

The AppsFlyer Connector operates through two main configuration layers within the user interface: the Connection screen and the Action screen.

Field Name Description
AppsFlyer Base URL The base domain for the AppsFlyer API (e.g., https://hq1.appsflyer.com).
AppsFlyer API Token The authorization token (Developer Key) for the AppsFlyer Pull API, sent as a Bearer token in the request headers.
CDP API URL CDP DI API endpoint URL(Example: <https://<base_url>>/v3/data).

Action Screen Parameters

Define the following properties when configuring the connector from an action box:

Field Name Description
AppsFlyer App ID The unique application identifier provided by AppsFlyer. Mandatory.
AppsFlyer Data Category Defines the specific report type to fetch. Mandatory. Supports: Organic/Non-Organic Installs, In-App Events, Uninstalls, and Retargeting data.
AppsFlyer Event Names Comma-separated list of in-app event names. Optional; only for In-App Event categories.
AppsFlyer Additional Fields Optional fields to include from the API response to customize the data payload.
AppsFlyer API Max Rows Maximum rows per API call (Limit: 1,000,000).
Fetch Duration in Days Total days for scheduler execution. Default: 3650 days.
CDP API Key CDP DI API key for authentication (x-api-key).
CDP API Pass Key CDP DI API passkey for additional authentication (x-api-passkey).
Batch Size Number of records per HCL CDP request. Minimum: 500 records.
Maximum Instance Parallel instances for sending data. Minimum: 2 instances.
Full-Day Data Pull (T-1) True: Pulls previous day's data. False: Executes based on user-defined frequency.
Activity Fetch Frequency Intervals (2, 4, 6, 12 hours). Applicable when T-1 is False.
Delay Hours Offset for late-arriving data. Mandatory when T-1 is False.

Supported Pull API Endpoints and Parameters

The AppsFlyer Connector integrates with the AppsFlyer Pull APIs to fetch event-level raw data via authenticated GET requests. The base URL and request pattern follows this structure: https://hq1.appsflyer.com/api/raw-data/export/app/{app-id}/{report}/v5.

Report Type Endpoint Path
Non-Organic Installs /installs_report/v5 (Details on users acquired via marketing campaigns.)
Organic Installs /organic_installs_report/v5(Details on users acquired naturally.)
Non-Organic In-App Events /in_app_events_report/v5 (Actions taken by non-organic users.)
Organic In-App Events /organic_in_app_events_report/v5(Actions taken by organic users.)
Non-Organic Uninstalls /uninstall_events_report/v5(Provides data for users acquired via paid campaigns who have uninstalled the application.)
Organic Uninstalls /organic_uninstall_events_report/v5(Provides data for organically acquired users who have uninstalled the application.)
Retargeting Conversions /installs-retarget/v5(Captures re-attribution and re-engagement events driven by retargeting campaigns.)
Retargeting In-App Events /in-app-events-retarget/v5(Captures in-app activities performed by users who were re-engaged through retargeting campaigns.)

API Parameters and Filters

The following query parameters are utilized to refine the data fetch process:

  • from, to: Defines the specific activity-time window for which data is retrieved. Format must be YYYY-MM-DD HH:MM:SS. The connector manages these timestamps automatically based on schedule execution times.
  • maximum_rows: Controls the maximum number of rows fetched per API call to prevent memory overload. The default limit is 1,000,000 rows.
  • event_name: Filters in-app event data by one or more event names, reducing payload size and focusing on relevant metrics.
  • additional_fields: Adds optional columns to the CSV export for extended reporting, such as device_download_time, deeplink_url, or keyword_id.
Example API Request
GET https://hq1.appsflyer.com/api/raw-data/export/app/com.example.app/in_app_events_report/v5?from=2025-10-22%2000:00:00&to=2025-10-22%2002:00:00&maximum_rows=1000000&event_name=af_purchase,signup&additional_fields=device_download_time,deeplink_url
Headers:
Authorization: Bearer <V2_API_TOKEN>
Accept: text/csv
Example Data Tracking Log Format
This is a AppsFlyer data run report generated on 2025-10-15T08:58:07
----------------------------------------------------------------------
start time:2025-10-15T08:58:07
Total Records from AppsFlyer : 250
Records updated in CDP:250
Records failed in CDP:0
Process ended at:2025-10-15T08:58:07.926000

Known Issues and Resolutions

Issue Resolution
Invalid Credentials Verify credentials in AppsFlyer dashboard. Ensure Developer Key is active and Pull API permissions are enabled.
No Data Found Adjust date range to a period with known activity. Validate event filters and dashboard data status.
Rate Limit Exceeded Reduce execution frequency. Wait for UTC reset (00:00 UTC) and adjust schedule intervals.
Exceeded 1M Row Limit Reduce the data window (e.g., fetch hourly). Re-run tasks with shorter intervals.
Invalid App ID Confirm App ID in "App Settings". Verify platform-specific formatting (e.g., id123456789 for iOS).
Invalid Event Name Cross-check spelling, capitalization, and formatting against raw data in the AppsFlyer dashboard.
Incorrect Endpoint/Base URL Verify the base domain (e.g., hq1.appsflyer.com) and ensure the protocol is https://.
Note: Review AppsFlyer documentation on Report Generation Quotas and Rate Limitations to align export schedules with your tier allowances and prevent API throttling.