En bref : validez et mesurez automatiquement les revenus provenant des achats in-app et abonnements auto-renouvelables, et accédez à une vision globale des cycles de vie de vos clients et des ROAS.
Présentation
Les annonceurs peuvent utiliser les achats in-app (IAP) validés et les revenus d'abonnement pour mesurer :
- Tous les revenus issus d'achats in-app pour les produits et abonnements traités via App Store Connect (iOS) ou Google Play Console (Android).
- Remboursements.
- Revenus de transactions en attente ou différés (Android).
- Événements relatif à un abonnement qui se produit au sein ou en dehors de votre app.
La solution de revenus des IAP et abonnements permet également :
- De veiller à ce qu'aucune transaction ne soit enregistrée deux fois. Pour iOS, cela signifie qu'aucun doublon n'est enregistré pour le partage familial.
- Permet à AppsFlyer de transmettre les transactions de l'Apple App Store à l'annonceur (vous).
- De fournir des données sur le revenu réel, c'est-à-dire des données sur le revenu net qui inclut les frais et taxes du store.
Les données des achats et abonnements proviennent :
- Du connecteur SDK d'achat AppsFlyer pour Android et iOS (wrapper Unity inclus).
- Des notifications des serveurs App Store et Google Play (RTDN) transmises à AppsFlyer.
Les données de revenus issus des achats ou abonnements sont disponibles dans les tableaux de bord et rapports AppsFlyer. Elles peuvent également être envoyées aux partenaires via postback.
Attention :
- Si vous utilisez cette solution pour mesurer les revenus des IAP et abonnements, vous ne devez pas envoyer d'événements d'achats in-app, ni exécuter validateAndLogInAppPurchase car cela générerait des déclaration de revenus en double.
- Les revenus des abonnements peuvent commencer à enregistrer les modifications dans le cycle de vie des abonnés existants dès que ces derniers lancent une version de l'app qui inclut le connecteur SDK d'achat.
Étapes :
- Un utilisateur effectue un achat in-app ou prend un abonnement auto-renouvelable.
- L'application génère une transaction dans l'app store.
- Le connecteur SDK d'achat AppsFlyer détecte automatiquement l'achat et envoie sa charge utile à AppsFlyer pour validation et enregistrement.
-
AppsFlyer valide l'achat auprès du store concerné pour confirmer qu'il n'est pas frauduleux.
- Lorsque la vérification est validée, AppsFlyer enregistre l'achat ou l'abonnement.
- Si la vérification échoue, l'événement s'affiche dans le rapport de données brutes des événements in-app bloqués (option disponible pour les abonnés Protect360).
- AppsFlyer transfère la réponse au connecteur SDK, qui à son tour transmet la réponse de vérification (succès ou échec) à l'application.
-
Toutes les notifications entrantes du serveur sont traitées par le même processus que celui des achats et revenus d'abonnement d'AppsFlyer.
- Les notifications concernant les transactions déjà rapportées par le connecteur SDK sont validées et traitées, et donnent lieu à la création en interne d'un achat ou d'un événement de cycle de vie.
- Les notifications liées aux transactions inconnues sont supprimées.
- Pour iOS, toutes les notifications de serveur peuvent être redirigées vers vos propres serveurs.
Marche à suivre pour l'intégration des revenus des IAP et abonnements
Veuillez suivre précisément les instructions de configuration listées dans le tableau ci-dessous pour garantir des résultats fiables et des rapports complets des revenus des IAP et abonnements auto-renouvelables, et de tous les événements de cycle de vie. Le non-respect de la procédure peut entraîner des erreurs permanentes dans les rapports. Les détails complets de chaque étape sont indiqués après le tableau.
Étape | Opérations à effectuer |
---|---|
1 |
Configurer les notifications pour les revenus des IAP et abonnements de Google Play. |
2 |
Configurer les notifications pour les revenus des IAP et abonnements provenant de l'App Store iOS. |
3 |
|
4 |
Intégrer l'API de taxe sur les revenus réels. Cette option n'est nécessaire que si vous souhaitez modifier les taux fiscaux par défaut. Sinon, les taxes sont rapportées pour chaque transaction mesurée par ROI360. |
5 |
Tester l'intégration pour vérifier que :
|
6 |
Publier les versions des apps Android et iOS avec les connecteurs SDK d'achat. |
Étape 1 : Configurer les notifications de Google Play
Avant de commencer :
- La configuration des revenus des IAP et abonnements Nous vous recommandons de garder les onglets Google Cloud Platform et AppsFlyer ouverts tout au long de l'installation.
- L'installation depuis l'interface utilisateur d'AppsFlyer requiert des autorisations d'admin.
Suivez les instructions de l'onglet ci-dessous pour configurer les notifications de Google Play :
Étape 1 : connecter votre compte Google Play Developer à votre projet Google Cloud
- Dans Google Play Console, ouvrez votre Compte Google Play Developer.
- Reliez le compte à votre projet Google Cloud. Pour obtenir les instructions, consultez la rubrique assistance de Google.
- Activer l'API Google Play pour les développeurs. Pour obtenir les instructions, consultez la rubrique assistance de Google.
1.2 Créer un compte de service
- Allez dans Google Cloud et ouvrez le projet que vous venez de connecter à l'étape 1.1
- Dans votre projet, allez dans IAM et Admin > Comptes de service, et cliquez sur Créer un compte de service.
- Sur la page Créer un compte de service, renseignez les Infos du compte de service.
- Cliquez sur Créer et continuer.
- Quand vous êtes à l'étape Autoriser ce compte de service à accéder au projet, sélectionnez le rôle Pub/sub abonné.
- Cliquez sur Continuer > Terminé.
1.3 Télécharger la clé privée du compte.
- Sur la page Comptes de service , recherchez le compte de service concerné, cliquez sur puis sur Gérer les clés.
- Dans l'onglet Clés de la page du compte de service, cliquez sur AJOUTER UNE CLÉ > Créer une nouvelle clé.
- Dans la boîte de dialogue Créer une clé privée, sélectionnez le type de clé JSON .
- Cliquez sur Créer. Le fichier JSON de la clé privée est téléchargé.
- Dans AppsFlyer, allez dans ROI360 > Paramètres des revenus.
- Sélectionnez votre application dans la liste.
- Dans l'onglet Achats et abonnements, cliquez sur pour importer le fichier JSON.
1.4 Définir les autorisations d'accès à l'API
- Dans la console Google Play, allez dans Utilisateurs et autorisations.
- Dans la liste Utilisateurs et autorisations, recherchez le compte de service que vous avez créé à l'étape 1.2,puis cliquez sur Gérer.
- Dans l'onglet Autorisations , allez dans la section Autorisations du compte, et sélectionnez les deux éléments suivants :
- Afficher les données financières.
- Gérer les commandes et abonnements.
- Cliquez sur Inviter l'utilisateur puis sur Envoyer l'invitation.
(Au choix) Étape 1.5 envoyer les notifications Google Play directement à AppsFlyer
Sélectionnez l'une des deux méthodes pour recevoir de Google Play les données des revenus des IAP et abonnements.
Au choix :
- Créez un sujet où AppsFlyer reçoit directement les notifications RTDN de Google Play (continuez dans cette étape)
ou
- Configurez AppsFlyer en tant qu'abonné à votre sujet PUB/SUB préexistant (passez à l'étape suivante).
Pour créer un sujet dans lequel AppsFlyer reçoit directement les notifications RTDN, procédez comme suit :
- Dans AppsFlyer, allez dans ROI360 > Paramètres des revenus > Achats et abonnements, puis sélectionnez Autoriser le sujet AppsFlyer à recevoir des messages RTDN directement depuis Google.
- Copiez le sujet AppsFlyer dans le presse-papiers.
- Dans Google Play Console > Toutes les apps, sélectionnez votre application. Le tableau de bord s'ouvre.
- Allez dans Paramètres de monétisation, et dans la section Facturation Google Play , dans le champ Nom du sujet, collez l'adresse du sujet AppsFlyer que vous avez copié durant l'étape 2.
- Cliquez sur Enregistrer les modifications.
OR 1.6 Transférer les notifications Google Play vers AppsFlyer
La seconde méthode permettant de recevoir des notifications pour les revenus des IAP et abonnements s'applique lorsque vous avez déjà un sujet qui reçoit des notifications de Google Play. Dans ce cas, définissez AppsFlyer comme abonné à votre rubrique PUB/SUB préexistante plutôt que de créer un nouveau sujet (comme dans l'étape précédente).
Définir AppsFlyer comme abonné à votre sujet PUB/SUB préexistant
- Dans AppsFlyer, allez dans ROI360 > Paramètres des revenus > Achats et abonnements, sélectionnez Faire suivre vos messages sur les sujets RTDN à AppsFlyer.
- Copier l'URL du point de terminaison dans le presse-papiers.
- Dans Google Cloud Platform, dans votre projet, recherchez Pub/Sub.
- Dans Pub/Sub, allez dans la section Sujets, et vérifiez que vous avez un sujet pub/sub dédié aux abonnements.
- Allez dans la section Abonnements et cliquez sur Créer un abonnement.
- Saisissez l'identifiant de l'abonnement.
- Sélectionnez le sujet de l'abonnement pub/sub dans la liste déroulante.
- Comme Type de transfert, sélectionnez Push.
- Saisissez l'URL du point de terminaison que vous avez enregistré au cors de l'étape 2.
- Dans Délai d'expiration, sélectionnez N'expire jamais.
- Cliquez sur Enregistrer.
- Allez dans la section Abonnements et copiez le nom du sujet dans le presse-papiers.
- Dans Google Play Console, allez dans Paramètres de monétisation, et dans la section Facturation Google Play , dans le champ Nom du sujet, collez le nom du sujet AppsFlyer que vous avez copié durant l'étape précédente.
- Cliquez sur Enregistrer.
1.7 Configurer les services automatiques
-
Dans AppsFlyer, allez dans ROI360 > Paramètres des revenus > Achats et abonnements
, activez l'une des options, ou les deux :
- Valider les achats avec Google Play.
- Attribuer et enregistrer les abonnements auto-renouvelables.
- [Optionnel] Cochez Autoriser AppsFlyer à dédupliquer les transactions qui ont déjà été rapportées. Ainsi vous aurez la garantie qu'aucune transaction n'est enregistrée deux fois.
- Cliquez sur Enregistrer.
Étape 2 : Configurer les notifications à partir de l'App Store iOS
Avant de commencer :
-
La configuration des revenus des IAP et abonnements se fait en plusieurs étapes réalisées dans App Store Connect et dans l'interface utilisateur d'AppsFlyer. Nous vous recommandons de garder les onglets App Store Connect et AppsFlyer ouverts tout au long de l'installation.
- L'installation depuis l'interface utilisateur d'AppsFlyer requiert des autorisations d'admin.
Pour configurer les revenus des IAP et abonnements :
-
Dans App Store Connect, allez dans Fonctionnalités > Abonnements, et cliquez sur Gérer pour obtenir la clé secrète partagée d'App Store Connect.
- Dans AppsFlyer, allez dans ROI360 > Paramètres des revenus > Achats et abonnements. Vous verrez s'ouvrir la page de configuration des revenus.
- Saisissez votre clé secrète partagée App Store Connect.
- Copiez le point de terminaison AppsFlyer et saisissez-le dans votre configuration App Store Connect :
- [Option] Sélectionnez l'envoi des notifications du serveur à votre point de terminaison, et saisissez votre point de terminaison.
-
Dans la page AppsFlyer de configuration de revenus des IAP et abonnements, activez soit l'une des options suivantes, soit les deux :
- Attribuer et rapporter les abonnements auto-renouvelables.
- Valider les achats avec l'Apple App Store.
- [Optionnel] Cochez Autoriser AppsFlyer à dédupliquer les transactions qui ont déjà été rapportées. Ainsi vous aurez la garantie qu'aucune transaction n'est enregistrée deux fois.
-
[Optionnel] Cochez Supprimer les doublons des revenus pour les achats de partage familial.
Vous aurez ainsi la garantie qu'aucun revenu n'est enregistré en double pour les achats de partage familial. Les événements de revenus pour les différents membres de la famille incluent le paramètre purchase_ownership_type=FAMILY_SHARED et affichent des revenus nuls.
Remarque :
- Apple ne peut envoyer des notifications de serveur qu'à un seul point de terminaison.
- Les clients peuvent envoyer des notifications au serveur Apple depuis leur backend directement à l'URL du point de terminaison des notifications, mais les demandes doivent être parfaitement identiques à ce qui est envoyé par l'App Store.
Étape 3 : Intégrer le connecteur SDK d'achat
L'intégration du connecteur SDK d'achat permet à votre application d'enregistrer automatiquement les achats in-app et les abonnements renouvelables. Vous pouvez choisir d'enregistrer soit l'un, soit les deux types de revenus dans AppsFlyer sur la page Paramètres des revenus > Achats et abonnements, soit pour pour Android soit pour iOS.
Pour intégrer le connecteur SDK :
-
Demandez à votre développeur Android d'intégrer le connecteur SDK d'achat Android AppsFlyer.
- Le connecteur d'achat Android V1 AppsFlyer prend en charge la bibliothèque de facturation Google 4.
- Le connecteur d'achat Android V2 AppsFlyer prend en charge la bibliothèque de facturation Google 5.
- Demandez à votre développeur iOS d'intégrer le connecteur SDK d'achat AppsFlyer.
Remarque : Pour les apps créées à l'aide du framework Unity, consultez la documentation du connecteur Unity.
Étape 4 : Intégrer l'API de True Revenue Tax
True Revenue est un élément commercial créé pour servir la solution de revenus des IAP et abonnements AppsFlyer. Il calcule automatiquement et en temps réel la valeur des revenus nets pour chaque transaction entrante, puis il l'inclut dans un rapport. La taxe est déclarée par défaut pour chaque transaction mesurée par ROI360, et selon la configuration du taux fiscal par défaut. La configuration peut être modifiée à l'aide de l'API fiscale dédiée.
En savoir plus sur True Revenue
Pour modifier la configuration des taxes à l'aide de l'API fiscale :
- À transmettre à votre développeur :
- Demandez à votre développeur de suivre les instructions sur l'API fiscale pour créer les règles de taux d'imposition. Remarque: l'API permet d'inclure un fichier JSON dans le corps de la demande. Ce fichier JSON contient tous les pays et taux d'imposition liés. Le développeur peut le modifier ou l'utiliser tel quel dans l'API.
Paramètres et valeurs à utiliser dans l'API
Paramètre | Obligatoire | Remarques | Enregistrer la valeur (pour que votre développeur puisse l'utiliser) |
---|---|---|---|
tax_name | Oui |
|
|
tax_rate | Oui |
|
|
tax_exclusive | Non |
|
|
country | Non |
|
|
subdivision | Non |
|
|
postal_code | Non |
|
|
deduction_order | Non |
|
Étape 5 : tester les revenus des IAP et abonnements
Nous vous conseillons de valider les intégrations des revenus des IAP et abonnements dans un environnement sandbox pour que le connecteur SDK soit correctement intégré et que les notifications du serveur sont bien configurées et transmises à AppsFlyer.
Avant de procéder au test, assurez-vous que votre développeur configure l'environnement Sandbox dans le connecteur SDK (en paramétrant Sandbox
sur true
). Dans le cadre des tests, cela permet à ROI360 de créer uniquement des événements in-app Sandbox avec 0 revenu. Les données de production ne sont donc pas affectées.
Remarques sur l'environnement sandbox
Dans un environnement de type sandbox :
- Seuls les événements d'achat initial amènent le connecteur SDK à produire un événement enregistré par AppsFlyer. Un événement IAP se nomme af_purchase_sandbox_sdk. Un événement d'abonnement se nomme af_ars_sandbox_sdk.
-
Tous les autres événements d'achat sont ignorés, ce qui signifie que le connecteur SDK ne génère pas d'événement.
- Les notifications entrantes du serveur ne sont traitées que si le connecteur SDK enregistre d'abord la transaction originale. Dans ce cas, un événement IAP est généré sous le nom af_purchase_sandbox_s2s. Un événement d'abonnement est généré, il se nomme af_ars_sandbox_s2s.
- Un événement ne sera jamais généré pour une notification de serveur dont le connecteur SDK n'a pas d'abord enregistré la transaction originale.
-
Pour iOS, vérifiez que dans App Store Connect > Notifications du serveur App Store, le point de terminaison AppsFlyer est défini sur URL de serveur sandbox.
- Pour Android, les tests effectués par les testeurs de licence entraînent des événements Sandbox même si l'environnement Sandbox du SDK n'est pas configuré.
Tester les revenus des IAP et abonnements
Pour tester les revenus des IAP et abonnements :
- Demandez à vos développeurs de suivre les instructions Android , iOS , et Unity pour configurer l'environnement Sandbox dans le connecteur SDK.
- Effectuez un achat test. Les transactions effectuées par License Tester sur Google Play et par TestFlight sur iOS sont également prises en charge.
Remarque : Un produit d'abonnement ne peut être testé qu'une seule fois sur chaque appareil de test. Vous ne pouvez donc pas enregistrer plusieurs achats-tests avec un même abonnement et un même appareil, puisqu'ils ne seront pas enregistrés. -
Vérifiez ensuite que l'événement s'affiche dans le tableau de bord d'activité AppsFlyer. Un événement IAP porte le nom af_purchase_sandbox_sdk. Un événement d'abonnement porte le nom af_ars_sandbox_sdk. Ces événements comportent :
- Une valeur de revenu de 0 (pour ne pas fausser les rapports réels d'AppsFlyer).
- Un paramètre af_sandbox_revenue qui comprend la valeur de revenu du produit acheté pour que vous puissiez vérifier que le revenu rapporté est le bon.
- Si vous testez un produit d'abonnement, prévoyez un temps avant qu'AppsFlyer ne reçoive la notification du serveur. Elle arrive généralement quelques minutes après l'achat initial.
-
Vérifiez qu'un événement s'affiche dans le tableau de bord d'activité AppsFlyer. Un achat d'abonnement auto-renouvelable porte le nom af_ars_sandbox_s2s. L'événement contient :
- Une valeur de revenu de 0 (pour ne pas fausser les rapports réels d'AppsFlyer).
- Un paramètre af_sandbox_revenue qui comprend la valeur de revenu du produit acheté pour que vous puissiez vérifier que le revenu rapporté est le bon.
Étape 6 : publier la version de l'app avec le connecteur SDK
Avant que votre développeur ne publie la nouvelle version de l'app contenant le connecteur SDK d'achat intégré, vérifiez les points suivants :
- Les événements in-app que vous souhaitez tracer comme IAP ou abonnement ne sont pas bloqués par l'une des règles de validation que vous avez définies dans AppsFlyer.
- Tous les flags sandbox de votre développeur doivent être sur false.
-
Pour iOS, vérifiez que dans App Store Connect > Notifications du serveur App Store, le point de terminaison AppsFlyer est défini sur URL de serveur sandbox.
Référence
Événements et paramètres liés aux IAP
Les sections suivantes présentent les événements liés aux IAP qui sont mesurés par AppsFlyer, ainsi que les paramètres enregistrés pour chaque événement. Consultez le dictionnaire des paramètres d'événement pour en savoir plus sur les paramètres inclus.
Tous les événements générés :
- Sont considérés comme des événements S2S.
- Sont accessibles dans les rapports de données brutes (en tant qu'événements in-app organiques ou non organiques).
- Peuvent être envoyés aux partenaires via postback.
- Peuvent être utilisés dans le studio de conversion SKAN.
Remarque : Selon la plateforme de l'appareil de l'utilisateur, les paramètres ne sont pas toujours indiqués pour un événement in-app.
Achat (af_purchase)
Description
Enregistré lorsqu'un utilisateur effectue un achat.
Paramètres
- app_id
- customer_user_id
- af_currency
- af_original_transaction_id
- af_order_id
- Af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_net_revenue
- af_net_revenue_tax_name
- af_net_revenue_tax_rate
- af_net_revenue_tax_exclusive
- af_net_revenue_country
- af_net_revenue_subdivision
- af_net_revenue_postal_code
- af_net_revenue_factors
Achat annulé (af_purchase_canceled)
Description
Enregistré lorsqu'un utilisateur annule un achat.
Paramètres
- app_id
- customer_user_id
- af_currency
- af_original_transaction_id
- af_order_id
- Af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
Achat en attente (af_purchase_pending)
Description
Enregistré lorsqu'un utilisateur a effectué un achat mais que le paiement n'est pas encore été traité.
Paramètres
- app_id
- customer_user_id
- af_currency
- af_original_transaction_id
- af_order_id
- Af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
Remboursement (af_purchase_refund)
Description
Enregistré lorsqu'un achat est remboursé.
Paramètres
- app_id
- customer_user_id
- af_currency
- af_original_transaction_id
- af_order_id
- af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_discount_type
- event_revenue_usd
- event_revenue (inclus dans l'événement lorsque le revenu est supérieur à zéro)
- store_commission
- af_net_revenue
- af_net_revenue_factors
- af_net_revenue_tax_name
- af_net_revenue_tax_rate
- af_net_revenue_tax_exclusive
- af_net_revenue_country
- af_net_revenue_subdivision
- af_net_revenue_postal_code
Achat test (af_purchase_sandbox_sdk)
Description
Enregistré lors du test d'un achat traité par le SDK dans un environnement sandbox.
Paramètres
- app_id
- customer_user_id
- af_currency
- af_original_transaction_id
- af_order_id
- Af_purchase_token
- af_transaction_id
- af_purchase_state
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
Achat test (af_purchase_sandbox_s2s)
Description
Enregistré lors du test d'un achat rapporté via S2S dans un environnement sandbox.
Paramètres
- app_id
- customer_user_id
- af_currency
- af_original_transaction_id
- af_order_id
- Af_purchase_token
- af_transaction_id
- af_purchase_state
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
Événements et paramètres liés à l'abonnement
Les sections suivantes présentent les événements liés aux abonnements qui sont mesurés par AppsFlyer, ainsi que les paramètres enregistrés pour chaque événement. Consultez le dictionnaire des paramètres d'événement pour en savoir plus sur les paramètres inclus.
Tous les événements générés :
- Sont considérés comme des événements S2S.
- Sont accessibles dans les rapports de données brutes (en tant qu'événements in-app organiques ou non organiques).
- Peuvent être envoyés aux partenaires via postback.
- Peuvent être utilisés dans le studio de conversion SKAN.
Remarque : Selon la plateforme de l'appareil de l'utilisateur, les paramètres ne sont pas toujours indiqués pour un événement in-app.
Début de l'essai (af_ars_trial_started)
Description
Enregistré lorsqu'un abonné commence une période d'essai.
Paramètres
- app_id
- customer_user_id
- af_currency
- af_expires_date_ms
- Af_subscription_ownership_type
- af_original_transaction_id
- af_order_id
- Af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_period_type
Essai annulé (af_ars_trial_canceled)
Description
Enregistré lorsqu'un abonné annule le renouvellement automatique de l'abonnement durant la période d'essai. Si l'utilisateur ne rétablit pas le renouvellement automatique au cours de la période d'essai, un événement de désabonnement se produit.
Paramètres
- app_id
- customer_user_id
- af_currency
- af_expires_date_ms
- Af_subscription_ownership_type
- af_original_transaction_id
- af_order_id
- Af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_period_type
Essai résilié (af_ars_trial_churned)
Description
Enregistré lorsqu'un abonné se désabonne après une période d'essai. Se produit après l'annulation du renouvellement automatique et l'expiration de la période d'essai. Peut également être causé par un problème de facturation ou un problème technique avec le renouvellement de l'abonnement, qui entraîne alors un désabonnement.
Paramètres
- app_id
- customer_user_id
- af_currency
- af_expires_date_ms
- Af_subscription_ownership_type
- af_original_transaction_id
- af_order_id
- Af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_period_type
- af_reason
Essai converti (af_ars_trial_converted)
Description
Enregistré lorsqu'un renouvellement au tarif plein commence, après une période d'essai.
Paramètres
- app_id
- customer_user_id
- af_currency
- af_expires_date_ms
- Af_subscription_ownership_type
- af_original_transaction_id
- af_order_id
- Af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_period_type
- af_discount_id
- af_discount_type
- event_revenue_usd
- af_revenue (inclus dans l'événement lorsque le revenu est supérieur à zéro)
- store_commission
- af_net_revenue
- af_net_revenue_factors
- af_net_revenue_tax_name
- af_net_revenue_tax_rate
- af_net_revenue_tax_exclusive
- af_net_revenue_country
- af_net_revenue_subdivision
- af_net_revenue_postal_code
Abonnement démarré (af_ars_subscription_started)
Description
Enregistré lorsqu'un abonnement à tarif réduit ou plein commence.
Remarque :
- Les nouveaux abonnements ne peuvent être enregistrés que via le connecteur SDK.
- Pour iOS, , si un abonné achète à nouveau un abonnement qu'il possède déjà, le connecteur SDK signale à l'application une confirmation de validation, mais il n'enregistre pas de nouvelle transaction dans AppsFlyer.
Paramètres
- app_id
- customer_user_id
- af_currency
- af_expires_date_ms
- af_subscription_ownership_type
- af_original_transaction_id
- af_order_id
- af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_period_type
- af_discount_id
- af_discount_type
- event_revenue_usd
- event_revenue (inclus dans l'événement lorsque le revenu est supérieur à zéro)
- store_commission
- af_net_revenue
- af_net_revenue_factors
- af_net_revenue_tax_name
- af_net_revenue_tax_rate
- af_net_revenue_tax_exclusive
- af_net_revenue_country
- af_net_revenue_subdivision
- af_net_revenue_postal_code
Abonnement annulé (af_ars_subscription_canceled)
Description
Enregistré lorsqu'un abonnement auto-renouvelable est annulé au cours d'une période de facturation. Si l'utilisateur ne rétablit pas le renouvellement automatique au cours de la période d'essai, un événement de désabonnement se produit.
Paramètres
- app_id
- customer_user_id
- af_currency
- af_expires_date_ms
- af_subscription_ownership_type
- af_original_transaction_id
- af_order_id
- af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_period_type
Abonnement mis en pause (af_ars_subscription_paused) - Android uniquement
Description
Enregistré lorsqu'un utilisateur met en pause un abonnement actif.
Paramètres
- app_id
- customer_user_id
- af_currency
- af_expires_date_ms
- af_subscription_ownership_type
- af_original_transaction_id
- af_order_id
- af_purchase_token
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_period_type
Reprise de l'abonnement (af_ars_subscription_resumed)
Description
Enregistré lorsqu'un abonnement à tarif plein est relancé après un abandon ou une demande de remboursement d'abonnement.
Paramètres
- app_id
- customer_user_id
- af_currency
- af_expires_date_ms
- af_subscription_ownership_type
- af_original_transaction_id
- af_order_id
- af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_period_type
- af_discount_id
- af_discount_type
- af_reason
- event_revenue (inclus dans l'événement lorsque le revenu de l'événement est supérieur à zéro)
- store_commission
- af_net_revenue
- af_net_revenue_factors
Abonnement résilié (af_ars_subscription_churned)
Description
Enregistré lorsqu'un abonné se désabonne. Se produit généralement après l'annulation du renouvellement automatique ou l'expiration de la période d'essai. Peut également être causé par un problème de facturation ou un problème technique avec le renouvellement de l'abonnement, qui entraîne alors un désabonnement.
Paramètres
- app_id
- customer_user_id
- af_currency
- af_expires_date_ms
- Af_subscription_ownership_type
- af_original_transaction_id
- af_order_id
- Af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_period_type
- af_reason
Abonnement remboursé (af_ars_subscription_refunded)
Description
Enregistré lorsqu'un abonné perçoit un remboursement.
Remarque :
- Cet événement est souvent généré avec une valeur négative. Lorsqu'il est impossible de savoir quelles transactions ont été remboursées ou que les détails du remboursement ne figurent pas dans la notification, l'événement de remboursement n'indique aucune valeur.
Paramètres
- app_id
- customer_user_id
- af_reason
- af_subscription_ownership_type
- af_discount_id
- af_discount_type
- af_original_transaction_id
- af_order_id
- af_purchase_token
- af_refunded_transaction_ids
- event_revenue_usd
- event_revenue (inclus dans l'événement lorsque le revenu est supérieur à zéro)
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_store
- af_environment
- af_period_type
- store_commission
- af_net_revenue
- af_net_revenue_factors
- af_net_revenue_tax_name
- af_net_revenue_tax_rate
- af_net_revenue_tax_exclusive
- af_net_revenue_country
- af_net_revenue_subdivision
- af_net_revenue_postal_code
Période de grâce pour la facturation des abonnements (af_ars_subscription_billing_grace)
Description
Enregistré lorsqu'un renouvellement d'abonnement échoue suite à un problème de facturation, et que l'abonné entre dans la période de grâce de facturation.
Paramètres
- app_id
- customer_user_id
- af_currency
- af_expires_date_ms
- Af_subscription_ownership_type
- af_original_transaction_id
- af_order_id
- Af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_period_type
Abonnement renouvelé (af_ars_subscription_renewed)
Description
Enregistré lors d'un renouvellement automatique de l'abonnement.
Paramètres
- app_id
- customer_user_id
- af_currency
- af_expires_date_ms
- af_subscription_ownership_type
- af_original_transaction_id
- af_order_id
- af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_period_type
- af_discount_id
- af_discount_type
- event_revenue_usd
- event_revenue (inclus dans l'événement lorsque le revenu est supérieur à zéro)
- store_commission
- af_net_revenue
- af_net_revenue_factors
Abonnement modifié (af_ars_subscription_xgraded)
Description
Enregistré lorsqu'un abonné passe à un abonnement supérieur, ou inférieur, ou qu'il change d'abonnement.
Paramètres
- app_id
- customer_user_id
- af_currency
- af_expires_date_ms
- af_subscription_ownership_type
- af_original_transaction_id
- af_order_id
- af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_period_type
- af_discount_id
- af_discount_type
- event_revenue_usd
- event_revenue (inclus dans l'événement lorsque le revenu est supérieur à zéro)
- store_commission
- af_net_revenue
- af_net_revenue_factors
Abonné existant (af_ars_existing_subscriber)
Description
Enregistré lorsque le connecteur SDK est notifié à propos d'un abonné au cours d'un cycle de facturation, et ce avant de recevoir la notification de suivi du serveur qui fait entrer l'abonné dans une autre étape du cycle de vie. Cet événement est souvent généré au cours de la période d'intégration et d'adoption du connecteur SDK.
Paramètres
- app_id
- customer_user_id
- country
- af_currency
- af_expires_date_ms
- af_subscription_ownership_type
- af_original_transaction_id
- af_order_id
- af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_period_type
- af_cuids
- af_validated
Achat test (af_ars_sandbox_sdk)
Description
Enregistré lors du test d'un achat traité par le SDK dans un environnement sandbox.
Paramètres
- app_id
- customer_user_id
- country
- af_currency
- af_expires_date_ms
- af_subscription_ownership_type
- af_discount_id
- af_discount_type
- af_original_transaction_id
- af_order_id
- af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_period_type
- af_cuids
- af_validated
Achat test (af_ars_sandbox_s2s)
Description
Enregistré lors du test d'un achat rapporté via S2S dans un environnement sandbox.
Paramètres
- app_id
- customer_user_id
- country
- af_currency
- af_expires_date_ms
- af_subscription_ownership_type
- af_discount_id
- af_discount_type
- af_original_transaction_id
- af_order_id
- af_purchase_token
- af_transaction_id
- af_product_id
- android_id
- idfa
- ip
- appsflyer_id
- af_purchase_date_ms
- af_store
- af_environment
- af_period_type
- af_cuids
- af_validated
Dictionnaire des paramètres
Les paramètres des événements liés aux IAP et abonnements s'affichent dans les rapports de données brutes, soit sous forme de colonnes distinctes, soit en tant que valeur de l'événement.
Les paramètres qui ont leurs propres colonnes sont les suivants :
- app_id
- customer_user_id
- country_code
- af_currency
- event_revenue_usd
- af_revenue
- android_id
- ip
- idfa
- appsflyer_id
Consultez le dictionnaire des champs de données pour en savoir plus sur ces paramètres.
Le tableau suivant décrit les paramètres de données brutes disponibles dans les événements ARS et VIAP.
Paramètre | Remarques | Produit |
---|---|---|
af_cancelation_date_ms | Date de l'annulation | IAP |
af_reason |
|
|
af_expires_date_ms |
Date d'expiration du cycle de facturation de l'abonnement en cours |
Abonnement |
af_subscription_ownership_type |
FAMILY_SHARED signifie que l'utilisateur a un accès via partage familial. PURCHASED signifie que l'utilisateur payant a effectué l'achat. |
Abonnement |
af_discount_id |
L'ID de l'offre donnée à l'utilisateur lors de l'achat initial. L'ID n'est renseigné que lorsqu'un code de réduction existe. |
|
af_discount_type |
Le type de réduction utilisé par l'utilisateur. Valeurs possibles :
|
Abonnement |
af_original_transaction_id |
|
|
af_order_id |
|
|
af_purchase_token |
|
|
af_transaction_id |
|
|
af_purchase_state |
Valeurs possibles :
|
IAP |
af_original_transaction_id |
|
|
af_refunded_transaction_ids |
|
|
af_product_id |
L'identifiant du produit d'abonnement |
|
af_purchase_date_ms |
Date d'achat de l'événement in-app de l'ID de produit rapporté |
|
af_store |
L'app store auprès où le produit d'abonnement a été acheté |
|
af_environment |
L'environnement à partir duquel les données sont transmises, production ou sandbox |
|
af_period_type |
|
Abonnement |
store_commission |
|
|
af_net_revenue |
Les revenus nets sont calculés sen prenant en compte tous les facteurs. Cf af_net_revenue_factors. |
|
af_net_revenue_factors |
|
|
af_net_revenue_tax_name |
|
|
af_net_revenue_tax_rate |
|
|
af_net_revenue_tax_exclusive |
|
|
af_net_revenue_country |
|
|
af_net_revenue_subdivision |
|
|
af_net_revenue_postal_code |
|
|
af_cuids |
|
Abonnement |
True Revenue
True Revenue est un élément commercial créé pour servir la solution de revenus des IAP et abonnements AppsFlyer. Il calcule automatiquement et en temps réel la valeur des revenus nets pour chaque transaction entrante et il l'inclut dans un rapport. True Revenue prend en compte les facteurs suivants dans le calcul du revenu brut/net :
-
Frais du store :
- Sont calculés et rapportés automatiquement. Aucune action de votre part n'est requise.
- Pour les achats, la commission du store est de 30 %.
- Pour les abonnements, la commission est automatiquement calculée pour chaque abonné, en tenant compte de la Lifetime Value de l'abonné (App Store : les frais commencent à 30 % et passent à 15 % après un an. Play Store : 15% de frais).
- Les paramètres relatifs au revenu net sont disponibles dans les rapports de données brutes.
- Taxe : la taxe est déclarée par défaut pour chaque transaction mesurée par ROI360, et selon la configuration du taux fiscal par défaut. La configuration peut être modifiée à l'aide de l' API fiscale dédiée.
Lors de l'affichage de True Revenue dans les rapports, les paramètres suivants contiennent les données des revenus nets. Consultez le dictionnaire des paramètres pour en savoir plus.
Paramètre | Facteur de revenu net |
---|---|
store_commission |
Frais du store |
af_net_revenue_tax_name |
Taxe |
af_net_revenue_tax_rate |
Taxe |
af_net_revenue_tax_exclusive |
Taxe |
af_net_revenue_postal_code |
Taxe |
af_net_revenue_country |
Taxe |
af_net_revenue_subdivision |
Taxe |
af_net_revenue |
|
af_net_revenue_factors |
|
Caractéristiques et limitations
Caractéristique | Produit | Remarques |
---|---|---|
Enregistrer l'installation et anonymiser |
|
Non pris en charge |
Bibliothèques de facturation Google V6 |
|
Non pris en charge |
Nouveaux abonnements |
Revenus d'abonnement |
Enregistré uniquement via le SDK d'achat AppsFlyer |
Changement de tarif |
Revenus d'abonnement |
Si les revenus d'abonnement ne reçoivent pas de notification de la part du SDK avec le nouveau tarif du produit, alors les revenus d'abonnement continuent de rapporter les revenus avec l'ancien tarif du produit. Une fois que le nouveau tarif du produit est reçu par le SDK d'achat, le nouveau prix est enregistré. |
Revenu brut |
|
Prise en charge |
Revenu net |
|
Pris en charge uniquement pour les données brutes |
Taxe |
Revenus d'abonnement |
Prise en charge |
Frais du store des revenus nets |
|
|
Remboursements | IAP | Peut être rapporté jusqu'à 180 jours après l'achat initial. |
Déduplication |
|
Prise en charge des transactions rapportées jusqu'à 180 jours après la date de l'événement. |
Mode strict du SDK |
|
Les abonnements ROI360 et VIAP sont pris en charge en mode strict du SDK. |
Devise |
|
Les revenus sont rapportés dans la devise d'origine (à l'aide du paramètre event_revenue) et en USD (à l'aide du paramètre event_revenue_usd). |