Skip to main content

AppsFlyer Data Source

AppsFlyer is a mobile measurement and marketing analytics platform that exposes attribution, campaign performance, and OneLink data through a family of REST APIs. Follow the instructions below to create a new data flow that ingests data from an AppsFlyer source in Nexla.
apps_flyer_api.png

AppsFlyer

Create a New Data Flow

  1. To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Then, select the desired flow type from the list, and click the Create button.

  2. Select the AppsFlyer connector tile from the list of available connectors. Then, select the credential that will be used to connect to the AppsFlyer instance, and click Next; or, create a new AppsFlyer credential for use in this flow.

  3. In Nexla, AppsFlyer data sources can be created using pre-built endpoint templates, which expedite source setup for common AppsFlyer endpoints. Each template is designed specifically for the corresponding AppsFlyer endpoint, making source configuration easy and efficient.
    • To configure this source using a template, follow the instructions in Configure Using a Template.

    AppsFlyer sources can also be configured manually, allowing you to ingest data from AppsFlyer endpoints not included in the pre-built templates or apply further customizations to exactly suit your needs.
    • To configure this source manually, follow the instructions in Configure Manually.

Configure Using a Template

Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common AppsFlyer endpoints. Each template is designed specifically for the corresponding AppsFlyer endpoint, making data source setup easy and efficient.

Endpoint Settings

  • Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below. Click on an endpoint to see more information about it and how to configure your data source for this endpoint.

    Create Cohort Report

    This endpoint creates a cohort report that returns campaign performance data grouped by install cohort — including users, eCPI, revenue, ROI, retention, and other cohort-based KPIs. Use it to track how each acquired cohort performs over time and to compare LTV across media sources, campaigns, or geos.

    • Enter the AppsFlyer app identifier in the App Id field. This is required. For iOS apps this is the App Store ID prefixed with id (for example, id123456789); for Android apps it is the package name (for example, com.example.app). The app ID is shown on the app's overview page in the AppsFlyer dashboard.
    • The cohort report POST body is shaped by the upstream Nexset record (or a static body configured on the source) — set cohort_type, from/to dates, groupings, and the additional kpis (beyond the always-returned users, ecpi, and cost) according to your reporting needs.

    The Cohort API always returns users, ecpi, and cost, plus one additional KPI per call. For the full list of supported groupings and KPIs, see the AppsFlyer Cohort API reference.

    Get Event Types by Attributing Entity

    This endpoint returns the list of in-app event types available for a specified Push API attributing entity. Use it to discover which event types can be streamed by the Push API before configuring downstream consumers.

    • Optionally enter the attributing entity in the Entity Type field. AppsFlyer's Push API supports multiple entity types — most commonly installs and events — which group the event types that can be streamed. Leave blank to use the AppsFlyer default.

    Event types returned by this endpoint can be used to filter the Push API subscription configuration. For complete background on the Push API entities, see the AppsFlyer Push API documentation.

    Get Master Data Freshness

    This endpoint returns the timestamp of the last update to AppsFlyer's Master API datasets. Use it to verify that the underlying Master API data is current before running a Master Report — for example, to skip downstream processing if the freshness timestamp has not advanced since the previous run.

    • No additional configuration is required for this endpoint. It returns a single object containing the last-update timestamp.

    AppsFlyer typically refreshes Master API data within 24–48 hours of activity, depending on the app's configured timezone. Use this endpoint to drive incremental scheduling decisions.

    Get Master Report

    This endpoint returns AppsFlyer's multi-app aggregate KPI report — LTV, retention, cohort, activity, and Protect360 fraud metrics rolled up by groupings such as media source, campaign, and geo. The Master API is the primary endpoint for syncing daily marketing performance KPIs into a warehouse or BI tool.

    • Enter the AppsFlyer app identifier in the App ID field. For iOS apps this is the App Store ID prefixed with id (for example, id123456789); for Android apps it is the package name.
    • Enter the report's date window in the Start Date and End Date fields using YYYY-MM-DD format. Nexla date/time macros (for example {'{now-1}'} for the previous day) can be used here to drive incremental runs.
    • Enter a comma-separated list of fields to group results by in the Groupings field (for example media_source,campaign,geo). Groupings determine the dimensions of each row in the report.
    • Enter a comma-separated list of KPIs to include in the KPIs field (for example installs,revenue,roi). Available KPIs depend on the selected groupings and the app's package.
    • Optionally, enter the source data currency code in the Currency field, and the desired display currency in the Preferred Currency field. Setting both lets AppsFlyer convert revenue values for reporting.
    • Optionally, enter the source timezone in the Timezone field and the display timezone in the Preferred Timezone field. Setting both lets AppsFlyer align the report to your reporting timezone.
    • Pagination is handled automatically by Nexla — the source uses incrementing offset pagination with a default page size of 10000 rows. The Offset and Maximum Rows fields can be left at their defaults unless a custom page size is required.

    The Master API supports a fixed list of groupings and KPIs that depends on your AppsFlyer package and the selected dimensions. For the complete matrix, see the AppsFlyer Master API documentation.

    Get OneLink Short Link Data

    This endpoint retrieves the details and configuration of a specific OneLink short link, including its target URL, deep-link parameters, TTL, and brand domain. Use it to audit existing short links, verify configuration, or sync OneLink metadata into a downstream system.

    • Enter the OneLink campaign identifier in the OneLink ID field. This is required. The OneLink ID is the template-level identifier configured in the AppsFlyer OneLink Management dashboard.
    • Enter the short-link identifier (the unique portion of the short URL) in the Short Link ID field. This is required.

    Both the OneLink ID and Short Link ID can be found in the OneLink Management section of the AppsFlyer dashboard or in the response of the Create OneLink Short Link destination. For complete details, see the OneLink API reference.

    Get Push API Configuration

    This endpoint returns the current Push API streaming configuration for an app — the registered endpoints, event filters, and active subscriptions. Use it to audit or replicate the streaming setup for a given app.

    • Enter the AppsFlyer app identifier in the App Id field. This is required.

    List All Apps

    This endpoint returns the full list of apps in your AppsFlyer account, including each app's identifier, platform, and metadata. Use it as a starting point to discover app IDs that drive downstream Master Report, Cohort Report, or Push API configuration calls.

    • No additional configuration is required. Nexla automatically paginates the response by following the links.next URL returned by AppsFlyer until all apps have been retrieved.

    Nexla also uses this endpoint to validate the API V2 token when the credential is saved, so a successful credential save confirms that the token has permission to call this endpoint.

    List Page Revisions

    This endpoint retrieves the list of revisions for a specific OneLink landing page, including each revision's identifier and metadata. Use it to audit or roll back OneLink landing page changes.

    • Enter the OneLink landing page ID in the Page ID field. This is required. The page ID is shown in the AppsFlyer OneLink Management dashboard.

