Time to read: 5 min.

The article covers the following topics:

To be integrated with the advertiser on Appsflyer, please sign as an Ad Integrated partner via this link: https://www.appsflyer.com/get-started/partners

If you currently have an integration with AppsFlyer contact their team at [email protected]

To start the integration, you must send AppsFlyer both the Basic Tracking URL and the Postback URL for reporting purposes.

Basic AppsFlyer Tracking URL

Basic AppsFlyer Tracking URL should look like:


❗ No need to fill in the pid=medianame_int, that would be substituted directly by Appsflyer team.

Obligatory Tracking Link Parameters:



Request ID of each user session



ID of the Affiliate promoting the offer



ID of the offer

For more parameters to pass to the Appsflyer, please check the link.

Encryped Key

If there is a necessity to pass the revenue indicated in Payouts in the offer to the advertiser, who uses Appsflyer, and you don’t want to reveal the actual cost value in the Appsflyer tracking URL, you can encrypt the revenue (“cost” in Appsflyer) value. In order to get in correctly you need to receive a special key from your advertiser.

All Payouts existent in the offer are counted for this macro (both general ones and personal ones).

❗ Only Affise clients that perform the cost encryption integration with AppsFlyer can actually send encrypted cost data with their attribution links. These networks have the label of "encrypted click" in the following list of cost supporting ad networks.

Put Encryption key in 'Settings' section -> 'Appsflyer' -> 'Edit' -> 'Encrypted key':

Then you will be able to use special {max_income} macro, that can be attached to the Appsflyer parameter &af_cost_value= in the Tracking URL in the offer:

This marco is unavailable for using unless you have put the encryption key.

As a result the link looks like that:


More information about Encrypted cost is here: Guide on Appsflyer's side

Global Install Postback

Global install Postback URL for iOS example:


Global install Postback URL for Android example:


In-App Event Postback

First, you need to receive the In-App event postback is to set up goals in the 'Offer edit' page. Go to the 'Offers' section - > 'Offer edit' page - > 'Payouts' tab:


In-App event Postback URL for iOS example:


In-App event Postback URL for Android example:


Where &goal={event-name} is the goal you need to create in the Affise system and put it into the goal value cell.

❗ Goal value '1' in the Affise system always refers to the install event. If the goal is not specified in the Postback URL, the conversion will have goal value ‘1’ by default.

Goal Value would refer to the Appsflyer Event Identifier:

Fraud install postback

When you get postbacks from AppsFlyer, the Affise system doesn't automatically differentiate between real postbacks and fraud ones. As a result, you get all conversions registered as real ones and need to pay for them.

To solve the issue, you can set up zero payments and a separate postback to get fraud conversions declined.

To set up zero payouts, do the following:

  1. In Offers > a certain offer > Payouts, add a new payout.

  2. Set revenue and payouts as 0.

  3. Add a new goal to this payout.

    Edit offer _ Boomlet Media - Google Chrome 2022-10-11 at 4.58.25 PM

To decline conversions based on fraud postbacks, you need to set up a separate postback URL for fraud conversions:

  1. Add the &comment parameter with the AppsFlyer macros {blocked-reason}, {blocked-reason-value}, {blocked-sub-reason} to define fraud data to the Affise postback URL.

  2. Add the &status=3 parameter to the Affise postback URL to automatically decline fraud conversions.

  3. Add the goal that you set for zero payouts.

Fraud install postback URL example:


Probabilistic Attribution

By the policy conducted by Apple Inc. in 2021, it is prohibited for attribution platforms (including Appsflyer) to store information, which could help to identify the end-user. As a result it becomes impossible to pass to the advertiser this information (in particular click ID, IP, User Agent) and as a result to get it back. The ordinary process of S2S conversions tracking in Affise has always envisaged the receiving of click ID via the postback link. That’s why Affise offers a new system of conversions tracking, which is called Probabilistic Attribution.

The whole process of Probabilistic Attribution including peculiarities can be found here.

How it works on clicks level

Your advertiser should give you a link, which is to be put in the Tracking URL field in the offer:

Edit offer _ Rocketcompany - Google Chrome 2022-05-27 at 6.28.25 PM

You should not pass {clickid} to the Advertiser, who uses Appsflyer, in case of Probabilistic attribution. Even if you pass, the Affise platform does not store click info in this case.

There are two mandatory macros: {pid} & {offer_id}.

How it works on conversions level

Firstly you need to get a postback link.

The recommended sample of the postback link for Appsflyer to start working with Probabilistic Attribution:


Here is a list of parameters for Probabilistic Postback setup.


If you want to use either Click session lifespan or Minimal click session lifespan options, you need to use both parameters:

  • &timestamp= - Time of click creation in YYYY-MM-DD HH;SS format.

  • &action_timestamp= - Time of conversion creation in YYYY-MM-DD HH;SS format.

Both values are rounded down to the nearest hour on Appsflyer's side. It means there could be the following situation: click created at 14:00 and conversion created at 14.00, however the actual time is 14:15 and 14:55.

Appsflyer sends postbacks in "near real-time" time frame, which means there is a delay for up to 24 hours. An example: a conversion was made at 14:30, but the postback was sent at 19.45. Time of sending is determined randomly - with similar success the conversion could be sent at 14:35 or at 22:12. It causes several limitations:

  • No opportunity to use Time to action (CTIT) report in Affise.

  • No opportunity to use CR/Click/KPI Automation with a period less than 24 hours.

You may also find the following articles helpful:

If you have more questions on the Integration with AppsFlyer, feel free to contact the AppsFlyer Support Team via the AppsFlyer Help Center.

Did this answer your question?