---
description: Guide to integrate your Appsflyer data with Sprinkle
---

# Appsflyer

## Datasource Concepts

Before setting up the datasource, learn about datasource concepts [here](..)

## Step by Step Guide

### STEP-1: Configure Connection

To learn about Connection, refer [here](..)

* Log into Sprinkle application
* Navigate to Datasources -> Connections Tab -> New Connection ->&#x20;
* Select Appsflyer&#x20;
* Provide all the mandatory details
  * _Name_: Name to identify this connection
  * _App Name_: On the homepage, you can find the apps added to your account. Copy the App ID of the app you want to fetch data from. eg: play store=com.publisher.name/Apple Store=id123456789
  * _API Token_: In the top right of the AppsFlyer homepage, click the drop-down next to your username, and then, click API tokens. Copy the API token V1.0 and use it.
  * _Date Type_: Sprinkle will pull data from this date or number of days
    * Start Date
    * No. of days
  * _Advance Settings :_ Refer [here](#advanced-connection-settings)
* Test Connection&#x20;
* Create

### STEP-2: Configure Datasource

To learn about datasource, refer [here](..)

* Navigate to Datasources -> Datasources Tab -> Add ->&#x20;
* Select Appsflyer
* Provide the name -> Create
* **Connection Tab**:&#x20;
  * From the drop-down, select the name of connection created in STEP-2
  * Update

### STEP-3: Create Dataset

**Datasets Tab**: To learn about Dataset, refer [here](..). Add Dataset for each report/dataset that you want to integrate, providing following details

* _Report Type (Required)_
  * _Performance Reports_
    * _Category_: Aggregate reports described. Comparison of aggregate and analytics tools/APIs. For more details about category [click here](https://support.appsflyer.com/hc/en-us/articles/360005437257)
  * _Raw Reports_
    * _Category_: Row-level data describing specific events like installs, in-app events, web site visits, Protect360 blocked installs, ad revenue, and postbacks sent to partners. For more details about category [click here](https://support.appsflyer.com/hc/en-us/articles/209680773-Raw-data-reporting-overview)
    * _Additional Category_: To limit (filter) the call to a specific media source. For more details [click here](https://support.appsflyer.com/hc/en-us/articles/360007530258-Using-Pull-API-raw-data#media_source-1)
    * _Media Source:_ To limit (filter) the call to a specific media source. For more details [click here](https://support.appsflyer.com/hc/en-us/articles/360007530258-Using-Pull-API-raw-data#media_source-1)
    * _Additional Field:_ To get additional fields in addition to the default fields. For more details [click here](https://support.appsflyer.com/hc/en-us/articles/360007530258-Using-Pull-API-raw-data#additional_fields-5). Please provide additional fields with comma separated.
    * Batch Size In Minutes:  Use this to download records using minute batch size. If Yes, Minutes field will be displayed.
      * Minutes: This field indicates the difference between from and to dates in minutes. ex- if start date is 2022-06-06 and minutes provided are 120. from will be 2022-06-06 00:00:00 and to will be 2022-06-06 02:00:00. Default value is 0.
  * _Postback Reports_
    * _Category_: For more details about category [click here](https://support.appsflyer.com/hc/en-us/articles/209680773-Description-of-aggregate-and-raw-data-reports#postbacks)[ere](https://support.appsflyer.com/hc/en-us/articles/209680773-Raw-data-reporting-overview)
    * _Additional Field:_ For more details about category [click here](https://support.appsflyer.com/hc/en-us/articles/209680773-Description-of-aggregate-and-raw-data-reports#postbacks)
  * _Retargeting Reports_
    * _Category_: Retargeting reports consist of users who engaged with a retargeting campaign and performed a re-engagement or re-attribution. For more details about category [click here](https://support.appsflyer.com/hc/en-us/articles/360005437257#retargeting)
* Flatten Level(Required) : Select One Level or Multi Level. In one level, flattening will not be applied on complex type. They will be stored as string. In multi level, flattening will be applied in complex level till they become simple type.
* _Destination Schema_ (Required) : Data warehouse schema where the table will be ingested into
* _Destination Table name_ (Required) : It is the table name to be created on the warehouse. If not given, sprinkle will create like ds\_\<datasourcename>\_\<tablename>
* _Destination Create Table Clause_: Provide additional clauses to warehouse-create table queries such as clustering, partitioning, and more, useful for optimizing DML statements. [Learn more](../databases/features/destination-create-table-clause) on how to use this field.
* Create

### STEP-4: Run and schedule Ingestion

In the **Ingestion Jobs** ta&#x62;**:**

* Trigger the Job, using Run button
* To schedule, enable Auto-Run. Change the frequency if needed

### Advanced Connection Settings

* **API Read Timeout (In seconds) :** Maximum time of inactivity between two data packets when waiting for the server's response. The default value is 30 seconds.
* **API Connection Timeout (In seconds) :** Time period within which a connection between a client and a server must be established.
* **Retry Limit :** Number of retries allowed when an API call fails. For example if an API call fails and retry limit is 5 then it will check 5 times for that API call and if it succeeded then it will stop checkin&#x67;**.**
* **Retry Sleep Time (In milliseconds) :** Given time, after which retry should happen in case an API call fails.
* **Version :** It gives information about the version of Appsflyer API being used.
* **Incremental Batch Size (In days) :** No. of days in one batch for which data is being downloaded during incremental ingestion.