Endpoint Testing

Once the selected endpoint template has been configured, Nexla can retrieve a sample of the data that will be fetched according to the current settings. This allows users to verify that the source is configured correctly before saving.

  • To test the current endpoint configuration, click the Test button to the right of the endpoint selection menu. Sample data will be fetched & displayed in the Endpoint Test Result panel on the right.

  • If the sample data is not as expected, review the selected endpoint and associated settings, and make any necessary adjustments. Then, click the Test button again, and check the sample data to ensure that the correct information is displayed.

Configure Manually

AppsFlyer data sources can be manually configured to ingest data from any valid AppsFlyer API endpoint. Manual configuration provides maximum flexibility for accessing endpoints not covered by pre-built templates — for example, the Aggregate Pull API, the Raw Data Reports API, or custom Push API subscriptions.

With manual configuration, you can also create more complex AppsFlyer sources, such as sources that combine multiple Master API queries, sources that use Nexla date/time macros to drive incremental ingestion, or sources that include additional query parameters not exposed by the templates.

API Method

  1. To manually configure this source, select the Advanced tab at the top of the configuration screen.

  2. Select the API method that will be used for calls to the AppsFlyer API from the Method pulldown menu. AppsFlyer read endpoints typically use:

    • GET: For Master API, Aggregate Pull API, Push API configuration, OneLink data, and Master Freshness endpoints
    • POST: For the Cohort API and other endpoints that accept a JSON request body

API Endpoint URL

  1. Enter the URL of the AppsFlyer API endpoint from which this source will fetch data in the Set API URL field. AppsFlyer uses different base hosts depending on the API family:
    • Master, Cohort, Aggregate Pull, OneLink Management, Push API: https://hq1.appsflyer.com/...
    • OneLink short-link data: https://onelink.appsflyer.com/shortlink-sdk/v2/...

Ensure the API endpoint URL is correct and accessible with your current credentials. You can test the endpoint using the Test button after configuring the URL.

Date/Time Macros (API URL)

Optional

Most AppsFlyer reporting endpoints accept a date range as from and to query parameters in YYYY-MM-DD format. The API URL can be customized using Nexla macros so that the date window advances automatically on each ingestion run — particularly useful for driving incremental Master Report or Cohort Report ingestion.

