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.
The first thing you'll want to do is to identify your users so Mixpanel knows who they are. You'll use the Identify method to accomplish this which takes the unique `userId` of a user and any `traits` you know about them.
75
75
76
+
> info ""
77
+
> **Important:** Mixpanel used to require that you call `alias` in all libraries to connect anonymous visitors to identified users. However, with the release of Mixpanel's new [Identity Merge feature](https://help.mixpanel.com/hc/en-us/articles/360039133851#enable-id-merge) this is no longer necessary. To enable ID Merge, go to your Mixpanel Settings Dashboard, navigate to **Project Settings > Identity Merge** and enable the setting from that screen. If you are _not_ using this setting, use the instructions below.
78
+
79
+
80
+
As soon as you have a `userId` for a visitor that was previously anonymous you'll need to [`alias`](/docs/connections/spec/alias/) their old anonymous `id` to the new `userId`. In Mixpanel only **one** anonymous user history can be merged to **one** identified user. For that reason you should only call `alias` once, right after a user registered, but before the first `identify`.
81
+
76
82
### People
77
83
78
84
Segment doesn't send data to Mixpanel People by default, since this usually requires upgrading your Mixpanel account. To enable Mixpanel People, change the "Use Mixpanel People" setting in the Mixpanel Destination settings in Segment.
Copy file name to clipboardExpand all lines: src/connections/destinations/catalog/salesforce/index.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -27,7 +27,7 @@ This destination supports the most important pain point for Salesforce users: ge
27
27
28
28
### Identifying a Lead
29
29
30
-
Let's go through a quick javascript example of identifying a lead:
30
+
The example below demonstrates identifying a lead:
31
31
32
32
```javascript
33
33
analytics.identify('YOUR_USERS_ID', {
@@ -91,7 +91,7 @@ By default Segment does not send identify calls to Salesforce, given their stric
91
91
92
92
## Group
93
93
94
-
`.group()` calls create or update **Account Objects** inside Salesforce. When Segment receives a group call, similar to the `.identify()` call, it first checks using the `groupId` to see if the Account Object already exists in your Salesforce account. Depending on the response, Segment updates that object or create a new one. Creating/updating Accounts is the default behavior of `group` events. If you would like to customize this you can do so using [Actions](#custom-actions)
94
+
`.group()` calls create or update **Account Objects** inside Salesforce. When Segment receives a group call, similar to the `.identify()` call, it first checks using the `groupId` to see if the Account Object already exists in your Salesforce account. Depending on the response, Segment updates that object or create a new one. Creating/updating Accounts is the default behavior of `group` events.
95
95
96
96
Take this sample `.group()` call that you might send to Segment:
0 commit comments