--- title: "AppsFlyer" slug: "appsflyer" updated: 2025-11-26T06:29:22Z published: 2025-11-26T06:29:22Z canonical: "docs.viewlift.com/appsflyer" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.viewlift.com/llms.txt > Use this file to discover all available pages before exploring further. # AppsFlyer [AppsFlyer](https://www.appsflyer.com/) is a widely used platform for mobile app analytics and attribution platform for tracking and analysis of user behavior in mobile applications. Once integrated into ViewLift Tools and your mobile apps, you can take advantage of both default and custom events in AppsFlyer. Default events are predefined by AppsFlyer and are automatically logged when certain actions are taken in your app, such as opening the app or making an in-app purchase. In addition to default events, you can also create your own custom events specific to your app and data collection needs (such as when a user completes a TVOD/SVOD purchase, downloads content for offline viewing, or added something to their watchlist). ViewLift can set up custom events of your liking and their properties. When an event occurs, we pass the event to the AppsFlyer server with the event name. The events are processed and can be viewed in the AppsFlyer dashboard. This article aims to provide information about the various user events that are logged in AppsFlyer. To review the events, please refer to the [Android in-app events](/v1/docs/appsflyer#android-inapp-events) and [iOS in-app events](/v1/docs/appsflyer#ios-inapp-events) sections below. #### Key terms | Event | A meaningful action a user can perform in your app, with the request and the response being recorded. Some examples of events include a user downloading your app, adding to watchlist, initiating a subscription, making a purchase, or a failed attempt at subscribing. | | --- | --- | | Property/Parameter | Event attributes that a developer passes along for context are necessary to understand the source of events and user actions. Structured as a key:value pair where key is the name of the property and value is the value given to that property. Example: EVENT_PARAM_PLATFORM: String value representing the platform (iOS or Android) the app is running on. | ### Get Started You must have an AppsFlyer account, and provide login access to the respective app teams, i.e. iOS, Android at ViewLift. ### Add AppsFlyer credentials to AppCMS Settings Add the AppsFlyer iOS SDK and the AppsFlyer Android SDK Production environment keys in **AppCMS** > **Settings** > **Analytics** > **AppsFlyer Credentials** section. ![](https://cdn.document360.io/15e0c142-c823-4c77-a8e8-9d32ca937982/Images/Documentation/AppsFlyer.png) #### Integrate AppsFlyer The [integration](https://support.appsflyer.com/hc/en-us/articles/115005544169-Rich-in-app-events-Overview) steps vary for every app. We have worked with AppsFlyer team to set up event tracking as listed in the integration guides for [iOS](https://dev.appsflyer.com/hc/docs/ios-sdk) and [Android](https://dev.appsflyer.com/hc/docs/android-sdk-reference) apps. Once the integration is complete for your apps, we will pass in-app events through your iOS and Android SDKs to AppsFlyer. **Note**: This integration is available by default only for mobile apps. If you want us to send Roku or other TV apps data, please contact AppsFlyer support. This type of data stream uses a full server-to-server integration which is an AppsFlyer enterprise feature. ## Android in-app events Following are the in-app events that are monitored and passed to AppsFlyer from Android mobile apps. | **Name of the user event** | **(Purpose) Tracks when a user...** | **Associated properties passed to AppsFlyer** | | --- | --- | --- | | Registration | Registers for the app | **Subscription state**: if the user is subscribed or not **Registration state**: if the user has registered or not **Registration type**: method a user used to register for the app, such as email, Facebook, Google, or mobile **App version**: version of the app in which the registration occurred **Platform**: device type (Android here) **Device ID**: device ID of the phone on which the app is running | | App Open | Opens the app | **User ID**: VL-generated userID **User details**: additional details about the logged-in user, such as their name, email address, or subscription status **Entitlement state**: whether the logged-in user has a subscription or not **Register state**: is the user logged in or not **App version**: version of the app that was opened **Platform**: device type (Android) **Device ID**: device ID of the phone on which the app is running | | Login | Logs in to the app | (For more information on these properties, please refer to the previous rows) - User ID - User details - Subscription status - Entitlement state - Register state - Registration type - App version - Platform - Device ID | | Logout | Logs out of the app | (For more information on these properties, please refer to the previous rows) - User ID - Entitlement state - Register state | | Subscription | Is subscribing to a plan | - isSubscribing: whether the user is subscribing or unsubscribing - deviceID: device ID of the phone on which the app is running (this is unique ID of each device) - price: subscription plan price - plan: subscription plan name - currency: currency used for the transaction - userID: VL-generated user ID - eventValue: A map that contains the above data properties of the subscription event. | | Tvod_purchase | Purchases a TVOD content | - context: context in which the event is logged - eventValue: map containing the key-value pairs of the event's properties - deviceID - userID - plan: TVOD purchase plan - price - currency - contentId: GUID of the TVOD content - contentName - Type: type of the purchase (e.g. rental, purchase | | tvod_purchase_completion | Completes a purchase (TVOD) | deviceID, userID, plan, price, currency, contentId, contentName, and type | | Film Viewing | Views a film | - Film Category: The category of the film being viewed - User ID: The user ID of the logged-in user - Film ID: The ID of the film being viewed - "true": boolean value indicating that the event occurred - USER_ENTITLEMENT_STATE: indicates whether the logged-in user has an active subscription | | First App Open | Opens app for the first time | User ID and device ID are passed to AppsFlyer | | Engaged Installer | Engages with the app's installer or landing page | User ID & device ID are passed | | Registration Complete | Registers to create an account | user ID, user details, registration type, app version, and platform | | Subscription Initiated | Initiates a subscription within the app | - payment handler - transaction amount - country - discount price - plan price - currency - plan name - discount amount - subscription end date - subscription type Additionally, it retrieves user details such as the user's entitlement and registration state, phone number, and coupon code if available | | Subscription Completed | Successfully completes (buys) a subscription | - payment handler - transaction amount - country - discount price - plan price - currency - plan name - discount amount - subscription end date | | Subscription Failed | Attempts to subscribe to a plan fails | - Entitlement state - **Register state** - **Register state**: is the user logged in or not - **App version**: version of the app that was opened - **Device ID**: device ID of the phone on which the app is running - **Platform**: device type (Android) DEVICE_ID_EVENT_VALUE, EVENT_PARAM_SOURCE, EVENT_PARAM_AMOUNT, EVENT_PARAM_PAYMENT_PLAN, EVENT_PARAM_PHONE_NO, EVENT_PARAM_COUPON_CODE, EVENT_PARAM_COUNTRY, EVENT_PARAM_DISCOUNT_AMOUNT, EVENT_PARAM_PLATFORM, EVENT_PARAM_PAYMENT_HANDLER, EVENT_PARAM_PAYMENT_MODE, EVENT_PARAM_CURRENCY, EVENT_PARAM_DISCOUNTED_AMOUNT, EVENT_PARAM_TRANSACTION_AMOUNT, EVENT_PARAM_SUBSCRIPTION_TYPE, EVENT_PARAM_COUPON_VALUE, EVENT_PARAM_SUBSCRIPTION_START_DATE, EVENT_PARAM_SUBSCRIPTION_END_DATE | #### ## iOS in-app events Here are the in-app events that AppsFlyer tracks for iOS. | Name of the event that occurred | Properties associated with the event | | --- | --- | | Page Viewed | appVersion, pageName, pageUrl, eventType | | Engaged Installer | appVersion, eventType | | Removed From Watchlist | appVersion,contentId, contentDuration, contentTitle, contentType, contentGenre, networkType, directorName, actorName, showName, eventType | | Added To Watchlist | appVersion, contentId, contentDuration, contentTitle, contentType, contentGenre, networkType, directorName, actorName, showName, eventType | | Watched | appVersion, watchedTime, stream, playSource, bitRate, audioItem, listenedTime, bufferTime, bufferCount, eventType | | Play Started | appVersion, playSource, contentId, contentDuration, contentTitle, contentType, contentGenre, networkType, directorName, actorName, showName, playbackType, eventType | | First App Open | appVersion, Registered, Entitled, eventType | | App Open | appVersion, Registered, Entitled, eventType | | Offline Download | appVersion, playSource,contentId, contentDuration, contentTitle, contentType, contentGenre, networkType, directorName, actorName, showName, playbackType, watchedTime, stream, bitRate,showName, episodeNumber, seasonNumber, eventType | | Login | appVersion, Registered, registrationType, Entitled, eventType | | Signed Up | appVersion, Registered, registrationType, Entitled, eventType | | Subscription Failed | appVersion, paymentHandler, country, freeTrial, discountAmount, amount, currency, paymentPlan, transactionID, planStartDate, planEndDate, source, eventType | | Purchase Failed | appVersion, paymentHandler, country, freeTrial, discountAmount, amount, currency, paymentPlan, transactionID, planStartDate, planEndDate, source, eventType | | Subscription Completed | appVersion, paymentHandler, country, freeTrial, discountAmount, amount, currency, paymentPlan, transactionID, planStartDate, planEndDate, source, eventType | | tvod_purchase_completion | appVersion, paymentHandler, country, freeTrial, discountAmount, amount, currency, paymentPlan, transactionID, planStartDate, planEndDate, source, eventType | | Film Viewing | appVersion, Registered, Entitled, contentId, contentDuration, contentTitle, contentGenre, playbackType, networkType, eventType | | Cast | castType, playSource, appVersion, playSource, contentId, contentDuration, contentTitle, contentType, contentGenre, networkType, directorName, actorName, showName, playbackType, watchedTime, stream, bitRate,showName, episodeNumber, seasonNumber, eventType | | media_play | appVersion, playSource, contentId, contentDuration, contentTitle, contentType, contentGenre, networkType, directorName, actorName, showName, bitRate, eventType | | minutes_consumed | appVersion, language, minutesConsumed, content_type, content_id, content, media_duration, eventType | | Removed All From Watchlist | appVersion, playSource, contentId, contentDuration, contentTitle, contentType, contentGenre, networkType, directorName, actorName, showName, playbackType, eventType | | Searched | appVersion, keyword, eventType | | Logout | appVersion, Registered, Entitled, eventType | | View Plans | appVersion, source, eventType | | First watched | appVersion, playSource, contentId, contentDuration, contentTitle, contentType, contentGenre, networkType, directorName, actorName, showName, playbackType, eventType | | Subscribed and Watched First | appVersion, playSource,contentId, contentDuration, contentTitle, contentType, contentGenre, networkType, directorName, actorName, showName, playbackType, eventType | | Subscription Initiated | appVersion, paymentHandler, country, freeTrial, discountAmount, amount, currency, paymentPlan, transactionAmount, eventType | | Add To Cart | appVersion, paymentHandler, country, freeTrial, discountAmount, amount, currency, paymentPlan, transactionAmount, eventType | As per Apple's mandate, the [ATT prompt](https://www.appsflyer.com/blog/tips-strategy/if-when-show-att-prompt/) will be displayed once on the first launch of your app to obtain user consent after the AppsFlyer iOS SDK has been integrated.![](https://cdn.document360.io/15e0c142-c823-4c77-a8e8-9d32ca937982/Images/Documentation/image-1687956025859.png)