This article is intended for Everflow clients that want to:

  • Work with AppsFlyer for the first time

  • Migrate an advertiser to AppsFlyer

AppsFlyer is a Mobile Measurement Partner (MMP). Apps use an MMP for their internal attribution data around installs and in-app events, which can then be passed to Everflow through Postbacks.

Integrating with AppsFlyer 

To initiate a new integration:

  1. Complete the AppsFlyer Partner Registration Information Form.

  2. Once you have submitted the registration form, send to AppsFlyer, and you'll receive an email from the AppsFlyer Partner Development Manager.

  3. Respond to this email with the name of the AppsFlyer client that you are onboarding. The AppsFlyer Partner Manager will then send you a follow-up email in a new thread where you will be asked to supply the following information:
    Your company name
    Transparent logo in PNG format. (Ideal size is 200x50)
    The recommended Everflow attribution URL template, with any additional values you wish to add.
    The pid value will be automatically assigned and built into the URL once the integration has been completed
    Any additional values you want in the URL
    Your Everflow Network ID (NID)  
    Postback domain for install and in-app event postbacks configurations

  4. If you have not heard from an AppsFlyer team member within 48 hours of filling out the registration form, please check your spam folder, and email "" to check the status. 

To update an existing integration: 

If you need to make an update to an existing integration, then send an email request to "". Most requests are completed within 2 business days. 

You will need the AppID from AppsFlyer, your AppsFlyer PID, and the cost model (CPI/CPA, etc.) from the AppsFlyer attribution link. You can then modify the URL below with those parameters, replacing the [ ] sections, and you'll properly pass all of the required AppsFlyer parameters:[AppsFlyer App ID]?pid=[Appsflyer Publisher ID]&clickid={transaction_id}&af_siteid={affiliate_id}&af_sub_siteid={affiliate_source_id}&idfa={idfa}&sha1_idfa={idfa_sha1}&advertising_id={google_aid}&af_cost_value={amount}&af_cost_currency={offer_currency}&af_cost_model=[CPI]
  • AppsFlyer ID ex: com.greatapp (Android) or id1297 (iOS)

  • Change [replace] with your AppsFlyer Publisher ID. (EX: chartboost_int)

  • For campaign cost models other than CPI, please update the &af_cost_model= parameter to the appropriate model. Example:  CPA, CPC

  • If you are an existing AppsFlyer partner and currently migrating to Everflow from a different platform, make sure to add &af_additional_postback=1 to your attribution links.

For the complete list of AppsFlyer parameters, click here.
For the complete list of Everflow macros, click here.

Integrating your Install and In-App Event Postbacks

  • See below for an explanation of how to format install and in-app event postbacks for the Everflow platform.

  • You must send AppsFlyer your custom Everflow domain in place of  [everflow_domain_placeholder] in the below postbacks.

  • NID is the Network ID provided by Everflow.

 Global Install Postback[everflow_network_placeholder]&transaction_

Setting up Events with AppsFlyer

To set up Events for an Offer in Everflow, please see this article - [Click Here]

If you're trying to troubleshoot an issue with receiving AppsFlyer events - [Click Here]

Global In-App Event Postback$$sdk(mapped-iae)&nid=

event_id: This is the unique ID generated by Everflow for each Offer Event.

In the Event Postback above, it will automatically return the Event Tag from the AppsFlyer dashboard under event_id. The AppsFlyer events are the actual in-app event names from the app. 

To see AppsFlyer's explanation for this Dynamic Event Mapping setup that we've recommended above - [Click Here]

Advanced additions for AppsFlyer attribution links

  • &af_additionalpostback=1 Used when you want to place more than than one Postback URL in AppsFlyer and have all of them fired on every Transaction ID 

  • &af_installpostback=false Used when you only want to receive Postbacks for the AppsFlyer Events, and not receive Postback from the install action

Useful things to add to your Everflow postback urls placed on AppsFlyer

  • &fraud_flag={Rejected_Value} Whenever AppsFlyer considers a conversion fraudulent it will reject the conversion, and return &fraud_flag=1 or higher numbers. Everflow will automatically reject any received conversions with a fraud_flag of 1 or higher. Fraud_flag=0 means that the conversion wasn't rejected as fraudulent.

  • &fraud_reason={Rejected_Reason} This will display the reason that AppsFlyer rejected the conversion.

