You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/connections/destinations/catalog/appsflyer/index.md
+13-11Lines changed: 13 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,8 +2,9 @@
2
2
rewrite: true
3
3
title: AppsFlyer Destination
4
4
id: 54521fd525e721e32a72ee8f
5
+
hide-personas-partial: true
5
6
---
6
-
[AppsFlyer](https://www.appsflyer.com/) is the world's leading mobile attribution & marketing analytics platform, helping app marketers around the world make better decisions. Our AppsFlyer destination code is open-source. You can browse the code on GitHub for [iOS](https://github.com/AppsFlyerSDK/segment-appsflyer-ios) and [Android](https://github.com/AppsFlyerSDK/AppsFlyer-Segment-Integration).
7
+
[AppsFlyer](https://www.appsflyer.com/){:target="blank"} is the world's leading mobile attribution & marketing analytics platform, helping app marketers around the world make better decisions. The AppsFlyer destination code is open-source. You can browse the code on GitHub for [iOS](https://github.com/AppsFlyerSDK/segment-appsflyer-ios){:target="blank"} and [Android](https://github.com/AppsFlyerSDK/AppsFlyer-Segment-Integration){:target="blank"}.
7
8
8
9
Segment's Appsflyer destination code is open source and available on GitHub. You can view these repositories:
@@ -18,8 +19,8 @@ Segment's Appsflyer destination code is open source and available on GitHub. You
18
19
1. From the Segment web app, click **Catalog**.
19
20
2. Search for "AppsFlyer" in the Catalog, select it, and choose which of your sources to connect the destination to.
20
21
3. In the destination settings, enter your `AppsFlyer Dev Key`, which can be retrieved from the App Settings section of your AppsFlyer account.
21
-
4. Follow the instructions in the GitHub repos: [iOS SDK](https://github.com/AppsFlyerSDK/segment-appsflyer-ios) and [Android SDK](https://github.com/AppsFlyerSDK/AppsFlyer-Segment-Integration).
22
-
5. After you build and release to the app store, we start translating and sending your data to AppsFlyer automatically.
22
+
4. Follow the instructions in the GitHub repositories: [iOS SDK](https://github.com/AppsFlyerSDK/segment-appsflyer-ios){:target="blank"} and [Android SDK](https://github.com/AppsFlyerSDK/AppsFlyer-Segment-Integration){:target="blank"}.
23
+
5. After you build and release to the app store, Segment starts translating and sending your data to AppsFlyer automatically.
23
24
24
25
**Important:** If you plan on using the server-side destination for an Android project, make sure to enter your **Android App ID**. If you are using only the mobile SDK, Android projects only require the **AppsFlyer Dev Key**. iOS projects always require both the **AppsFlyer Dev Key** and the **Apple App ID**. Also, note that if you do use the server-side destination, you will not be able to selectively disable calls sent to AppsFlyer using your Segment dashboard.
25
26
@@ -80,7 +81,7 @@ If you're not familiar with the Segment Specs, take a look to understand what th
When you call `.identify()`, we will use AppsFlyer's `setCustomerUserID` to send the `userId` that was passed in.
84
+
When you call `.identify()`, Segment uses AppsFlyer's `setCustomerUserID` to send the `userId` that was passed in.
84
85
85
86
**Note:**`identify` calls are not supported using AppsFlyer's HTTP API at the moment. You can only send `.identify` calls if you have the AppsFlyer SDK bundled.
86
87
@@ -95,9 +96,9 @@ If you're not familiar with the Segment Specs, take a look to understand what th
95
96
96
97
When you call `track`, Segment translates it automatically and sends the event to AppsFlyer.
97
98
98
-
We include all the event properties as callback parameters on the AppsFlyer event, and automatically translate `properties.revenue` to the appropriate AppsFlyer purchase event properties based on our spec'd properties.
99
+
Segment includes all the event properties as callback parameters on the AppsFlyer event, and automatically translate `properties.revenue` to the appropriate AppsFlyer purchase event properties based on the spec'd properties.
99
100
100
-
Finally, we automatically use AppsFlyer's `transactionId` deduplication when you send an an `orderId` (see the [e-commerce spec](/docs/connections/spec/ecommerce/v2/)).
101
+
Finally, Segment uses AppsFlyer's `transactionId` deduplication when you send an `orderId` (see the [e-commerce spec](/docs/connections/spec/ecommerce/v2/)).
101
102
102
103
### Server
103
104
@@ -136,23 +137,24 @@ analytics.track({
136
137
}
137
138
});
138
139
```
139
-
> Check your specific [serverside library docs](/docs/connections/sources/#server) for specifics on how to format the method properly.
140
+
> Check your specific [server-side library docs](/docs/connections/sources/#server) for specifics on how to format the method properly.
140
141
141
-
Finally, the serverside component will look for the following `properties` and handle them specially:
142
+
Finally, the server-side component will look for the following `properties` and handle them specially:
142
143
143
144
-`ip` (this should be the `ip` of your customer--this is not collected by Segment's libraries out-of-the-box)
144
-
-`timestamp` (refer to AppsFlyer's docs on [how they process timestamps](https://support.appsflyer.com/hc/en-us/articles/207034486-Server-to-Server-In-App-Events-API-HTTP-API-). Since our libraries generate a [timestamp](/docs/connections/spec/common/#timestamps), we will always set this value)
145
+
-`timestamp` (refer to AppsFlyer's docs on [how they process timestamps](https://support.appsflyer.com/hc/en-us/articles/207034486-Server-to-Server-In-App-Events-API-HTTP-API-){:target="blank"}. Since the libraries generate a [timestamp](/docs/connections/spec/common/#timestamps), Segment always sets this value)
145
146
-`currency` (defaults to `"USD"`)
146
147
-`revenue` (For `Order Completed` events, precedence is given to `total`, falling back to `properties.revenue`)
147
148
148
149
All other `properties` will be sent to AppsFlyer as custom properties inside `eventValue`.
149
150
150
-
> **Note:** Be sure to calibrate/update the time window in AppsFlyer's dashboard to see your events!
151
+
> info ""
152
+
> Be sure to calibrate/update the time window in AppsFlyer's dashboard to see your events!
151
153
152
154
## Install Attributed
153
155
154
156
### Client
155
-
Segment will automatically trigger an `Install Attributed` event if you have **trackAttributionData** enabled in your settings, and the Segment-AppsFlyer integration installed in your app. The event payload will adhere to our`Install Attributed` event specification documented [here](/docs/connections/spec/mobile/#install-attributed) and will propagate to your other downstream destinations.
157
+
Segment will automatically trigger an `Install Attributed` event if you have **trackAttributionData** enabled in your settings, and the Segment-AppsFlyer integration installed in your app. The event payload will adhere to the`Install Attributed` event specification documented [here](/docs/connections/spec/mobile/#install-attributed) and will propagate to your other downstream destinations.
156
158
157
159
### Server
158
160
If you are tracking events server-side, AppsFlyer can still send attribution postbacks but you will need to configure this functionality in your AppsFlyer account. To enable this, navigate to your AppsFlyer app and on the sidebar of the main screen click on **Integrated Partners** and search for Segment. You will be prompted with a couple of configuration options and asked to input your Segment Write Key. Once enabled, successfully attributed app installs will begin showing up as `Install Attributed` events similar to the client side behavior documented above.
0 commit comments