Macros are evaluated at run time, so a source configured with from={'{now-1}'}&to={'{now-1}'} and a daily schedule will always fetch the previous day's data without any further manual intervention.

  1. To add a macro, type { at the appropriate position in the API URL (within the Set API URL field), and select the desired macro from the dropdown list.

    • {now} – The current datetime
    • {now-1} – The datetime one time unit before the current datetime
    • {now+1} – The datetime one time unit after the current datetime
    • custom – Datetime macros can reference any number of time units before or after the current datetime — for example, enter (now-7) to fetch the date seven time units before the current datetime
  2. Select the format that will be applied to datetime macros from the Date Format for Date/Time Macro pulldown menu. AppsFlyer expects yyyy-MM-dd for the from/to parameters on Master and Cohort endpoints.

  3. Select the datetime unit that will be used to perform mathematical operations in the included macro(s) from the Time Unit for Operations pulldown menu — for example, select Day so that {now-1} resolves to one day before the current date.

Lookup-Based Macros (API URL)

Optional

Column values from existing lookups can also be included as macros in the API URL. Lookup-based macros are useful when the endpoint requires a dynamic value — for example, looping through a list of app_id values from List All Apps to drive per-app Master Report or Cohort Report calls.

  1. To include a lookup column value macro, select the relevant lookup from the Add Lookups to Supported Macros pulldown menu.

  2. Type { at the appropriate position in the API URL, and select the lookup column-based macro from the dropdown list. Lookup-based macros are automatically populated into the macro list when a lookup is selected in the Add Lookups to Supported Macros pulldown menu.

Path to Data

Optional

If only a subset of the data returned by the AppsFlyer endpoint is needed, you can designate the part(s) of the response that should be included in the Nexset(s) produced from this source by specifying the path to the relevant data within the response. Most AppsFlyer endpoints wrap the returned rows in a top-level data array — Nexla treats each element of this array as a record when the path to data is set correctly.

Path to Data is essential for AppsFlyer endpoints like the Master API and Cohort API that return both a data array and surrounding metadata (totals, pagination links, etc.). Without specifying $.data[*], Nexla would treat the whole response as a single record.

  • To specify which data should be treated as relevant in responses from this source, enter the path to the relevant data in the Set Path to Data in Response field.

    • For responses in JSON format, enter the JSON path that points to the object or array that should be treated as relevant data. JSON paths use dot notation — for example, $.data[*] accesses each row of a Master Report response, and $.event_types[*] accesses each event type returned by the Push API.
    Path to Data Examples for AppsFlyer:

    Master Report and Cohort Report responses use $.data[*]. The List All Apps response also uses $.data[*]. The Push API event types response uses $.event_types[*]. Single-object responses (Master Data Freshness, Get Push API Configuration, OneLink Short Link Data) use $.

Autogenerate Path Suggestions

Nexla can also autogenerate data path suggestions based on the response from the API endpoint. These suggested paths can be used as-is or modified to exactly suit your needs.

  • To use this feature, click the Test button next to the Set API URL field to fetch a sample response from the API endpoint. Suggested data paths generated based on the content & format of the response will be displayed in the Suggestions box below the Set Path to Data in Response field.

  • Click on a suggestion to automatically populate the Set Path to Data in Response field with the corresponding path. The populated path can be modified directly within the field if further customization is needed.

    PathSuggestions.png

Metadata

If metadata is included in the response but is located outside of the defined path to relevant data, you can configure Nexla to include this data as common metadata in each record. AppsFlyer responses commonly include surrounding fields like total_records, links.next, or a last_updated timestamp — these can be preserved alongside each record by configuring a metadata path.

Metadata paths are particularly useful when ingesting Master Reports where downstream consumers need the report's date range, page links, or last-update timestamp attached to every row.

  • To specify the location of metadata that should be included with each record, enter the path to the relevant metadata in the Path to Metadata in Response field.

    • For responses in JSON format, enter the JSON path to the object or array that contains the metadata.

Request Headers

Optional
  • If Nexla should include any additional request headers in API calls to this source, enter the headers & corresponding values as comma-separated pairs in the Request Headers field (for example, header1:value1,header2:value2). Most AppsFlyer endpoints do not require additional headers, but some Push API and OneLink endpoints may need Accept: application/json or Content-Type: application/json.

    You do not need to include the Authorization header — Nexla automatically attaches the Authorization: Bearer <token> header based on the AppsFlyer credential selected for this source.

Endpoint Testing

After configuring all settings for the selected endpoint, Nexla can retrieve a sample of the data that will be fetched according to the current configuration. This allows users to verify that the source is configured correctly before saving.

  • To test the current endpoint configuration, click the Test button to the right of the endpoint selection menu. Sample data will be fetched & displayed in the Endpoint Test Result panel on the right.

  • If the sample data is not as expected, review the selected endpoint and associated settings, and make any necessary adjustments. Then, click the Test button again, and check the sample data to ensure that the correct information is displayed.

Save & Activate the Source

  1. Once all of the relevant steps in the above sections have been completed, click the Create button in the upper right corner of the screen to save and create the new AppsFlyer data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.