AppsFlyer overhaul - #487
Merged
Merged
Conversation
| - **Purchases from profiles without `appsflyer_id` never reach AppsFlyer.** They stay in Adapty Analytics. See [Events don't reach AppsFlyer](#events-dont-reach-appsflyer). | ||
| - **AppsFlyer shows only the revenue figure you selected in Adapty.** The **How the revenue data should be send** setting decides whether Adapty sends gross revenue, proceeds, or net revenue. Comparing that against another Adapty Analytics view produces a gap equal to the commission, the tax, or both. | ||
| - **Adapty uses your app's reporting timezone; AppsFlyer receives UTC.** Integrations always get UTC timestamps, whatever you set in [App Settings](general#3-reporting-timezone). A purchase at 23:30 UTC on Jul 1 lands on Jul 2 in Adapty if your reporting timezone is +02:00. | ||
| - **AppsFlyer is missing historical events.** There are two probable causes. **Exclude historical events** is on by default, so a user's AppsFlyer history starts at their first launch of an Adapty build. Adapty also never backfills events it processed before you enabled the integration. |
Collaborator
There was a problem hiding this comment.
Exclude historical events is on by default
вроде бы нет
| - **View the whole subscription lifecycle, not just the first purchase.** Renewals and trial conversions are store events, with no app session for AppsFlyer's client-side SDK to report. Adapty receives subscription events server-side and forwards them to AppsFlyer, so campaign figures keep updating long after the initial install. | ||
| - **Optimize your ad campaigns with subscription event data.** AppsFlyer relays in-app events from Adapty onward to your ad networks as *postbacks*. The services that manage your ad budget can optimize on what users actually paid. | ||
| - **Account for refunds in campaign revenue.** AppsFlyer deducts refunds received from Adapty from campaign revenue. | ||
| - **Filter Adapty analytics by campaign.** Adapty saves AppsFlyer's attribution on each profile, down to the ad set and creative, and [subscription charts](charts) can filter by it. |
Collaborator
There was a problem hiding this comment.
можно ещё про сегменты добавить. мы же можем делать сегменты на основе кампаний, например
| Adapty provides a complete set of data that lets you track [subscription events](events) from stores in one place. With Adapty, you can easily see how your subscribers are behaving, learn what they like, and use that information to communicate with them in a way that's targeted and effective. Therefore, this integration allows you to track subscription events in AppsFlyer and analyze precisely how much revenue your campaigns generate. | ||
| - **View the whole subscription lifecycle, not just the first purchase.** Renewals and trial conversions are store events, with no app session for AppsFlyer's client-side SDK to report. Adapty receives subscription events server-side and forwards them to AppsFlyer, so campaign figures keep updating long after the initial install. | ||
| - **Optimize your ad campaigns with subscription event data.** AppsFlyer relays in-app events from Adapty onward to your ad networks as *postbacks*. The services that manage your ad budget can optimize on what users actually paid. | ||
| - **Account for refunds in campaign revenue.** AppsFlyer deducts refunds received from Adapty from campaign revenue. |
Collaborator
There was a problem hiding this comment.
это скорее часть первого пункта
Comment on lines
+29
to
+30
| 2. Use the `setIntegrationIdentifier()` method of the Adapty SDK to pass this data to Adapty. Adapty stores the value on the user's profile as `appsflyer_id`. | ||
| 3. Use Adapty's `updateExternalAttribution()` method to send AppsFlyer's attribution data to Adapty. The user's Adapty profile is updated with their AppsFlyer attribution data. |
Collaborator
There was a problem hiding this comment.
давай тут не использовать названия наших методов. они разные для разных версий, и это может смутить
| }} | ||
| /> | ||
| </Zoom> | ||
| - **Confirm your AppsFlyer plan accepts attribution events.** AppsFlyer's entry-level **Zero** package doesn't: its API rejects every event Adapty sends with `403 Forbidden`. |
Collaborator
There was a problem hiding this comment.
Adapty sends S2S in-app events, not attribution events
|
|
||
| Each `appsflyer_id` identifies one install, and every event carrying that ID inherits the install's attribution — the campaign that produced it, or none if the install was organic. AppsFlyer needs 20–30 seconds or more to attribute a new install. An event that arrives before then has no attribution to inherit, so AppsFlyer marks it unattributed organic. | ||
|
|
||
| First-launch purchases are the ones at risk — trials that started within seconds after app launch. Delay your paywall artificially for AppsFlyer to finish processing the install. |
Collaborator
There was a problem hiding this comment.
немножко рефрейминг нужен в духе expect first-launch purchases to report as organic.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.