AppsFlyer
  • 28 Jun 2023
  • 6 Minutes to read
  • Contributors
  • Dark
    Light
  • PDF

AppsFlyer

  • Dark
    Light
  • PDF

Article summary

AppsFlyer 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 and iOS in-app events sections below.

Key terms

EventA 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/ParameterEvent 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, and Fire TV 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.

Integrate AppsFlyer

The integration steps vary for every app. We have worked with AppsFlyer team to set up event tracking as listed in the integration guides for iOS and Android 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, Fire TV, 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
RegistrationRegisters 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 OpenOpens the appUser 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
LoginLogs 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
LogoutLogs out of the app(For more information on these properties, please refer to the previous rows)
  • User ID
  • Entitlement state
  • Register state
SubscriptionIs 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_purchasePurchases a TVOD content
  • contextcontext in which the event is logged
  • eventValuemap 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_completionCompletes a purchase (TVOD)deviceID, userID, plan, price, currency, contentId, contentName, and type
Film ViewingViews 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 OpenOpens app for the first timeUser ID and device ID are passed to AppsFlyer
Engaged InstallerEngages with the app's installer or landing pageUser ID & device ID are passed
Registration CompleteRegisters to create an accountuser ID, user details, registration type, app version, and platform
Subscription InitiatedInitiates 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 CompletedSuccessfully completes (buys) a subscription
  • payment handler
  • transaction amount
  • country
  • discount price
  • plan price
  • currency
  • plan name
  • discount amount 
  • subscription end date
Subscription FailedAttempts 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 occurredProperties associated with the event
Page ViewedappVersion, pageName, pageUrl, eventType
Engaged InstallerappVersion, eventType
Removed From WatchlistappVersion,contentId, contentDuration, contentTitle, contentType, contentGenre, networkType, directorName, actorName, showName, eventType
Added To WatchlistappVersion, contentId, contentDuration, contentTitle, contentType, contentGenre, networkType, directorName, actorName, showName, eventType
WatchedappVersion, watchedTime, stream, playSource, bitRate, audioItem, listenedTime, bufferTime, bufferCount, eventType
Play StartedappVersion, playSource, contentId, contentDuration, contentTitle, contentType, contentGenre, networkType, directorName, actorName, showName, playbackType, eventType
First App OpenappVersion, Registered, Entitled, eventType
App OpenappVersion, Registered, Entitled, eventType
Offline Download

appVersion, playSource,contentId, contentDuration, contentTitle, contentType, contentGenre, networkType, directorName, actorName, showName, playbackType, watchedTime, stream, bitRate,showName, episodeNumber, seasonNumber, eventType

LoginappVersion, Registered, registrationType, Entitled, eventType
Signed UpappVersion, Registered, registrationType, Entitled, eventType
Subscription FailedappVersion, 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 CompletedappVersion, paymentHandler, country, freeTrial, discountAmount, amount, currency, paymentPlan, transactionID, planStartDate, planEndDate, source, eventType
tvod_purchase_completionappVersion, paymentHandler, country, freeTrial, discountAmount, amount, currency, paymentPlan, transactionID, planStartDate, planEndDate, source, eventType
Film ViewingappVersion, Registered, Entitled, contentId, contentDuration, contentTitle, contentGenre, playbackType, networkType, eventType
CastcastType, playSource, appVersion, playSource, contentId, contentDuration, contentTitle, contentType, contentGenre, networkType, directorName, actorName, showName, playbackType, watchedTime, stream, bitRate,showName, episodeNumber, seasonNumber, eventType
media_playappVersion, playSource, contentId, contentDuration, contentTitle, contentType, contentGenre, networkType, directorName, actorName, showName, bitRate, eventType
minutes_consumedappVersion, language, minutesConsumed, content_type, content_id, content, media_duration, eventType
Removed All From WatchlistappVersion, playSource, contentId, contentDuration, contentTitle, contentType, contentGenre, networkType, directorName, actorName, showName, playbackType, eventType
SearchedappVersion, keyword, eventType
LogoutappVersion, Registered, Entitled, eventType
View PlansappVersion, source, eventType
First watchedappVersion, playSource, contentId, contentDuration, contentTitle, contentType, contentGenre, networkType, directorName, actorName, showName, playbackType, eventType
Subscribed and Watched FirstappVersion, playSource,contentId, contentDuration, contentTitle, contentType, contentGenre, networkType, directorName, actorName, showName, playbackType, eventType
Subscription InitiatedappVersion, paymentHandler, country, freeTrial, discountAmount, amount, currency, paymentPlan, transactionAmount, eventType
Add To CartappVersion, paymentHandler, country, freeTrial, discountAmount, amount, currency, paymentPlan, transactionAmount, eventType

As per Apple's mandate, the 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.



Was this article helpful?