"mapped-iae" is the global event macro on AppsFlyer

AppsFlyer Event Troubleshooting 

There are four parts to confirm if an AppsFlyer integration is setup correctly:

1) Event Creation - Events can be created at the offer level within the Payout & Revenue tab or at the advertiser level within the Events tab of an Advertiser. Offer-level events will be used in the following example. 

2) Base Destination URL  - Below is a breakdown of the most commonly used parameters within AppsFlyer links. The goalid parameters are required in order to track events.{affiliate_id}&af_sub_siteid={sub2}&pid=everflow_int&clickid={transaction_id}&goalid_1=54&goalid_2=139&goalid_3=140

For more Everflow macros - [Click Here].

3) AppsFlyer's In-App Event Postback -  If you do not have access to this screen, please confirm via a screen shot how it's setup from your client. The Partner Event Identifier will always be $$click(goalid_1) format. The Event ID used in the Base Destination URL will need to match the goalid number that is shown in this screen. For example in the Base Destination URL above, Event ID 54 is First Deposit, Event ID 139 is First Bet and Event ID 140 is Fifth Bet. 

4) Everflow's Postback - This is how you can setup a global postback within AppsFlyer. You will have to choose between always using advertiser level or offer level events, or have two global postbacks placed. 

Offer Level Events:$$click(clickid)&event_id=$$sdk(mapped-iae)

Advertiser Level Events:$$click(clickid)&adv_event_id=$$sdk(mapped-iae)

Advanced Privacy

The Advanced Privacy postback mechanism described here works when all of the following are true:

  • The user device is running iOS 14.5+ (General Availability)

  • Apple has begun enforcing ATT (App Tracking Transparancy)

  • Advanced Privacy setting is turned on in Appsflyer

Using Appsflyer's self serve Postback Management feature:

1. You will need to enter the domain for your Advanced Privacy postback. To find it in Everflow, navigate to Offers > Manage > Click on the name of Offer > Conversion Method card.

2. Under Custom Parameters, you will need to map your Everflow parameters with Appsflyer's macros.

For complete details, please review the following resources from Appsflyer:

Sample Postback Setups


In-App Event$$sdk(app-id-ios)&event_name=$$sdk(event-name)&event_revenue=$$sdk(orig-monetary)&event_revenue_currency=$$sdk(currency)&event_revenue_usd=$$sdk(monetary)&event_at=$$sdk(event-name)&campaign=$$sdk(c)&country=$$sdk(country-code)&source=$$sdk(bundle-id)&path=&revenue=$$sdk(orig-monetary)&currency=$$sdk(currency)&match_type=$$sdk(match-type)&af_ad=$$sdk(af_ad)&af_ad_id=$$sdk(af_ad_id)&af_ad_type=$$sdk(af_ad_type)&af_adset=$$sdk(af_adset)&af_adset_id=$$sdk(af_adset_id)&app_name=$$sdk(app-name)&attributed_touch_hour=$$sdk(click-ts-hour-floor)&attributed_touch_type=$$sdk(attributed-touch-type)&bundle_id=$$sdk(bundle-id)&af_channel=$$sdk(af_channel)&event_hour=$$sdk(timestamp-hour-floor)&event_name=$$sdk(event-name)&event_revenue=$$sdk(orig-monetary)&event_revenue_currency=$$sdk(currency)&event_revenue_usd=$$sdk(monetary)&install_hour=$$sdk(install-ts-hour-floor)&platform=$$sdk(platform)&postback_id=$$sdk(random-str)&af_sub_siteid=$$sdk(af_sub_siteid)&oid=$$sdk(af_c_id)&affid=$$sdk(af_siteid)&event_id=$$sdk(mapped-iae)


We've assembled a superstar team of industry veterans that are available around the clock to make sure that your issues are resolved and questions are answered. You can reach out any time in-platform via Chat or by emailing

Did this answer your question?