En bref : enregistrez les événements post-installation et attribuez-les à la source média d'origine en envoyant des événements riches en SDK ou S2S à AppsFlyer.
Pourquoi enregistrer des évènements in-app riches ?
Les évènements rich in-app d'AppsFlyer fournissent aux annonceurs la possibilité d'enregistrer tout évènement post-installation et de l’attribuer aux sources médias d’origine.
Lorsque vos utilisateurs effectuent des inscriptions, exécutent les tutoriels complets, ajoutent des articles au panier ou font des achats, les données d’évènements in-app peuvent enregistrer les évènements, avec précision.
Les évènements rich in-app sont l'outil idéal pour déterminer la valeur des utilisateurs d'app et la qualité du trafic provenant de différentes sources média. L'implémentation d'évènements rich in-app est facultative, mais nous vous recommandons de le faire. Nous vous conseillons également de définir et d'utiliser les mêmes noms et structures d'événements in-app sur toutes les plates-formes, pour un meilleur alignement des données brutes.
Respect de la vie privée de vos utilisateurs
- AppsFlyer donne de l'importance à votre vie privée et à celle des utilisateurs de votre app et la respecte.
- Nous ne collectons ni n'acceptons aucune information personnelle identifiable (IPP).
- Pour protéger la vie privée de vos utilisateurs, ne remplissez pas les valeurs d'événements in-app avec des informations susceptibles de les identifier directement. Cela concerne par exemple, l'adresse e-mail, le nom, le numéro d'identité et, à certains endroits, le code postal.
L'API logEvent
Un évènement in-app se compose d'un nom d'événement et de paramètres d'évènement.
Vous pouvez utiliser toute chaîne de nom d'évènement de votre choix. Cependant, le SDK d'AppsFlyer contient les noms d'évènements recommandés via des énumérations et des définitions (voir l'onglet Types d'évènements pour la liste des noms d'évènements et de paramètres recommandés).
Les noms d'évènements sont sensibles à la casse, ce qui signifie que af_purchase et af_PURCHASE sont deux évènements distincts dans les données brutes. Cependant, dans les rapports agrégés (par ex. Présentation, Événements), ils peuvent être affichés comme un seul événement. C'est pourquoi nous recommandons d'utiliser uniquement les noms d'événement et de paramètre en minuscule.
La longueur des valeurs d'événement est limitée à 1 000 caractères. Ne dépassez pas cette limite. Les noms risqueraient d'être tronqués.
Syntaxe :
public static void logEvent(Context context, String eventName, Map eventValues)
-
Contexte - Utilisez
getApplicationContext()
- eventName
- Toute chaîne définissant le nom d’événement.
- eventValues
- Carte des paramètres d’événement constituant un événement rich.
- (void) logEvent:(NSString *)eventName withValues:(NSDictionary*)values
-
eventName - Toute chaîne définissant le nom d’événement.
- valeurs
- Dictionnaire des paramètres d’événement constituant un événement rich.
Évènements in-app pour apps hybrides
Les apps hybrides, qui combinent des vues natives et du contenu HTML, peuvent également enregistrer des événements in-app. Cependant, le SDK pouvant uniquement envoyer des événements depuis le côté natif, les développeurs doivent transmettre toutes les données d'événement en code natif. Voir notre guide sur les événements in-app pour apps hybrides pour obtenir les instructions.
Attention
Chaque réseau possède des limites spécifiques concernant les caractères autorisés dans le nom de l'évènement. Pour éviter les problèmes possibles, utilisez uniquement des caractères alphanumériques minuscules (a-z et 0-9) pour vos noms d'évènements in-app.
Types d’événements in-app
La section suivante décrit la structure recommandée de chaque type d’événement, de même que les mappages de paramètres sur Facebook, Twitter, Criteo, Google Ads et Snapchat.
- Les paramètres suivants, dans le cadre de la valeur des évènements rich in-app, sont uniquement disponibles dans les rapports des données brutes. L'accès aux données brutes est une fonctionnalité premium.
- Si vous incluez l'URL de référence en tant que valeur d'événement, elle doit être codée.
Remarque
Reportez-vous à l'onglet Verticales de cet article pour les extraits de code par verticale, pour Android (Java), iOS (Obj-C et Swift) et Unity.
Structures d'événements in-app recommandés
Les événements in-app suivants sont définis dans le cadre de l’interface AFInAppEventType et sont recommandés :
Niveau atteint
Nom d’événement : af_level_achieved
Description : permet d'enregistrer les évènements de niveau jeu
Constante de nom d'événement (Android) : AFInAppEventType.LEVEL_ACHIEVED
Constante de nom d'événement (iOS) : AFEventLevelAchieved
Événement mappé Facebook : fb_mobile_level_achieved
Événement mappé Twitter : LEVEL_ACHIEVED
Événement mappé Criteo : userLevel
Google Ads : level_up
Snapchat : LEVEL_COMPLETE
Champs recommandés : af_level, af_score
Mappage de champ :
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_level | fb_level | level | ui_level | level_up | level |
af_score | - | - | - | score | - |
Ajouter des informations de paiement
Nom d’événement : af_add_payment_info
Description : permet d'enregistrer l'état de configuration des informations de paiement
Constante de nom d'événement (Android) : AFInAppEventType.ADD_PAYMENT_INFO
Constante de nom d'événement (iOS) : AFEventAddPaymentInfo
Événement mappé Facebook : fb_mobile_add_payment_info
Événement mappé Twitter : ADDED_PAYMENT_INFO
Événement mappé Criteo : aucun
Google Ads : add_payment_info
Snapchat : ADD_BILLING
Champs recommandés : af_success
Mappage de champ :
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_success | fb_success | user_payment_info | - | add_payment_info | success |
Ajouter au panier
Nom d’événement : af_add_to_cart
Description : permet d'enregistrer les évènements « ajouter au panier » de certains articles
Constante de nom d'événement (Android) : AFInAppEventType.ADD_TO_CART
Constante de nom d'événement (iOS) : AFEventAddToCart
Événement mappé Facebook : fb_mobile_add_to_cart
Événement mappé Twitter : ADD_TO_CART
Événement mappé Criteo : viewBasket
Google Ads : add_to_cart
Snapchat : ADD_CART
Champs recommandés : af_price, af_content_type, af_content_id, af_content, af_currency, af_quantity
Mappage de champ :
AppsFlyer | Criteo | Google Ads | Snap | ||
---|---|---|---|---|---|
af_price | _valueToSum | price_micro* | price** | price | price |
af_content_type | fb_content_type | content_type | - | item_category | item_category |
af_content_id | fb_content_id | content_id | id | item_id | item_ids |
af_content | fb_content | - | - | - | - |
af_currency | fb_currency | price_currency | currency | currency_code | currency |
af_quantity | - | number_items | quantity | quantity | number_items |
*Pour signaler un événement contenant plusieurs éléments, cliquez ici.
Ajouter à la liste de vœux
Nom d’événement : af_add_to_wishlist
Description : permet d'enregistrer les évènements « ajouter à la liste d'envies » de certains articles spécifiques.
Constante de nom d'événement (Android) : AFInAppEventType.ADD_TO_WISH_LIST
Constante de nom d'événement (iOS) : AFEventAddToWishlist
Événement mappé Facebook : fb_mobile_add_to_wishlist
Événement mappé Twitter : ADD_TO_WISHLIST
Événement mappé Criteo : aucun
Google Ads : add_to_wishlist
Snapchat : ADD_TO_WISHLIST
Champs recommandés : af_price, af_content_type, af_content_id, af_content, af_currency, af_quantity
Mappage de champ :
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_price | _valueToSum | price_micro* | - | Prix | price |
af_content_type | fb_content_type | content_type | - | Catégorie d’élément | item_category |
af_content_id | fb_content_id | content_id | - | item_id | item_ids |
af_content | fb_content | - | - | - | - |
af_currency | fb_currency | price_currency | - | currency_code | currency |
af_quantity | - | number_items | - | quantity | number_items |
*Pour signaler un événement contenant plusieurs éléments, cliquez ici.
Inscription complète
Nom d’événement : af_complete_registration
Description : permet d'enregistrer les méthodes d'enregistrement des utilisateurs
Constante de nom d'événement (Android) : AFInAppEventType.COMPLETE_REGISTRATION
Constante de nom d'événement (iOS) : AFEventCompleteRegistration
Événement mappé Facebook : fb_mobile_complete_registration
Événement mappé Twitter : SIGN_UP
Événement mappé Criteo : aucun
Google Ads : sign_up
Snapchat : SIGN_UP
Champ recommandé : af_registration_method
Mappage de champ :
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_registration_ method |
fb_registration_ method |
registration_method | - | registration_method | sign_up_method |
Fin du tutoriel
Nom d’événement : af_tutorial_completion
Description : permet d'enregistrer l'achèvement du tutoriel
Constante de nom d'événement (Android) : AFInAppEventType.TUTORIAL_COMPLETION
Constante de nom d'événement (iOS) : AFEventTutorial_completion
Événement mappé Facebook : fb_mobile_tutorial_completion
Événement mappé Twitter : TUTORIAL_COMPLETE
Événement mappé Criteo : aucun
Google Ads : tutorial_complete
Snapchat : COMPLETE_TUTORIAL
Champs recommandés : af_success, af_content_id, af_content
Mappage de champ :
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_success | fb_success | - | - | success | success |
af_content_id | fb_content_id | content_id | - | item_id | item_ids |
af_content | fb_content | - | - | - | - |
*Pour signaler un événement contenant plusieurs éléments, cliquez ici.
Paiement initié
Nom d’événement : af_initiated_checkout
Description : permet d'enregistrer les évènements de paiement
Constante de nom d'événement (Android) : AFInAppEventType.INITIATED_CHECKOUT
Constante de nom d'événement (iOS) : AFEventInitiatedCheckout
Événement mappé Facebook : fb_mobile_initiated_checkout
Événement mappé Twitter : CHECKOUT_INITIATED
Événement mappé Criteo : viewBasket
Google Ads : begin_checkout
Snapchat : START_CHECKOUT
Champs recommandés : af_price, af_content_type, af_content_id, af_content, af_quantity, af_payment_info_available, af_currency
Mappage de champ :
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_price | _valueToSum | price_micro* | price | price | price |
af_content_type | fb_content_type | content_type | - | item_category | item_category |
af_content_id | fb_content_id | content_id | id | item_id | item_ids |
af_content | fb_content | - | - | - | |
af_currency | fb_currency | price_currency | currency | currency_code | currency |
af_quantity | fb_num_items | number_items | quantity | quantity | number_items |
af_payment_info_ |
fb_payment_info_ available |
user_payment_ info |
- | payment_info_ available |
payment_info_available |
af_content_list | fb_content_id | - | - | item_id | - |
af_date_a- | fb_checkin_date | - | din | start_date | - |
af_date_b | fb_checkout_date | - | dout | end_date | - |
af_departing_ departure_date |
fb_departing_ departure_date |
- | - | - | - |
af_returning_ departure_date |
fb_returning_ departure_date |
- | - | - | - |
af_destination_a | fb_origin_airport | - | - | origin | - |
af_destination_b | fb_destination_airport | - | - | destination | - |
af_destination_list | fb_destination_ids | - | - | - | - |
af_city | fb_city | - | - | - | - |
af_region | fb_region | - | - | - | - |
af_country | fb_country | - | - | - | - |
af_departing_ arrival_date |
fb_departing_arrival_ date |
- | - | - | - |
af_returning_- arrival_date |
fb_returning_arrival_ date |
- | - | - | - |
af_suggested_ destinations |
fb_suggested_ destinations |
- | - | - | - |
af_travel_start | fb_travel_start | - | - | - | - |
af_travel_end | fb_travel_end | - | - | - | - |
af_num_adults | fb_num_adults | - | - | - | - |
af_num_childr-en | fb_num_children | - | - | - | - |
af_num_infant-s | fb_num_infants | - | - | - | - |
af_class | fb_travel_class | - | - | travel_class | - |
af_suggested_hotels | fb_suggested_hotels | - | - | - | - |
af_user_score | fb_user_score | - | - | - | - |
af_hotel_score | fb_hotel_score | - | - | - | - |
af_price | fb_purchase_value | - | - | price | - |
af_purchase_currency | fb_purchase_currency | - | - | - | - |
af_preferred_star_ ratings |
fb_preferred_star_ ratings |
- | - | - | - |
af_preferred_price_ range |
fb_preferred_price_ range |
- | - | - | - |
af_preferred_ neighborhoods |
fb_preferred_ neighborhoods |
- | - | - | - |
af_preferred_-num_ stops |
fb_preferred_num_ stops |
- | - | - | - |
*Pour signaler un événement contenant plusieurs éléments, cliquez ici.
Achat
Nom d’événement : af_purchase
Description : permet d'enregistrer les évènements d'achat (et de leur associer un revenu)
Constante de nom d'événement (Android) : AFInAppEventType.PURCHASE
Constante de nom d'événement (iOS) : AFEventPurchase
Événement mappé Facebook : fb_mobile_purchase
Événement mappé Twitter : ACHAT
Évènement mappé Criteo : transactionConfirmation
Google Ads : in_app_purchase
Snapchat : PURCHASE
Champs recommandés : af_revenue, af_content_type, af_content_id, af_content, af_price, af_quantity, af_currency, af_order_id
Mappage de champ :
AppsFlyer | Criteo | Google Ads | Snapchat | Ajouter aux partenaires | ||
---|---|---|---|---|---|---|
af_revenue* |
_valueToSum |
price_micro** |
ui_revenue |
value |
price |
- |
af_content_type |
fb_content_type |
content_type |
- |
item_category |
item_category |
Catégorie |
af_content_id |
fb_content_id |
content_id |
id |
item_id |
item_ids |
- |
af_content |
fb_content |
- |
- |
- |
- |
Métadonnées de conversion personnalisées |
af_currency |
fb_currency |
price_currency |
currency |
currency_code |
currency |
Devise |
af_quantity |
fb_num_items |
number_items |
quantity |
quantity |
number_items |
quantité |
af_validated |
- |
- |
- |
VALIDÉ |
success |
Bon |
af_receipt_id |
- |
- |
transaction_id |
transaction_id |
- |
Référence de conversion |
af_order_id |
fb_order_id |
- |
- |
order_id |
transaction_id |
Clickref |
af_content_list |
fb_content_id |
- |
- |
item_id |
- |
Métadonnées d'élément personnalisées |
af_date_a |
fb_checkin_date |
- | din | start_date | - | - |
af_date_b |
fb_checkout_date |
- | dout | end_date | - | - |
af_departing_ departure_date |
fb_departing_ |
- | - | - | - | - |
af_returning_ departure_date |
fb_returning_ |
- | - | - | - | - |
af_destination_a |
fb_origin_airport |
- | - | origin | - | - |
af_destination_b |
fb_destination_ |
- | - | destination | - | - |
af_destination_list |
fb_destination_ids |
- | - | - | - | - |
af_city |
fb_city |
- | - | - | - | - |
af_region |
fb_region |
-- | -- | -- | -- | - |
af_country |
fb_country |
- | - | - | - | - |
af_departing_arrival_ date |
fb_departing_arrival_ |
- | - | - | - | - |
af_returning_arrival_ date |
fb_returning_arrival_ |
- | - | - | - | - |
af_suggested_ destinations |
fb_suggested_ |
- | - | - | - | - |
af_travel_start |
fb_travel_start |
- | - | - | - | - |
af_travel_end |
fb_travel_end |
- | - | - | - | - |
af_num_adults |
fb_num_adults |
- | - | - | - | - |
af_num_children |
fb_num_children |
- | - | - | - | - |
af_num_infants |
fb_num_infants |
- | - | - | - | - |
af_class |
fb_travel_class |
- | - | travel_class | - | - |
af_suggested_ hotels |
fb_suggested_ |
- | - | - | - | - |
af_user_score |
fb_user_score |
- | - | - | - | - |
af_hotel_score |
fb_hotel_score |
- | - | - | - | - |
af_price |
fb_price |
- | price** | price | - | valeur |
af_purchase_ currency |
fb_purchase_ |
- | - | - | - | - |
af_preferred_star_ ratings |
fb_preferred_star_ |
- | - | - | - | - |
af_preferred_price_ range |
fb_preferred_price_ |
- | - | - | - | - |
af_preferred_ neighborhoods |
fb_preferred_ |
- | - | - | - | - |
af_preferred_num_ stops |
fb_preferred_num_ |
- | - | - | - | - |
* af_revenue est considéré comme un revenu sur la plate-forme d'AppsFlyer. Il comptabilise également les revenus négatifs provenant des annulations ou des remboursements.
**af_price - vous pouvez utiliser af_price comme paramètre monétaire qui n’est pas comptabilisé en tant que revenu (par exemple, dans un événement « Ajouter au panier »). Ce paramètre représente le prix de chaque article. Le montant total des achats s’affiche sous le paramètre af_revenue.
Pour afficher la liste des symboles monétaires pris en charge par AppsFlyer, cliquez ici.
*Pour signaler un événement contenant plusieurs éléments, cliquez ici.
Abonnement
Nom d'événement : af_subscribe
Description : permet d'enregistrer les achats d'abonnements payants
Constante de nom d'événement (Android) : AFInAppEventType.SUBSCRIBE
Constante de nom d'événement (iOS) : AFEventSubscribe
Événement mappé Facebook : Subscribe
Événement mappé Twitter : aucun
Événement mappé Criteo : aucun
Google Ads : aucun
Snapchat : SUBSCRIBE
Champs recommandés : af_revenue, af_currency
Mappage de champ :
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_revenue |
_valueToSum |
- |
- |
- |
price |
af_currency |
fb_currency |
- |
- |
- |
currency |
af_subscription_id |
subscription_id |
- |
- |
- |
- |
Commencer l'essai
Nom d’événement : af_start_trial
Description : permet d'enregistrer le début de l'essai gratuit d'un produit
Constante de nom d'événement (Android) : AFInAppEventType.START_TRIAL
Constante de nom d'événement (iOS) : AFEventStartTrial
Événement mappé Facebook : StartTrial
Événement mappé Twitter : aucun
Événement mappé Criteo : aucun
Google Ads : aucun
Snapchat : START_TRIAL
Champs recommandés : af_price, af_currency
Mappage de champ :
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_price |
_valueToSum |
- |
- |
- |
price |
af_currency |
fb_currency |
- |
- |
- |
currency |
af_subscription_id |
subscription_id |
- |
- |
- |
- |
Rate
Nom d’événement : af_rate
Description : permet d'enregistrer les évènements de classification d'app/article.
Constante de nom d'événement (Android) : AFInAppEventType.RATE
Constante de nom d'événement (iOS) : AFEventRate
Événement mappé Facebook : fb_mobile_rate
Événement mappé Twitter : CLASSÉ
Événement mappé Criteo : aucun
Google Ads : submit_rating
Snapchat : RATE
Champs recommandés : af_rating_value, af_content_type, af_content_id, af_content, af_max_rating_value
Mappage de champ :
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_rating_value |
_valueToSum |
price_micro |
- |
value |
- |
af_content_type |
fb_content_type |
content_type |
- |
content_type |
item_category |
af_content_id |
fb_content_id |
content_id |
- |
content_id |
item_ids |
af_content |
fb_content |
- |
- |
- |
- |
af_max_rating_value |
fb_max_rating_value |
max_rated_value |
- |
max_rating |
- |
*Pour signaler un événement contenant plusieurs éléments, cliquez ici.
Recherche
Nom d’événement : af_search
Description : permet d'enregistrer les évènements de recherche
Constante de nom d'événement (Android) : AFInAppEventType.SEARCH
Constante de nom d'événement (iOS) : AFEventSearch
Événement mappé Facebook : fb_mobile_search
Événement mappé Twitter : RECHERCHE
Événement mappé Criteo : viewSearch
Google Ads : view_search_results
Google Ads : SEARCH
Champs recommandés : af_content_type, af_search_string, af_success
Mappage de champ :
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_content_type |
fb_content_type |
content_type |
- |
item_category |
item_category |
af_search_string |
fb_search_string |
search_string |
- |
search_term |
search_string |
af_date_a |
fb_checkin_date |
- |
din |
start_date |
- |
af_date_b |
fb_checkout_date |
- |
dout |
end_date |
- |
af_destination_a |
fb_origin_airport |
- |
- |
origin |
- |
af_destination_b |
fb_destination_airport |
- |
- |
destination |
- |
af_success |
fb_success |
- |
- |
success |
success |
af_content_list |
fb_content_id |
- |
- |
item_id |
- |
af_departing_ departure_date |
fb_departing_ |
- | - | - | - |
af_returning_ departure_date |
fb_returning_ |
- | - | - | - |
af_destination_list |
fb_destination_ids |
- | - | - | - |
af_city |
fb_city |
- | - | - | - |
af_region |
fb_region |
- | - | - | - |
af_country |
fb_country |
- | - | - | - |
af_departing_arrival_ date |
fb_departing_arrival_ |
- | - | - | - |
af_returning_arrival_ date |
fb_returning_arrival_ |
- | - | - | - |
af_suggested_ destinations |
fb_suggested_ |
- | - | - | - |
af_travel_start |
fb_travel_start |
- | - | - | - |
af_travel_end- |
fb_travel_end |
- | - | - | - |
af_num_adults |
fb_num_adults |
- | - | - | - |
af_num_children |
fb_num_children |
- | - | - | - |
af_num_infants |
fb_num_infants |
- | - | - | - |
af_class |
fb_travel_class |
- | - | travel_class | - |
af_suggested_hotels |
fb_suggested_hotels |
- | - | - | - |
af_user_score |
fb_user_score |
- | - | - | - |
af_hotel_score |
fb_hotel_score |
- | - | - | - |
af_price |
fb_purchase_value |
- | - | price | - |
af_purchase_currency |
fb_purchase_currency |
- | - | - | - |
af_preferred_star_ ratings |
fb_preferred_star_ |
- | - | - | - |
af_preferred_price_ range |
fb_preferred_price_ |
- | - | - | - |
af_preferred_ neighborhoods |
fb_preferred_ |
- | - | - | - |
af_preferred_num_ stops |
fb_preferred_num_ |
- | - | - | - |
Crédit utilisés
Nom d’événement : af_spent_credits
Description : permet d'enregistrer les évènements d'utilisation des crédits
Constante de nom d'événement (Android) : AFInAppEventType.SPENT_CREDIT
Constante de nom d'événement (iOS) : AFEventSpentCredits
Événement mappé Facebook : fb_mobile_spent_credits
Événement mappé Twitter : SPENT_CREDITS
Évènement mappé Criteo : transactionConfirmation
Google Ads : spend_virtual_currency
Snapchat : SPENT_CREDITS
Champs recommandés : af_price, af_content_type, af_content_id, af_content
Mappage de champ :
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_price |
_valueToSum |
price_micro* |
price** |
price |
price |
af_content_type |
fb_content_type |
content_type |
- |
item_category |
item_category |
af_content_id |
fb_content_id |
content_id |
item_id |
item_id |
item_ids |
af_content |
fb_content |
- |
- |
|
- |
*Pour signaler un événement contenant plusieurs éléments, cliquez ici.
Succès déverrouillé
Nom d’événement : af_achievement_unlocked
Description : permet d'enregistrer les évènements de déverrouillage de l'exécution
Constante de nom d'événement (Android) : AFInAppEventType.ACHIEVEMENT_UNLOCKED
Constante de nom d'événement (iOS) : AFEventAchievementUnlocked
Événement mappé Facebook : fb_mobile_achievement_unlocked
Événement mappé Twitter : ACHIEVEMENT_UNLOCKED
Événement mappé Criteo : achievement
Google Ads : unlock_achievement
Snapchat : ACHIEVEMENT_UNLOCKED
Champ recommandé: af_description
Mappage de champ :
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_description |
fb_description |
description |
ui_achievement |
description |
description |
Vue du contenu
Évènement : af_content_view
Description : permet d'enregistrer les évènements d'affichage du contenu
Constante de nom d'événement (Android) : AFInAppEventType.CONTENT_VIEW
Constante de nom d'événement (iOS) : AFEventContentView
Événement mappé Facebook : fb_mobile_content_view
Événement mappé Twitter : CONTENT_VIEW
Événement mappé Criteo : viewProduct
Google Ads : view_item
Snapchat : VIEW_CONTENT
Champs recommandés : af_price, af_content_type, af_content_id, af_content, af_currency
Mappage de champ :
AppsFlyer | Criteo | Google Ads | Snap | ||
---|---|---|---|---|---|
af_price |
_valueToSum |
price_micro* |
price |
price |
price |
af_content_type |
fb_content_type |
content_type |
- |
item_category |
item_category |
af_content_id |
fb_content_id |
content_id |
id |
item_id |
item_ids |
af_content |
fb_content |
- |
- |
- |
- |
af_currency |
fb_currency |
price_currency |
currency |
currency_code |
currency |
af_content_list |
fb_content_id |
- |
- |
item_id | - |
af_date_a |
fb_checkin_date |
- | din | start_date | - |
af_date_b |
fb_checkout_date |
- | dout | end_date | - |
af_departing_ departure_date |
fb_departing_ |
- | - | - | |
af_returning_ departure_date |
fb_returning_ |
- | - | - | - |
af_destination_a |
fb_origin_airport |
- | - | origin | - |
af_destination_b |
fb_destination_ |
- | - | destination | - |
af_destination_list |
fb_destination_ids |
- | - | - | - |
af_city |
fb_city |
- | - | - | - |
af_region |
fb_region |
- | - | - | - |
af_country |
fb_country |
- | - | - | - |
af_departing_arrival_ date |
fb_departing_arrival_ |
- | - | - | - |
af_returning_arrival_ date |
fb_returning_arrival_ |
- | - | - | - |
af_suggested_ destinations |
fb_suggested_ |
- | - | - | - |
af_travel_start |
fb_travel_start |
- | - | - | - |
af_travel_end |
fb_travel_end |
- | - | - | - |
af_num_adults |
fb_num_adults |
- | - | - | - |
af_num_children |
fb_num_children |
- | - | - | - |
af_num_infants |
fb_num_infants |
- | - | - | - |
af_class |
fb_travel_class |
- | - | travel_class | - |
af_suggested_hotels |
fb_suggested_hotels |
- | - | - | - |
af_user_score |
fb_user_score |
- | - | - | - |
af_hotel_score |
fb_hotel_score |
- | - | - | - |
af_price |
fb_purchase_value |
- | - | price | - |
af_purchase_currency |
fb_purchase_currency |
- | - | - | - |
af_preferred_star_ ratings |
fb_preferred_star_ |
- | - | - | - |
af_preferred_price_ range |
fb_preferred_price_ |
- | - | - | - |
af_preferred_ neighborhoods |
fb_preferred_ |
- | - | - | - |
af_preferred_num_ stops |
fb_preferred_num_ |
- | - | - | - |
Vue de liste
Nom d’événement : af_list_view
Description : permet d'enregistrer les évènements d'affichage de listes
Constante de nom d'événement (Android) : utiliser plutôt la chaîne « af_list_view » :
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "af_list_view", eventValue);
Constante de nom d'événement (iOS) : AFEventListView
Événement mappé Facebook :
Événement mappé Twitter :
Événement mappé Criteo : viewListing
Google Ads : view_item_list
Snapchat : LIST_VIEW
Champs recommandés : af_content_type, af_content_list
Mappage de champ :
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_content_type |
- |
- |
- |
item_Category |
item_category |
af_content_list |
- |
- |
- |
item_id |
- |
Clic sur une publicité
Nom d’événement : af_ad_click
Description : permet d'enregistrer les clics sur des publicités affichées dans l'app
Constante de nom d'événement (Android) : AFInAppEventType.AD_CLICK
Constante de nom d'événement (iOS) : AFEventAdClick
Événement mappé Facebook : AdClick
Événement mappé Twitter : aucun
Événement mappé Criteo : aucun
Google Ads : aucun
Snapchat : AD_CLICK
Champ recommandé : af_adrev_ad_type
Mappage de champ :
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_adrev_ad_type |
ad_type |
- |
- |
- |
- |
af_currency |
fb_currency |
- |
- |
- |
currency |
Visualisation de publicités
Nom d’événement : af_ad_view
Description : permet d'enregistrer les visualisations de publicités affichées dans l'app
Constante de nom d'événement (Android) : AFInAppEventType.AD_VIEW
Constante de nom d'événement (iOS) : AFEventAdView
Événement mappé Facebook : AdImpression
Événement mappé Twitter : aucun
Événement mappé Criteo : aucun
Google Ads : aucun
Snapchat : AD_VIEW
Champ recommandé : af_adrev_ad_type
Mappage de champ :
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_adrev_ad_type |
ad_type |
- |
- |
- |
- |
af_currency |
fb_currency |
- |
- |
- |
currency |
Réservation de voyage
Nom d’événement : af_travel_booking
Description : permet d'enregistrer les évènements de réservation de voyage (et de leur associer un revenu)
Constante de nom d'événement (Android) : AFInAppEventType.TRAVEL_BOOKING
Constante de nom d'événement (iOS) : AFEventTravelBooking
Événement mappé Facebook : fb_mobile_purchase
Événement mappé Twitter : ACHAT
Évènement mappé Criteo : transactionConfirmation
Google Ads : ecommerce_purchase
Snapchat : RESERVE
Champs recommandés : af_revenue, af_destination_a, af_destination_b, af_class, af_description, af_customer_user_id, af_content_type, af_content_id, af_date_a, af_date_b
Mappage de champ :
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_revenue* |
_valueToSum |
price_micro** |
price*** |
value |
price |
af_customer_user_id |
- |
- |
cid |
customer_user_ |
- |
af_content_type |
fb_content_type |
content_type |
- |
item_category |
item_category |
af_content_id |
fb_content_id |
content_id |
- |
item_id |
item_ids |
af_class |
- |
- |
- |
travel_class |
- |
af_date_a |
- |
- |
din |
start_date |
- |
af_date_b |
- |
- |
dout |
end_date |
- |
af_destination_a |
- |
- |
- |
origin |
- |
af_destination_b |
- |
- |
- |
destination |
- |
af_success |
fb_success |
- |
- |
success |
|
af_content_list |
fb_content_ids |
- |
- |
item_id | - |
af_date_a |
fb_checkin_date |
- | - | start_date | - |
af_date_b |
fb_checkout_date |
- | - | end_date | - |
af_departing_ departure_date |
fb_departing_ |
- | - | - | |
af_returning_ departure_date |
fb_returning_ |
- | - | - | |
af_destination_a |
fb_origin_airport |
- | - | origin | - |
af_destination_b |
fb_destination_airport |
- | - | destination | - |
af_destination_list |
fb_destination_ids |
- | - | - | |
af_city |
fb_city |
- | - | - | - |
af_region |
fb_region |
- | - | - | - |
af_country |
fb_country |
- | - | - | - |
af_departing_arrival_ date |
fb_departing_arrival_ |
- | - | - | - |
af_returning_arrival_ date |
fb_returning_arrival_ |
- | - | - | - |
af_suggested_ destinations |
fb_suggested_ |
- | - | - | - |
af_travel_start |
fb_travel_start |
- | - | - | - |
af_travel_end |
fb_travel_end |
- | - | - | - |
af_num_adults |
fb_num_adults |
- | - | - | - |
af_num_children |
fb_num_children |
- | - | - | - |
af_num_infants |
fb_num_infants |
- | - | - | - |
af_class |
fb_travel_class |
- | - | travel_class | - |
af_suggested_hotels |
fb_suggested_hotels |
- | - | - | - |
af_user_score |
fb_user_score |
- | - | - | - |
af_hotel_score |
fb_hotel_score |
- | - | - | - |
af_price |
fb_purchase_value |
- | - | price | - |
af_purchase_currency |
fb_purchase_currency |
- | - | - | - |
af_preferred_star_ ratings- |
fb_preferred_star_ |
- | - | - | - |
af_preferred_price_ range |
fb_preferred_star_ |
- | - | - | - |
af_preferred_ neighborhoods |
fb_preferred_ |
- | - | - | - |
af_preferred_num_ stops- |
fb_preferred_num_ |
- | - | - | - |
af_order_id |
fb_order_id |
- | - | order_id | transaction_id |
Partage
Nom d’événement : af_share
Description : permet d'enregistrer les évènements de partage
Constante de nom d'événement (Android) : AFInAppEventType.SHARE
Constante de nom d'événement (iOS) : AFEventShare
Événement mappé Facebook : aucun
Événement mappé Twitter : PARTAGE
Événement mappé Criteo : aucun
Google Ads : partage
Snapchat : SHARE
Champ recommandé : af_description
Mappage de champ :
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_description |
- |
description |
- |
description |
description |
Invitation
Nom d’événement : af_invite
Description : permet d'enregistrer les évènements d'invitations (sociales)
Constante de nom d'événement (Android) : AFInAppEventType.INVITE
Constante de nom d'événement (iOS) : AFEventInvite
Événement mappé Facebook : aucun
Événement mappé Twitter : INVITATION
Événement mappé Criteo : aucun
Google Ads : invitation
Snapchat : INVITE
Champs recommandés : aucun
Mappage de champ :
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_description |
- |
description |
- |
description |
description |
Connexion
Nom d’événement : af_login
Description : permet d'enregistrer les évènements de connexion utilisateur
Constante de nom d'événement (Android) : AFInAppEventType.LOGIN
Constante de nom d'événement (iOS) : AFEventLogin
Événement mappé Facebook : aucun
Événement mappé Twitter : CONNEXION
Événement mappé Criteo : aucun
Google Ads : connexion
Champs recommandés : aucun
Réimplication
Nom d’événement : af_re_engage
Description : permet d'enregistrer les évènements de réengagement des utilisateurs
Constante de nom d'événement (Android) : AFInAppEventType.RE_ENGAGE
Constante de nom d'événement (iOS) : AFEventReEngage
Événement mappé Facebook : aucun
Événement mappé Twitter : RE_ENGAGE
Événement mappé Criteo : aucun
Google Ads : custom_event
Champsrecommandés: aucun
Mappage de champ :
AppsFlyer | Criteo | Google Ads | ||
---|---|---|---|---|
af_description |
- |
description |
- |
description |
Ouvert à partir d'une notification push
Nom d’événement : af_opened_from_push_notification
Description : permet d'enregistrer les ouvertures d'app à partir d'évènements de notification push
Constante de nom d'événement (Android) : AFInAppEventType.OPENED_FROM_PUSH_NOTIFICATION
Constante de nom d'événement (iOS) : AFEventOpenedFromPushNotification
Événement mappé Facebook : aucun
Événement mappé Twitter : aucun
Événement mappé Criteo : aucun
Google Ads : notification_open
Champsrecommandés: aucun
Mise à jour
Nom d’événement : af_update
Description : permet d'enregistrer les évènements de mise à jour
Constante de nom d'événement (Android) : AFInAppEventType.UPDATE
Constante de nom d'événement (iOS) : AFEventUpdate
Événement mappé Facebook : aucun
Événement mappé Twitter : MISE A JOUR
Événement mappé Criteo : aucun
Google Ads : app_update
Champ recommandé : af_content_id
Mappage de champ :
AppsFlyer | Criteo | Google Ads | ||
---|---|---|---|---|
af_content_id |
- |
content_id |
- |
item_id |
*Pour signaler un événement contenant plusieurs éléments, cliquez ici.
En plus des événements décrits ci-dessus, qui peuvent être mappés aux événements prédéfinis de divers réseaux, Facebook propose des événements supplémentaires qui sont envoyés sans attribut.
Paramètres facultatifs
En plus des paramètres recommandés qui peuvent être transmis avec chaque événement, les paramètres ci-dessous sont définis dans le cadre de l’interface AFInAppEventParameterName
et peuvent être envoyés en tant que valeur de dictionnaire d’événements :
Constante de chaîne de paramètres | Nom de chaîne de paramètres | Type de valeur recommandé |
---|---|---|
REVENU (détails) |
af_revenue |
Float |
PRIX (détails) |
af_price |
Float |
LEVEL |
af_level |
Int |
SUCCESS |
af_success |
Boolean |
CONTENT_TYPE |
af_content_type |
Chaîne |
CONTENT_LIST |
af_content_list |
Tableau de chaînes |
CONTENT_ID |
af_content_id |
Chaîne |
CURRENCY |
af_currency |
Chaîne |
REGISTRATION_METHOD |
af_registration_method |
Chaîne |
QUANTITY |
af_quantity |
Int |
PAYMENT_INFO_AVAILABLE |
af_payment_info_available |
Boolean |
RATING_VALUE |
af_rating_value |
Float |
MAX_RATING_VALUE |
af_max_rating_value |
Float |
SEARCH_STRING |
af_search_string |
Chaîne |
DESCRIPTION |
af_description |
Chaîne |
SCORE |
af_score |
Int |
DESTINATION_A |
af_destination_a |
Chaîne |
DESTINATION_B |
af_destination_b |
Chaîne |
CLASS |
af_class |
Chaîne |
DATE_A |
af_date_a |
Chaîne |
DATE_B |
af_date_b |
Chaîne |
EVENT_START |
af_event_start |
Temps unix (00:00:00) |
EVENT_END |
af_event_end |
Temps unix (00:00:00) |
LATITUDE |
af_lat |
Int |
LONGITUDE |
af_long |
Int |
CUSTOMER_USER_ID |
af_customer_user_id |
Chaîne |
CUSTOMER_SEGMENT |
af_customer_segment |
Chaîne |
VALIDATED |
af_validated |
Chaîne |
RECEIPT_ID |
af_receipt_id |
Chaîne |
ORDER_ID |
af_order_id |
Chaîne |
TUTORIAL_ID |
af_tutorial_id |
Chaîne |
ACHIEVEMENT_ID |
af_achievement_id |
Chaîne |
VIRTUAL_CURRENCY_NAME |
af_virtual_currency_name |
Chaîne |
DEEP_LINK |
af_deep_link |
Chaîne |
OLD_VERSION |
af_old_version |
Chaîne |
NEW_VERSION |
af_new_version |
Chaîne |
REVIEW_TEXT |
af_review_text |
Chaîne |
COUPON_CODE |
af_coupon_code |
Chaîne |
DEPARTING_DEPARTURE_DATE |
af_departing_departure_date |
Chaîne |
RETURNING_DEPARTURE_DATE |
af_returning_departure_date |
Chaîne |
DESTINATION_LIST |
af_destination_list |
String[] |
CITY |
af_city |
Chaîne |
REGION |
af_region |
Chaîne |
COUNTRY |
af_county |
Chaîne |
DEPARTING_ARRIVAL_DATE |
af_departing_arrival_date |
Chaîne |
RETURNING_ARRIVAL_DATE |
af_returning_arrival_date |
Chaîne |
SUGGESTED_DESTINATIONS |
af_suggested_destinations |
String[] |
TRAVEL_START |
af_travel_start |
Chaîne |
TRAVEL_END |
af_travel_end |
Chaîne |
NUM_ADULTS |
af_num_adults |
Int |
NUM_CHILDREN |
af_num_children |
Int |
NUM_INFANTS |
af_num_infants |
Int |
SUGGESTED_HOTELS |
af_suggested_hotels |
String[] |
USER_SCORE |
af_user_score |
Float |
HOTEL_SCORE |
af_hotel_score |
Float |
PURCHASE_CURRENCY |
af_purchase_currency |
Chaîne |
PREFERRED_STAR_RATINGS |
af_preferred_star_ratings |
Int[2] |
PREFERRED_PRICE_RANGE |
af_preferred_price_range |
Int[2] |
PREFERRED_NEIGHBORHOODS |
af_preferred_neighborhoods |
String[] |
PREFERRED_NUM_STOPS |
af_preferred_num_stops |
Int |
CONTENT |
af_content |
Chaîne |
PARAM_1 |
af_param_1 |
Chaîne |
PARAM_2 |
af_param_2 |
Chaîne |
PARAM_3 |
af_param_3 |
Chaîne |
PARAM_4 |
af_param_4 |
Chaîne |
PARAM_5 |
af_param_5 |
Chaîne |
PARAM_6 |
af_param_6 |
Chaîne |
PARAM_7 |
af_param_7 |
Chaîne |
PARAM_8 |
af_param_8 |
Chaîne |
PARAM_9 |
af_param_9 |
Chaîne |
PARAM_10 |
af_param_10 |
Chaîne |
Affichage des données d’événements in-app riches
- Le nom de votre événement in-app, ainsi que les revenus, apparaissent dans la page de présentation et la Page événements du tableau de bord.
- Des valeurs de paramètres supplémentaires apparaissent dans le rapport de données brutes des événements in-app. Les données brutes sont une fonctionnalité premium.
Paramètre Revenue
Vous pouvez transmettre les valeurs de revenu avec n'importe quel nom et évènement de paramètre. Cependant, pour enregistrer les revenus (y compris les revenus négatifs) dans les données brutes et agrégées d'AppsFlyer, vous DEVEZ utiliser le paramètre af_revenue. Veillez à toujours l’utiliser avec des évènements in-app représentant la génération de revenus réels dans votre logique métier.
Pour plus de détails sur le paramètre af_revenue, consultez le guide d'attribution de revenu.
Informations personnellement identifiables
Les informations personnellement identifiables (IPP) sont des informations qui peuvent être utilisées pour identifier ou retracer l'identité d'une personne (nom, numéro d'identité nationale, numéro de sécurité sociale), soit toutes seules ou soit combinées à d'autres informations d'identification liées à la date et au lieu de naissance de la personne.
AppsFlyer respecte les Règles de confidentialité pour les utilisateurs et ne collecte aucune IPP.
N'envoyez pas d'IPP dans les valeurs d'événement.
Remarque
AppsFlyer collecte l'adresse IP des appareils lors des engagements. Dans certaines juridictions ou certains scénarios d'utilisation, l'adresse IP peut être considérée comme une IPP. Nous utilisons l'adresse IP pour dériver la situation géographique de l'appareil à un niveau large (ville, district), mais pas l'adresse spécifique. Si nécessaire, vous pouvez sélectionner Masquer les adresses IP afin qu'elles n'apparaissent pas dans les rapports de données brutes.
Multiples articles
Vous pouvez combiner plusieurs éléments en une même transaction. Plutôt que d'utiliser des valeurs uniques par paramètre d’événement, vous pouvez avoir plusieurs éléments décrivant la transaction, séparés par des virgules.
Exemple
Au cours de la même transaction, M. A. Flyer achète deux chemises identiques, une paire de chaussures et un chapeau auprès d’un magasin en ligne basé aux États-Unis. La séquence selon laquelle chaque élément est répertorié doit être identique pour chaque paramètre.
af_content_id: ["123","988","399"]
af_quantity: [2,1,1]
af_price: [25,50,10]
af_revenue: [110]
af_currency: USD
Pour plusieurs articles, le code apparaît comme suit :
Map<String,Object> eventData = new HashMap<>();
eventData.put(AFInAppEventParameterName.CONTENT_ID, new String[] {"123","988","399"});
eventData.put(AFInAppEventParameterName.QUANTITY, new int[] {2, 1, 1});
eventData.put(AFInAppEventParameterName.PRICE,new int[] {25, 50, 10});
eventData.put(AFInAppEventParameterName.CURRENCY,"USD");
eventData.put(AFInAppEventParameterName.REVENUE,110);
AppsFlyerLib.getInstance().logEvent(AppsFlyerTestActivity.this, AFInAppEventType.PURCHASE,eventData);
Plusieurs éléments sont transmis en tant que tableau dans des postbacks. À l'heure actuelle, Facebook et Twitter ne peuvent pas analyser correctement les paramètres de tableau. Pour permettre à AppsFlyer d'additionner la quantité d'éléments (af_quantity) au lieu de les envoyer sous forme de tableau (par exemple, dans l'exemple précédent, Facebook recevrait af_quantity=4).
Remarque
Plusieurs articles peuvent être utilisés avec les événements in-app suivants :
af_add_to_cart, af_add_to_wishlist, af_tutorial_completion, af_initiated_checkout, af_purchase, af_rate, af_spent_credits, af_content_view, af_travel_booking, af_update
Événements in-app complexes
Les événements in-app complexes permettent d'envoyer plusieurs événements en un seul appel API.
Ils sont utiles lorsque vous souhaitez regrouper plusieurs actions utilisateur étroitement liées pour les consulter, par exemple en ajoutant plusieurs produits dans le panier au cours d'une même session.
Exemple :
{
"af_revenue":"50.87",
"af_currency":"USD",
"af_receipt_id":"57601333",
"product":[
{
"af_content_id":"1164_8186",
"af_price":"8.97",
"af_quantity":"1"
},
{
"af_content_id":"1164_8186",
"af_price":"8.97",
"af_quantity":"1"
},
{
"af_content_id":"1164_8186",
"af_price":"8.97",
"af_quantity":"1"
},
{
"af_content_id":"1177_8185",
"af_price":"8.97",
"af_quantity":"1"
},
{
"af_content_id":"0153_9077",
"af_price":"14.99",
"af_quantity":"1"
}
]
}
Attention
Les événements in-app complexes entraîneront des problèmes de postback avec Facebook et Criteo. Si vous avez besoin de mapper entièrement l’événement avec Facebook et Criteo, vous devez envoyer des événements séparés par chaque action utilisateur, par exemple envoyer un événement Ajouter au chariot pour chaque élément ajouté. En utilisant les données brutes d'événements in-app, vous pouvez regrouper ces événements.
Enregistrement des évènements hors ligne
- Le SDK envoie les événements aux serveurs AppsFlyer et attend une réponse.
- Si le SDK ne reçoit pas une réponse 200, l'événement est stocké dans le cache.
- Une fois que la réponse 200 suivante est reçue, l'événement stocké est renvoyé au serveur.
- S'il y a plusieurs événements dans le cache, ils sont envoyés au serveur les uns après les autres.
Remarque
Le cache du SDK peut stocker jusqu’à 40 événements, ce qui signifie que seuls les 40 premiers événements survenus hors ligne sont enregistrés. Tout ce qui vient après, jusqu'à la prochaine réponse 200, n'est pas retenu.
L'heure de l'événement qui apparaît dans les données brutes est l'heure à laquelle l'événement est envoyé à AppsFlyer après la reconnexion en ligne de l'appareil. Ce n'est pas le moment où l'événement a eu lieu.
Déduplication d'événements
AppsFlyer dispose d'un mécanisme de déduplication d'événements in-app. Il vérifie tous les événements in-app afin de savoir si un événement in-app identique provenant du même appflyer_id est apparu moins de 10 secondes auparavant. Si un tel événement est trouvé, le mécanisme supprime le doublon.
Deux événements sont considérés comme identiques si les champs suivants sont identiques dans les deux événements :
- Nom de l'événement
- Valeur de l'événement
- ID d'app
- ID AppsFlyer
Remarque
La déduplication ne fonctionne que pour les événements in-app envoyés à partir du SDK.
Les événements in-app S2S ne sont pas dédupliqués.
Dans cette section, nous répertorions des ensembles complets d'évènements in-app pour plusieurs secteurs. Chaque secteur de cette section contient des évènements in-app soigneusement sélectionnés que nous vous recommandons d'enregistrer.
Pour commencer à enregistrer les évènements in-app :
- Sélectionnez votre secteur.
- Sélectionnez les évènements in-app que vous souhaitez enregistrer. Nous vous recommandons d'enregistrer tous les évènements indiqués pour votre secteur.
- Copiez les extraits de code pour chaque événement in-app et implémentez-les dans votre app, le cas échéant.
Si vous souhaitez découvrir les événements in-app les plus populaires mappés par taille d'app et par verticale, cliquezici.
Gaming
Les apps de gaming comprennent les jeux d'arcade, de stratégie, éducatifs et même d'argent. Les évènements que nous vous recommandons d'enregistrer dans les apps de gaming sont les achats in-app, les partages sur les réseaux sociaux et les invitations d'amis. Passer un niveau dans un jeu et compléter un tutoriel dans le jeu peuvent également constituer des évènements supplémentaires. Voici quelques exemples illustrant comment l'enregistrement de ces évènements peut vous être utile :
- Enregistrer les achats in-app peut vous aider à comprendre quelles offres les utilisateurs achètent le plus.
- Enregistrer le passage d'un niveau vous aide à comprendre à quel point les utilisateurs sont engagés.
- Enregistrer les évènements de partage et d'invitation vous aide à comprendre combien d'utilisateurs partagent et invitent d'autres joueurs, et sur quelles plates-formes de réseau social ils le font.
Astuce
Les événements abordés ici sont également pertinents pour les applications de gaming qui s'exécutent sur les plates-formes suivantes :
- Android Smart TV
- Apple TV (tvOS)
- Amazon Fire TV
- Xbox
- Appareils mobiles Windows
Connexion
Nom d’événement : af_login
Objectif
Cet évènement peut vous aider à déterminer le taux de rétention de vos utilisateurs inscrits.
Logique de déclenchement
Déclenchez cet événement à chaque fois que l'utilisateur se connecte.
Champs recommandés
Cet événement peut être envoyé sans champ supplémentaire.
Exemples de code
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.LOGIN, null);
[[AppsFlyerLib shared] logEvent:AFEventLogin withValues: nil];
AppsFlyerLib.shared().logEvent(AFEventLogin, withValues: nil);
AppsFlyer.sendEvent ("af_login", null);
Inscription complète
Nom d'événement : af_complete_registration
Objectif
Vous pouvez enregistrer l'inscription d'utilisateurs et la comparer avec d'autres données pour en savoir plus sur vos utilisateurs. En enregistrant les évènements d'inscription des utilisateurs, vous pouvez :
- Découvrir le nombre d'utilisateurs qui ont installé l'app mais qui ne se sont jamais inscrits.
- Découvrir les méthodes d'inscription préférées des utilisateurs.
Logique de déclenchement
Le meilleur moyen d'enregistrer cet évènement est de le déclencher lorsque l'utilisateur achève le processus d'inscription.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_registration_method | chaîne | email, facebook | Le type de méthode d'inscription |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.REGSITRATION_METHOD, "Facebook");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.COMPLETE_REGISTRATION, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventCompleteRegistration
withValues: @{
AFEventParamRegistrationMethod: @"Facebook"
}];
AppsFlyerLib.shared().logEvent(AFEventCompleteRegistration,
withValues: [
AFEventParamRegistrationMethod: "Facebook"
]);
Dictionary<string, string> CompletedRegistrationEvent = new Dictionary<string, string>();
CompletedRegistrationEvent.Add("af_registration_method", "Facebook");
AppsFlyer.sendEvent ("af_complete_registration", CompletedRegistrationEvent);
Achat
Nom d’événement : af_purchase
Objectif
De nombreuses apps de gaming permettent aux utilisateurs d'acheter des articles, par exemple des pièces, des pierres précieuses, des armes, etc. L'évènement Achat vous aide à enregistrer les achats in-app effectués par les utilisateurs. En enregistrant les achats, vous pouvez :
- Déterminer la LTV de vos utilisateurs et le ROI de vos campagnes sur les réseaux publicitaires et les agences de publicité.
- Déterminer quelles offres sont les plus populaires auprès de vos utilisateurs.
- Réaliser une référence croisée des campagnes avec les articles achetés de façon à optimiser le ciblage de vos campagnes.
Logique de déclenchement
Pour enregistrer correctement cet évènement, vous devez le déclencher lorsque l'utilisateur arrive sur la page de remerciement suite à un achat réussi.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_revenue | float | 2000 | Le revenu estimé provenant de l'achat |
af_currency | chaîne | THB / USD | Le code de devise |
af_quantity | int | 2 | Le nombre d'articles achetés |
af_content_id | chaîne | 001, 092 | L'ID de l'article |
af_order_id | chaîne | 9277 | L'ID de commande |
af_receipt_id | chaîne | 9277 | L'ID de reçu |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.REVENUE, 200);
eventValue.put(AFInAppEventParameterName.CURRENCY, "USD");
eventValue.put(AFInAppEventParameterName.QUANTITY, 2);
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "092");
eventValue.put(AFInAppEventParameterName.ORDER_ID, "9277");
eventValue.put(AFInAppEventParameterName.RECEIPT_ID, "9277");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(),AFInAppEventType.PURCHASE, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventPurchase
withValues: @{
AFEventParamRevenue: @200,
AFEventParamCurrency: @"USD",
AFEventParamQuantity: @2,
AFEventParamContentId: @"092",
AFEventParamOrderId: @"9277",
AFEventParamReceiptId: @"9277"
}];
AppsFlyerLib.shared().logEvent(AFEventPurchase,
withValues: [
AFEventParamRevenue: 200,
AFEventParamCurrency: "THB",
AFEventParamQuantity: 2,
AFEventParamContentId: "092",
AFEventParamOrderId: "9277",
AFEventParamReceiptId: "9277"
]);
Dictionary<string, string> purchaseEvent = new Dictionary<string, string>();
purchaseEvent.Add("af_revenue", "200");
purchaseEvent.Add("af_currency", "USD");
purchaseEvent.Add("af_quantity", "2");
purchaseEvent.Add("af_content_id", "001");
purchaseEvent.Add("af_order_id", "9277");
purchaseEvent.Add("af_receipt_id", "9277");
AppsFlyer.sendEvent ("af_purchase", purchaseEvent);
Niveau atteint
Nom d’événement : af_level_achieved
Objectif
L'un des principaux objectifs des utilisateurs est de progresser dans les jeux. Le passage de niveaux déverrouille souvent de nouvelles fonctionnalités et étapes dans le jeu, qui encouragent les utilisateurs à continuer à jouer. L'évènement Niveau atteint vous permet d'enregistrer l'engagement de l'utilisateur avec votre app. En enregistrant les niveaux atteints par les utilisateurs, vous pouvez :
- Déterminer quelles campagnes génèrent le plus d'utilisateurs actifs.
- Découvrir quels types d'utilisateurs sont les plus actifs et engagés.
- Associer l'activité globale de l'utilisateur à des dimensions telles que le revenu, etc.
Logique de déclenchement
Pour enregistrer correctement cet évènement, vous devez le déclencher lorsque l'utilisateur arrive sur la page d'achèvement d'un niveau.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_level | int | 3 | Le niveau atteint par l'utilisateur. |
af_score | int | 500 | Le score associé à l'achèvement de l'utilisateur |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.LEVEL, 10);
eventValue.put(AFInAppEventParameterName.SCORE, 500);
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.LEVEL_ACHIEVED, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventLevelAchieved
withValues: @{
AFEventParamLevel: @10,
AFEventParamScore: @500
}];
AppsFlyerLib.shared().logEvent(AFEventLevelAchieved,
withValues: [
AFEventParamLevel: 3,
AFEventParamScore: 500
]);
Dictionary<string, string> LevelAchievedEvent = new Dictionary<string, string>();
LevelAchievedEvent.Add("af_level", "10");
LevelAchievedEvent.Add("af_score", "500");
AppsFlyer.sendEvent ("af_level_achieved", LevelAchievedEvent);
Achèvement du tutoriel
Nom d’événement : af_tutorial_completion
Objectif
Les tutoriels aident vos utilisateurs à apprendre à mieux utiliser votre app. En enregistrant l'achèvement du tutoriel, vous pouvez :
- Découvrir les sujets qui posent problème aux utilisateurs.
- Découvrir quels tutoriels n'obtiennent pas de bons résultats pour les améliorer.
Logique de déclenchement
Il existe deux scénarios dans lesquels cet événement doit être déclenché :
- Lorsque l'utilisateur achève le tutoriel. Un événement sera envoyé avec un champ indiquant l'aboutissement réussi du tutoriel.
- Lorsque l'utilisateur commence le tutoriel mais le ferme sans l'avoir abouti. Lorsque l'utilisateur quitte, un événement est envoyé avec un champ indiquant que l'utilisateur n'est pas allé au bout du tutoriel.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_success | booléen | true | Que l'utilisateur ait achevé le tutoriel ou non |
af_tutorial_id | chaîne | 3 | L'ID du tutoriel |
af_content | chaîne | Mise en route | Le nom du tutoriel |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.SUCCESS, true);
eventValue.put(AFInAppEventParameterName.TUTORIAL_ID, "3");
eventValue.put(AFInAppEventParameterName.CONTENT, "Getting Started");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.TUTORIAL_COMPLETION, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventTutorial_completion
withValues: @{
AFEventParamSuccess: @TRUE,
AFEventParamTutorialId: @"3",
AFEventParamContent: @"Getting Started"
}];
AppsFlyerLib.shared().logEvent(AFEventTutorial_completion,
withValues: [
AFEventParamSuccess: true,
AFEventParamTutorialId: "3",
AFEventParamContent: "Getting started"
]);
Dictionary<string, string> TutorialCompletiondEvent = new Dictionary<string, string>();
TutorialCompletiondEvent.Add("af_success", "true");
TutorialCompletiondEvent.Add("af_tutorial_id", "3");
TutorialCompletiondEvent.Add("af_tutorial_content", "Getting started");
AppsFlyer.sendEvent ("af_tutorial_completion", TutorialCompletiondEvent);
Partage
Nom d’événement : af_share
Objectif
Les utilisateurs aiment partager leurs réussites dans les jeux sur les réseaux sociaux. Le partage créé la reconnaissance de la marque et peut inciter d'autres utilisateurs à télécharger et installer votre app. En enregistrant l'évènement Partage, vous pouvez déterminer le moment où les utilisateurs sont le plus susceptibles de partager l'app avec leurs amis.
Astuce
Le SDK AppsFlyer dispose de méthodes dédiées permettant d'enregistrer les partages et les invitations.
Logique de déclenchement
Pour enregistrer correctement cet évènement, vous devez le déclencher lorsque un utilisateur publie avec succès un partage sur les réseaux sociaux :
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_description | chaîne | Nouveau meilleur score / Niveau supérieur atteint / Jeu gagné | La raison du partage sur les réseaux sociaux. Cela pourrait être un nouveau meilleur score, le passage à un niveau supérieur, etc. |
plate-forme | chaîne | Facebook, Whatsapp, Email | La plate-forme sur laquelle l'utilisateur partage |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.DESCRIPTION, "New High Score");
eventValue.put("platform", "Facebook");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.SHARE, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventShare
withValues: @{
AFEventParamDescription: @"New High Score",
@"platform": @"Facebook"
}];
AppsFlyerLib.shared().logEvent(AFEventShare,
withValues: [
AFEventParamDescription: "New High Score",
"platform": "Facebook"
]);
Dictionary<string, string> ShareEvent = new Dictionary<string, string>();
ShareEvent.Add("af_description", "New High Score");
ShareEvent.Add("platform", "Facebook");
AppsFlyer.sendEvent ("af_share", ShareEvent);
Invitation
Nom d’événement : af_invite
Objectif
Les utilisateurs invitent souvent leurs amis à télécharger et installer une app. Les utilisateurs souhaitent souvent partager l'app, et il arrive par ailleurs qu'ils soient récompensés lorsqu'ils invitent d'autres personnes. Vous pouvez enregistrer les invitations à l'aide de l'évènement Invitation. En enregistrant cet évènement, vous pouvez :
- Découvrir sur quels réseaux sociaux les utilisateurs envoient habituellement des invitations à leurs amis.
- Découvrir combien d'utilisateurs ont invité leurs amis à télécharger et installer l'app.
Logique de déclenchement
Pour enregistrer cet correctement évènement, vous devez le déclencher lorsque l'utilisateur a invité avec succès un ami à télécharger et installer l'app.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_description | chaîne | Essayez cette app | Le contexte de l'invitation |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.DESCRIPTION, "Try this app");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.INVITE, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventInvite
withValues: @{
AFEventParamDescription: @"Try this app"
}];
AppsFlyerLib.shared().logEvent(AFEventInvite, withValues: [
AFEventParamDescription: "Try this app"
]);
Dictionary<string, string> InviteEvent = new Dictionary<string, string>();
InviteEvent.Add("af_description", "Try this app");
AppsFlyer.sendEvent ("af_invite", InviteEvent);
Bonus réclamé
Nom d’événement : bonus_claimed
Objectif
En enregistrant l'évènement Bonus réclamé, vous pouvez :
- Voir combien d'utilisateurs ont réclamé les bonus qui leur sont offerts.
- Associer les bonus réclamés à l'activité et à l'engagement de l'utilisateur.
Logique de déclenchement
Pour enregistrer correctement cet évènement, vous devez le déclencher lorsque l'utilisateur réclame un bonus et il est mis à jour dans son compte.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
bonus_type | chaîne | pièces | Le type de bonus réclamé par l'utilisateur |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put("bouns_type", "coins");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "bonus_claimed", eventValue);
[[AppsFlyerLib shared] logEvent:@"bonus_claimed"
withValues: @{
@"bonus_type": @"coins"
}];
AppsFlyerLib.shared().logEvent("bonus_claimed", withValues: [
"bouns_type": "coins"
]);
Dictionary<string, string> BonusClaimedEvent = new Dictionary<string, string>();
BonusClaimedEvent.Add("bouns_type", "coins");
AppsFlyer.sendEvent ("bonus_type", BonusClaimedEvent);
e-commerce
Les apps d'e-commerce permettent aux acheteurs de rechercher et d'acheter facilement des produits en ligne. L'une des principales fonctionnalités des apps d'e-commerce consiste à permettre aux acheteurs de comparer les prix afin de faire des économies. Nous vous recommandons d'implémenter l'enregistrement des évènements dans votre app d'e-commerce. L'enregistrement des évènements peut vous aider à obtenir des informations précieuses sur ce que les personnes recherchent et achètent.
Nous vous recommandons d'enregistrer les évènements de recherche, d'achat, d'ajout au panier et d'ajout à la liste d'envies. En enregistrant ces évènements, vous pouvez :
- Mettre en évidence les catégories les plus populaires.
- Voir ce que les acheteurs recherchent.
- Enregistrer combien d'acheteurs ont effectué le paiement.
- Découvrir combien d'acheteurs sont des acheteurs récurrents et combien sont des acheteurs uniques.
Inscription complète
Nom d'événement : af_complete_registration
Objectif
L'objectif de l'évènement Enregistrement complet consiste à enregistrer le nombre d'utilisateurs enregistrés après avoir téléchargé et installé l'app. Vous pouvez également enregistrer la méthode d'enregistrement, par exemple Facebook, email, etc.
Logique de déclenchement
Déclenchez cet événement après l'inscription réussie d'un utilisateur.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_registration_method | chaîne | Facebook, Google, email | La méthode que choisit l'utilisateur pour s'inscrire |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.REGSITRATION_METHOD,"Facebook");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(),AFInAppEventType.COMPLETE_REGISTRATION, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventCompleteRegistration
withValues: @{
AFEventParamRegistrationMethod: @"Facebook"
}];
AppsFlyerLib.shared().logEvent(AFEventCompleteRegistration,
withValues: [
AFEventParamRegistrationMethod: "Facebook"
]);
Dictionary<string, string> CompleteRegistrationEvent = new Dictionary<string, string>();
CompleteRegistrationEvent.Add("af_registration_method", "Facebook");
AppsFlyer.sendEvent("af_complete_registration", CompleteRegistrationEvent);
Connexion
Nom d’événement : af_login
Objectif
L'évènement Connexion vous permet d'enregistrer le nombre d'utilisateurs qui se connectent à leur compte. Avec l'évènement Connexion, vous pouvez enregistrer :
- Le nombre d'utilisateurs actifs.
- Le moment où les utilisateurs sont les plus actifs.
Logique de déclenchement
Déclenchez cet événement lorsque l'utilisateur se connecte avec succès.
Champs recommandés
Cet événement peut être envoyé sans aucun champ supplémentaire.
Exemples de code
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.LOGIN, null);
[[AppsFlyerLib shared] logEvent:AFEventLogin withValues: nil];
AppsFlyerLib.shared().logEvent(AFEventLogin, withValues: nil);
AppsFlyer.sendEvent("af_login", null);
Recherche
Nom d’événement : af_search
Objectif
En enregistrant les évènements Recherche, vous pouvez déterminer ce que les utilisateurs recherchent. Vous pouvez également découvrir quels résultats de recherche sont les plus pertinents pour eux. De plus, vous pouvez enregistrer les résultats de recherche qui conduisent à un achat.
Logique de déclenchement
Vous devez déclencher cet événement dans l'un des deux scénarios suivants :
- Lorsque l'utilisateur clique sur le bouton de recherche.
- Lorsque l'utilisateur atterrit sur la page des résultats de la recherche.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_search_string | chaîne | robe rouge, chaussures de course | Le terme de recherche |
af_content_list | tableau de chaînes | 001, 092 | La liste des ID Contenu |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.SEARCH_STRING, "red shoes");
eventValue.put(AFInAppEventParameterName.CONTENT_LIST, new String[] {"001", "092"});
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.SEARCH, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventSearch
withValues: @{
AFEventParamSearchString: @"red shoes",
AFEventParamContentList: @[@"001", @"092"]
}];
AppsFlyerLib.shared().logEvent(AFEventSearch, withValues: [
AFEventParamSearchString: "red shoes",
AFEventParamContentList: ["001", "092"]
]);
Dictionary<string, string> SearchEvent = new Dictionary<string, string>();
SearchEvent.Add("af_search_string", "red shoes");
SearchEvent.Add("af_content_list", "['001', '092']");
AppsFlyer.sendEvent("af_search", SearchEvent);
Vue du contenu
Nom d’événement : af_content_view
Objectif
L'évènement Affichage du contenu peut vous permettre d'enregistrer le nombre de vues de certains produits. L'enregistrement de cet évènement vous permet de :
- Mettre en corrélation les vues du produit avec les ventes du produit.
- Comprendre quelles catégories sont les plus populaires selon les vues du produit.
- Voir la corrélation entre la devise des acheteurs et les produits qu'ils consultent.
Logique de déclenchement
Vous devez déclencher cet événement lorsque l'utilisateur consulte la page d'informations d'un produit spécifique.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_price | float | 2000 | Le prix du produit |
af_content_id | chaîne | 102 | ID du produit |
af_content_type | chaîne | chaussures | Catégorie du produit |
af_currency | chaîne | THB, USD | La devise sur la page d'informations du produit |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.PRICE, 2000);
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "102";
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "shoes");
eventValue.put(AFInAppEventParameterName.CURRENCY, "USD");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.CONTENT_VIEW, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventContentView
withValues: @{
AFEventParamPrice: @2000,
AFEventParamContentId: @"102",
AFEventParamContentType: @"shoes",
AFEventParamCurrency: @"USD"
}];
AppsFlyerLib.shared().logEvent(AFEventContentView,
withValues: [
AFEventParamPrice: 2000,
AFEventParamContentId: "102",
AFEventParamContentType: "shoes",
AFEventParamCurrency: "USD"
]);
Dictionary<string, string> ContentViewEvent = new Dictionary<string, string>();
ContentViewEvent.Add("af_price", "2000");
ContentViewEvent.Add("af_content_type", "shoes");
ContentViewEvent.Add("af_currency", "USD");
AppsFlyer.sendEvent("af_content_view", ContentViewEvent);
Vue de liste
Nom d’événement : af_list_view
Objectif
Il est fréquent pour les plates-formes d'e-commerce de gérer des listes indiquant les produits par catégorie : produits ajoutés récemment, produits connexes, produits recommandés, etc. L'évènement Vue de liste peut vous aider à enregistrer les listes que les acheteurs consultent le plus.
Logique de déclenchement
Déclenchez cet événement lorsque l'acheteur consulte une liste spécifique.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_content_type | chaîne | connexe, recommandé, nouveautés | Le type de liste |
af_content_list | tableau de chaînes | 001, 092 | Liste des ID contenu de la catégorie |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "related products");
eventValue.put(AFInAppEventParameterName.CONTENT_LIST, new String[] {"001", "092"});
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "af_list_view", eventValue);
[[AppsFlyerLib shared] logEvent:AFEventListView
withValues: @{
AFEventParamContentType: @"related products",
AFEventParamContentList: @[@"001", @"092"]
}];
AppsFlyerLib.shared().logEvent(AFEventListView,
>withValues: [
AFEventParamContentType: "related products",
AFEventParamContentList: ["001", "092"]
]);
Dictionary<string, string> ListViewEvent = new Dictionary<string, string>();
ListViewEvent.Add("af_content_type", "related products");
ListViewEvent.Add("af_content_list", "['001', '092']");
AppsFlyer.sendEvent("af_list_view", ListViewEvent);
Ajouter à la wishlist
Nom d’événement : af_add_to_wishlist
Objectif
En enregistrant l'évènement Ajouter à la liste d'envies, vous pouvez enregistrer les produits et les catégories que les acheteurs ajoutent à leur liste d'envies. Une fois que vous savez quels produits sont souvent ajoutés aux listes de vœux, vous pouvez offrir des remises sur ces produits afin d'inciter les acheteurs à les acheter. Vous pouvez également recibler ces utilisateurs selon les produits qu'ils ont ajouté à leur liste d'envies.
Logique de déclenchement
Déclenchez cet événement lorsque les acheteurs ajoutent des articles à leur liste de vœux.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_price | float | 600 | Le prix du produit |
af_content_id | chaîne | 300 | ID du produit |
af_content_type | chaîne | chaussures, électronique | Catégorie du produit |
af_currency | chaîne | GBP | La devise affichée sur la page d'informations du produit |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.PRICE, 600);
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "300");
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "electronics");
eventValue.put(AFInAppEventParameterName.CURRENCY, "GBP");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.ADD_TO_WISH_LIST, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventAddToWishlist
withValues: @{
AFEventParamPrice: @600,
AFEventParamContentId: @"300",
AFEventParamContentType: @"electronics",
AFEventParamCurrency: @"GBP"
}];
AppsFlyerLib.shared().logEvent(AFEventAddToWishlist,
withValues: [
AFEventParamPrice: 600,
AFEventParamContentId: "300",
AFEventParamContentType: "electronics",
AFEventParamCurrency: "GBP"
]);
Dictionary<string, string> AddToWishListEvent =
new Dictionary<string, string>();
AddToWishListEvent.Add("af_price", "600");
AddToWishListEvent.Add("af_content_id", "300");
AddToWishListEvent.Add("af_content_type", "electronics");
AddToWishListEvent.Add("af_currency", "GBP");
AppsFlyer.sendEvent("af_add_to_wishlist", AddToWishListEvent);
Ajouter au panier
Nom d’événement : af_add_to_cart
Objectif
L'objectif de l'évènement Ajouter au panier est d'enregistrer les ajouts de produits dans le panier. En enregistrant cet évènement, vous pouvez :
- Découvrir combien de produits en moyenne les acheteurs ajoutent lors d'un achat.
- Découvrir combien de temps s'écoule entre l'ajout de deux produits différents.
- Découvrir combien d'acheteurs abandonnent leur panier.
Logique de déclenchement
Déclenchez cet événement lorsque l'acheteur ajoute un produit au panier.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_price | float | 350, 1000 | Prix du produit |
af_content_id | chaîne | 001, 092 | ID du produit |
af_content_type | chaîne | chemise, chaussures | type de produit |
af_currency | chaîne | THB, USD | Devise du produit |
af_quantity | float | 2, 5 | Combien d'articles du même produit ont été ajoutés au panier |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.PRICE, 350);
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "001");
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "shirt");
eventValue.put(AFInAppEventParameterName.CURRENCY, "USD");
eventValue.put(AFInAppEventParameterName.QUANTITY, 2);
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.ADD_TO_CART, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventAddToCart
withValues: @{
AFEventParamPrice: @350,
AFEventParamContentId: @"001",
AFEventParamContentType: @"shirt",
AFEventParamCurrency: @"USD",
AFEventParamQuantity: @2
}];
AppsFlyerLib.shared().logEvent(AFEventAddToCart, withValues: [
AFEventParamPrice: 350,
AFEventParamContentId: "001",
AFEventParamContentType: "shirt",
AFEventParamCurrency: "USD",
AFEventParamQuantity: 2
]);
Dictionary<string, string> AddToCartEvent = new Dictionary<string, string>();
AddToCartEvent.Add("af_price", "350");
AddToCartEvent.Add("af_content_id", "001");
AddToCartEvent.Add("af_content_type", "shirt");
AddToCartEvent.Add("af_currency", "USD");
AddToCartEvent.Add("af_quantity", "2");
AppsFlyer.sendEvent("af_add_to_cart", AddToCartEvent);
Paiement initié
Nom d’événement : af_initiated_checkout
Objectif
Enregistrer l'évènement Paiement initié peut vous aider à comprendre la façon dont les acheteurs se comportent lorsqu'ils procèdent au paiement. Par exemple, vous pouvez :
- Voir le prix moyen lorsque les acheteurs procèdent au paiement et le comparer au prix moyen de l'événement d'achat.
- Voir si les utilisateurs ajoutent ou retirent des produits au moment de passer au paiement.
Logique de déclenchement
Déclenchez cet événement lorsque l'acheteur initie le paiement, mais qu'il ne l'a pas encore effectué.
Champs recommandés
Astuce
S'il y a plusieurs produits de différentes catégories, utilisez des tableaux pour envoyer les données.
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_price | float | 4000 | Prix total du panier |
af_content_id | chaîne ou tableau de chaînes | 221, 124 | ID des produits dans le panier |
af_content_type | chaîne ou tableau de chaînes | chemise, pantalons | Liste des catégories de produits |
af_currency | chaîne | THB | Devise au moment du paiement |
af_quantity | valeur entière ou tableau de valeurs entières | 2, 5 | Total d'articles dans le panier |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.PRICE, 350);
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "221");
// for multiple product categories, set the param value as: new String {"221", "124"}
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "shirt");
// for multiple product categories,, set the param value as: new String {"shirt", "pants"}
eventValue.put(AFInAppEventParameterName.CURRENCY, "USD");
eventValue.put(AFInAppEventParameterName.QUANTITY, 2);
// for multiple product categories,, set the param value as: new int {2, 5}
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.INITIATED_CHECKOUT, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventInitiatedCheckout
withValues: @{
AFEventParamPrice: @350,
AFEventParamContentId: @"221",
// for multiple product categories, set the param value as: @[@"221", @"124"]
AFEventParamContentType: @"shirt",
// for multiple product categories, set the param value as: @[@"shirt", @"pants"]
AFEventParamCurrency: @"USD",
AFEventParamQuantity: @2
// for multiple product categories, set the param value as: @[@2, @5]
}];
AppsFlyerLib.shared().logEvent(AFEventInitiatedCheckout,
withValues: [AFEventParamPrice: 350,
AFEventParamContentId: "221",
// for multiple product categories, set the param value as: ["221", "124"]*/
AFEventParamContentType: "shirt",
// for multiple product categories, set the param value as: ["shirt", "pants"] AFEventParamCurrency: "USD",
AFEventParamQuantity: 2
//for multiple product categories, set the param value as: [2, 5]
]);
Dictionary<string, string> InitiatedCheckoutEvent = new Dictionary<string, string>();
InitiatedCheckoutEvent.Add("af_price", "350");
InitiatedCheckoutEvent.Add("af_content_id", "001");
InitiatedCheckoutEvent.Add("af_content_type", "shirt");
InitiatedCheckoutEvent.Add("af_currency", "USD");
InitiatedCheckoutEvent.Add("af_quantity", "2");
AppsFlyer.sendEvent ("af_initiated_checkout", InitiatedCheckoutEvent);
Achat
Nom d’événement : af_purchase
Objectif
L'évènement Achat compte parmi les évènements les plus importants du e-commerce. Enregistrer l'évènement Achat peut vous en dire beaucoup sur les tendances d'achat de votre app d'e-commerce. En enregistrant l'évènement Achat, vous pouvez :
- Voir globalement combien d'utilisateurs sont réellement des acheteurs.
- Enregistrer les acheteurs les plus actifs et recibler les offres en fonction de leur historique d'achats.
- Découvrir quels produits et catégories obtiennent de bons résultats en termes d'achats globaux.
- Enregistrer les revenus générés par les achats en fonction des produits et des catégories.
- Enregistrer les revenus générés en fonction des campagnes et des sources médias.
Logique de déclenchement
Déclenchez cet événement lorsqu'un acheteur termine ses achats mais qu'il n'a pas encore forcément procédé au paiement.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_revenue | float | 1200 | Revenu des achats |
af_price | float | 4000 | Montant global des achats |
af_content_id | chaîne | 121, 262 | ID de l'article |
af_content_type | chaîne | chaussures, pantalons | Catégorie de l'article |
af_currency | chaîne | AUD | Devise |
af_quantity | int | 2, 5 | Nombre d'articles dans le panier |
af_order_id | chaîne | X123ABC | ID de la commande qui est généré après l'achat. |
af_receipt_id | chaîne | X123ABC | ID de la commande, mais nécessaire pour l'intégration du retargeting CRITEO et Google AdWords |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.PRICE, 350);
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "221");
// for multiple product categories, set the param value as: // new String {"221", "124"}
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "shirt");
// for multiple product categories,, set the param value as: new String {"shoes", "pants"}
eventValue.put(AFInAppEventParameterName.CURRENCY, "USD");
eventValue.put(AFInAppEventParameterName.QUANTITY, 2);
// for multiple product categories, set the param value as: new int {2, 5}
eventValue.put(AFInAppEventParameterName.RECEIPT_ID, "X123ABC");
eventValue.put("af_order_id", "X123ABC");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.PURCHASE, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventPurchase
withValues: @{
AFEventParamRevenue: @1200,
AFEventParamPrice: @4000,
AFEventParamContentId: @"221",
// for multiple product categories, set the param value as:
// @[@"221", @"124"]
AFEventParamContentType: @"shirt",
// for multiple product categories, set the param value as:
// @[@"shoes", @"pants"]
AFEventParamCurrency: @"USD",
AFEventParamQuantity: @2,
// for multiple product categories, set the param value as:
// @[@2, @5]
AFEventParamOrderId: @"X123ABC",
AFEventParamReceiptId: @"X123ABC"
}];
AppsFlyerLib.shared().logEvent(AFEventPurchase, withValues: [
AFEventParamRevenue: 1200,
AFEventParamPrice: 4000,
AFEventParamContentId: "221",
// for multiple product categories, set the param value as: ["221", "124"],
AFEventParamContentType: "shirt",
// for multiple product categories, set the param value as: ["shoes", "pants"]
AFEventParamCurrency: "USD",
AFEventParamQuantity: 2,
// for multiple product categories, set the param value as: [2, 5]
AFEventParamOrderId: "X123ABC",
AFEventParamReceiptId: "X123ABC"
]);
Dictionary<string, string> PurchaseEvent = new Dictionary<string, string>();
PurchaseEvent.Add("af_revenue", "1200");
PurchaseEvent.Add("af_price", "4000");
PurchaseEvent.Add("af_content_id", "121");
// for multiple product categories, set the param value as: ["221", "124"]
PurchaseEvent.Add("af_content_type", "shoes");
// for multiple product categories, set the param value as: ["shirt", "pants"]
PurchaseEvent.Add("af_currency", "USD");
PurchaseEvent.Add("af_quantity", "2");
// for multiple product categories, set the param value as: [2, 5]
PurchaseEvent.Add("af_order_id", "X123ABC");
PurchaseEvent.Add("af_receipt_id", "X123ABC");
AppsFlyer.sendEvent ("af_purchase", PurchaseEvent);
Achat finalisé
Nom d’événement : completed_purchase
Objectif
Enregistrer l'évènement Achat achevé peut vous aider à analyser le nombre d'achats entièrement réglés.
Logique de déclenchement
Lorsqu'un utilisateur paie son achat, l'événement peut être envoyé en utilisant S2S puisque cet événement se produit dans le back-end.
Important !
Cet événement doit être envoyé si le paiement est effectué hors ligne, par ex. transfert bancaire ou paiement à la livraison. Si vous envoyez cet événement, assurez-vous que l'événement Achat (af_purchase
) ne contient pas le paramètre af_revenue
. Si vous envoyez les deux événements avec le paramètre af_revenue
, le revenu est doublé.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_revenue | float | 4000 | Revenu généré par les achats |
af_order_id | chaîne | X123ABC | ID de la commande généré par les achats |
af_receipt_id | chaîne | X123ABC | ID de reçu généré pour l'acheteur |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.REVENUE, 4000);
eventValue.put(AFInAppEventParameterName.RECEIPT_ID, "X123ABC");
eventValue.put("af_order_id" "X123ABC");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "completed_purchase", eventValue);
[[AppsFlyerLib shared] logEvent:@"completed_purchase"
withValues: @{
AFEventParamRevenue: @4000,
AFEventParamOrderId: @"X123ABC",
AFEventParamReceiptId: @"X123ABC"
}];
AppsFlyerLib.shared().logEvent("completed_purchase", withValues: [
AFEventParamRevenue: 4000,
AFEventParamOrderId: "X123ABC",
AFEventParamReceiptId: "X123ABC"
]);
Dictionary<string, string> CompletedPurchaseEvent = new Dictionary<string, string>();
CompletedPurchaseEvent.Add("af_revenue", "1200");
CompletedPurchaseEvent.Add("af_order_id", "X123ABC");
CompletedPurchaseEvent.Add("af_receipt_id", "X123ABC");
AppsFlyer.sendEvent ("completed_purchase", CompletedPurchaseEvent);
Retirer du panier
Nom d’événement : remove_from_cart
Objectif
En enregistrant l'évènement Retirer du panier, vous pouvez :
- Voir quels articles les acheteurs retirent de leur panier.
- Voir les catégories produit des articles que les acheteurs retirent de leur panier.
- Comparez les données de l'événement Ajouter au panier pour obtenir des informations sur les produits qui ne parviennent pas jusqu'au paiement.
Logique de déclenchement
Déclenchez cet événement lorsqu'un acheteur retire un article de son panier.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_content_id | chaîne | 521 | ID de l'article ou du produit |
af_content_type | chaîne | chaussures | Catégorie de l'article ou du produit |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "521");
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "shoes");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "remove_from_cart", eventValue);
[[AppsFlyerLib shared] logEvent:@"remove_from_cart"
withValues: @{
AFEventParamContentId: @"521",
AFEventParamContentType: @"shoes",
}];
AppsFlyerLib.shared().logEvent("remove_from_cart", withValues: [
AFEventParamContentId: "521",
AFEventParamContentType: "shoes",
]);
Dictionary<string, string> RemoveFromCartEvent = new Dictionary<string, string>();
RemoveFromCartEvent.Add("af_content_id", "521");
RemoveFromCartEvent.Add("af_content_type", "shoes");
AppsFlyer.sendEvent ("remove_from_cart", RemoveFromCartEvent);
Premier achat
Nom d’événement : first_purchase
Objectif
Cet événement est le même que l'événement Achat. Cependant, contrairement à l'événement Achat, l'événement Premier achat peut être utilisé pour :
- Voir combien de temps il faut à un nouvel acheteur pour procéder à l'achat
- Voir quels produits les nouveaux acheteurs préfèrent acheter.
- Voir le prix moyen et le revenu provenant des nouveaux achats.
Logique de déclenchement
Déclenchez cet événement lorsque l'utilisateur finalise son premier achat.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_revenue | float | 1200 | Revenu des achats |
af_price | float | 4000 | Montant global des achats |
af_content_id | chaîne | 121, 262 | ID de l'article |
af_content_type | chaîne | chaussures, pantalons | Catégorie de l'article |
af_currency | chaîne | AUD | Devise |
af_quantity | int | 2, 5 | Quantité d'articles dans le panier |
af_order_id | chaîne | X123ABC | ID de la commande qui est généré après l'achat. |
af_receipt_id | chaîne | X123ABC | ID de la commande, mais nécessaire pour l'intégration du retargeting CRITEO et Google AdWords |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.PRICE, 350);
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "221");
// for multiple product categories, set the param value as: new String {"221", "124"}
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "shirt");
// for multiple product categories set the param value as: new String {"shoes", "pants"}
eventValue.put(AFInAppEventParameteName.CURRENCY, "USD");
eventValue.put(AFInAppEventParameterName.QUANTITY, 2);
// for multiple product categories, set the param value as: new int {2, 5}
eventValue.put(AFInAppEventParameterName.RECEIPT_ID, "X123ABC");
eventValue.put("af_order_id", "X123ABC");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "first_purchase", eventValue);
[[AppsFlyerLib shared] logEvent:("first_purchase")
withValues: @{
AFEventParamRevenue: @1200,
AFEventParamPrice: @4000,
AFEventParamContentId: @"221",
// for multiple product categories, set the param value as: @[@"221", @"124"]
AFEventParamContentType: @"shirt",
// for multiple product categories, set the param value as: @[@"shoes", @"pants"]
AFEventParamCurrency: @"USD",
AFEventParamQuantity: @2,
// for multiple product categories, set the param value as: @[@2, @5]
AFEventParamOrderId: @"X123ABC",
AFEventParamReceiptId: @"X123ABC"
}];
AppsFlyerLib.shared().logEvent("first_purchase", withValues: [
AFEventParamRevenue: 1200,
AFEventParamPrice: 4000,
AFEventParamContentId: "221",
// for multiple product categories, set the param value as: ["221", "124"]
AFEventParamContentType: "shirt",
// for multiple product categories, set the param value as: ["shoes", "pants"]
AFEventParamCurrency: "USD",
AFEventParamQuantity: 2,
// for multiple product categories, set the param value as: // [2, 5]
AFEventParamOrderId: "X123ABC",
AFEventParamReceiptId: "X123ABC"
]);
Dictionary<string, string> FirstPurchaseEvent = new Dictionary<string, string>();
FirstPurchaseEvent.Add("af_revenue", "1200");
FirstPurchaseEvent.Add("af_price", "4000");
FirstPurchaseEvent.Add("af_content_id", "121");
// for multiple product categories, set the param value as: ["221", "124"]
FirstPurchaseEvent.Add("af_content_type", "shoes");
// for multiple product categories, set the param value as: ["shirt", "pants"]
FirstPurchaseEvent.Add("af_currency", "USD");
FirstPurchaseEvent.Add("af_quantity", "2");
// for multiple product categories, set the param value as: [2, 5]
FirstPurchaseEvent.Add("af_order_id", "X123ABC");
FirstPurchaseEvent.Add("af_receipt_id", "X123ABC");
AppsFlyer.sendEvent ("first_purchase", FirstPurchaseEvent);
Divertissement : streaming
En raison de l'exigence croissante des utilisateurs pour des contenus à la demande, le marché des applications de streaming est devenu très compétitif. Si vous gérez et exécutez une apps de streaming de contenu à la demande, il est recommandé d'enregistrer les évènements dans l'app.
Astuce
Les événements abordés ici sont également pertinents pour les applications de streaming qui s'exécutent sur des téléviseurs intelligents, telles que :
- Android Smart TV
- Apple TV (tvOS)
- Amazon Fire TV
En enregistrant les évènements de votre application de streaming, vous pouvez :
- Voir quel contenu les utilisateurs consomment.
- Analyser et optimiser les campagnes selon la demande de contenu.
- Mesurer l'utilisation et l'engagement des utilisateurs.
Inscription complète
Nom d'événement : af_complete_registration
Objectif
L'objectif de l'évènement Enregistrement complet consiste à enregistrer le nombre d'utilisateurs enregistrés après avoir téléchargé et installé l'app. Vous pouvez également enregistrer la méthode d'enregistrement, par exemple Facebook, email, etc. pour déterminer la méthode d'inscription préférée des utilisateurs.
Logique de déclenchement
Déclenchez cet événement après l'inscription réussie d'un utilisateur.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_registration_method | chaîne | Facebook, Google, email | La méthode que choisit l'utilisateur pour s'inscrire |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.REGSITRATION_METHOD, "Facebook");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.COMPLETE_REGISTRATION, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventCompleteRegistration
withValues: @{
AFEventParamRegistrationMethod: @"Facebook"
}];
AppsFlyerLib.shared().logEvent(AFEventCompleteRegistration,
withValues: [
AFEventParamRegistrationMethod: "Facebook"
]);
Dictionary<string, string> CompleteRegistrationEvent = new Dictionary<string, string>();
CompleteRegistrationEvent.Add("af_registration_method", "Facebook");
AppsFlyer.sendEvent("af_complete_registration", CompleteRegistrationEvent);
Connexion
Nom d’événement : af_login
Objectif
L'évènement Connexion vous permet d'enregistrer le nombre d'utilisateurs qui se connectent à leur compte. Avec l'évènement Connexion, vous pouvez enregistrer :
- Le nombre d'utilisateurs actifs.
- Le moment où les utilisateurs sont les plus actifs.
Logique de déclenchement
Déclenchez cet événement lorsque l'utilisateur se connecte avec succès.
Champs recommandés
Cet événement peut être envoyé sans aucun champ supplémentaire.
Exemples de code
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.LOGIN, null);
[[AppsFlyerLib shared] logEvent:AFEventLogin withValues: nil];
AppsFlyerLib.shared().logEvent(AFEventLogin, withValues: nil);
AppsFlyer.sendEvent("af_login", null);
Démarrer l'essai
Nom d’événement : af_start_trial
Objectif
De nombreux services de streaming proposent aux utilisateurs une période d'essai leur permettant de découvrir les fonctionnalités premium. En enregistrant l'évènement Commencer l'essai, vous pouvez :
- Voir combien d'utilisateurs s'inscrivent à une période d'essai.
- Si l'essai a lieu dans le cadre d'une promotion ou d'une collaboration avec un partenaire, vous pouvez enregistrer la promotion qui a incité l'utilisateur à activer sa période d'essai.
Logique de déclenchement
Déclenchez cet événement lorsque l'utilisateur s'inscrit et active la période d'essai.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
trial_method | chaîne | gratuit avec le nouveau téléphone, gratuit avec l'opérateur téléphonique, promotion, code de réduction | La méthode pour activer l'essai |
trial_method_identifier | chaîne |
nom de l'opérateur téléphonique par ex. Vodafone, nom du partenaire, par ex. Facebook, code de réduction, par ex. TRA123 |
L'identifiant de la méthode d'essai |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put("trial_method", "coupon code");
eventValue.put("trial_method_identifier", "TRA123");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.START_TRIAL, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventStartTrial
withValues: @{
@"trial_method": @"coupon code",
@"trial_method_identifier": @"TRA123"
}]
AppsFlyerLib.shared().logEvent(AFEventStartTrial,
withValues: [
"trial_method": "coupon code",
"trial_method_identifier": "TRA123"
]);
Dictionary<string, string> SubscriptionTrial = new Dictionary<string, string>();
SubscriptionTrial.Add("trial_method ", "coupon code");
SubscriptionTrial.Add("trial_method_identifier", "TRA123");
AppsFlyer.sendEvent("af_start_trial", SubscriptionTrial);
Abonnement
Nom d'événement : af_subscribe
Objectif
L'abonnement constitue le cœur des services de streaming. En enregistrant les évènements d'abonnement des utilisateurs, vous pouvez :
- Voir quelles campagnes amènent les utilisateurs qui s'inscrivent.
- Comparez le nombre d'utilisateurs en période d'essai au nombre d'utilisateurs abonnés.
- Enregistrer les revenus générés par les abonnements et les attribuer aux campagnes et aux sources médias.
Logique de déclenchement
Déclenchez cet événement dans l'un des deux scénarios suivants :
- lorsque l'utilisateur s'abonne avec succès.
- lorsqu'un abonnement est renouvelé.
Astuce
Reportez-vous à notre Guide de suivi des abonnements pour en savoir plus.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
new_subscription | booléen | vrai / faux | Qu'il s'agisse d'un nouvel abonnement ou d'un renouvellement |
af_coupon_code | chaîne | 3MonthsSubscription | Le code de réduction s'il est utilisé lors de l'abonnement |
coupon_code_value | chaîne | 10% | Le montant déduit du prix initial grâce au code de réduction |
af_revenue | float | 5 | Le revenu associé à l'abonnement |
af_currency | chaîne | USD | La devise du paiement de l'abonnement |
subscription_method | chaîne | carte de crédit, portefeuille électronique, PayPal | La méthode de paiement utilisée pour l'abonnement |
expiration_date | chaîne | 2018/07/18 | La date d'expiration de l'abonnement |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put("new_subscription", true);
eventValue.put(AFInAppEventParameterName.COUPON_CODE, "3MonthsSubscription");
eventValue.put("coupon_code_value", "10%");
eventValue.put(AFInAppEventParameterName.REVENUE, 5);
eventValue.put(AFInAppEventParameterName.CURRENCY, "USD");
eventValue.put("subscription_method", "");
eventValue.put("expiration_date", "2018/07/18");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.SUBSCRIBE, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventSubscribe
withValues: @{
@"new_subscription": @TRUE,
AFEventParamCouponCode: @"3MonthsSubscription",
@"coupon_code_value": @"10%",
AFEventParamRevenue: @5,
AFEventParamCurrency: @"USD",
@"subscription_method": @"",
@"expiration_date": @"2018/07/18"
}];
AppsFlyerLib.shared().logEvent(AFEventSubscribe,
withValues: [
"new_subscription": true,
AFEventParamCouponCode: "3MonthsSubscription",
"coupon_code_value": "10%",
AFEventParamRevenue: 5,
AFEventParamCurrency: "USD",
"subscription_method": "",
"expiration_date": "2018/07/18"
]);
Dictionary<string, string> Subscription = new Dictionary<string, string>();
Subscription.Add("new_subscription", "true");
Subscription.Add("af_coupon_code", "3MonthsSubscription");
Subscription.Add("coupon_code_value", "10%");
Subscription.Add("af_revenue", "5");
Subscription.Add("af_currency", "USD");
Subscription.Add("subscription_method", "");
Subscription.Add("expiration_date", "2018/07/18");
AppsFlyer.sendEvent("af_subscribe", Subscription);
Lecture de média
Nom d'événement : media_play
Objectif
Enregistrer l'évènement Lecture de médias revient à enregistrer les évènements lors desquels les utilisateurs lisent les médias que vous proposez. Ces médias peuvent être des vidéos, de la musique, des séries TV, des émissions de radio et plus encore. Si vous proposez plusieurs types de médias, vous pouvez enregistrer le taux de lecture en fonction des différents médias et types de contenu. Par exemple, vous pouvez voir si les utilisateurs lisent plus de musiques que de vidéos. Vous pouvez également voir si les utilisateurs regardent plus de séries TV que de films. En enregistrant l'évènement Lecture de média, vous pouvez également :
- Enregistrer la consommation de médias en fonction du type et du contenu.
- Voir les langues du contenu en streaming le plus populaire.
- Voir la durée minimale, maximale et moyenne du contenu en streaming.
Logique de déclenchement
Déclenchez cet événement après une durée de lecture prédéfinie (par ex. 2 minutes) de contenu en streaming.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_content_type | chaîne | série TV, musique | Le type de contenu regardé en streaming |
af_content_id | chaîne | 092, E34 | L'ID du contenu regardé en streaming |
af_content | chaîne | Titre du contenu | Le titre du contenu, par ex. le nom de la chanson ou le titre et l'épisode d'une série TV |
media_duration | float | 5 | Le temps de lecture |
langue | chaîne | en-us, fr, es | La langue du contenu |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "tv show");
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "E34");
eventValue.put(AFInAppEventParameterName.CONTENT, "My Show");
eventValue.put("media_duration", 5);
eventValue.put("language", "en-us");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "media_play", eventValue);
[[AppsFlyerLib shared] logEvent:@"media_play"
withValues: @{
AFEventParamContentType: @"tv show",
AFEventParamContentId: @"E34",
AFEventParamContent: @"My Show",
@"duration": @5,
@"langague": @"en-us"
}];
AppsFlyerLib.shared().logEvent("media_play",
withValues: [
AFEventParamContentType: "tv show",
AFEventParamContentId: "E34",
AFEventParamContent: "My Show",
"media_duration": 5,
"language": "en-us"
]);
Dictionary<string, string> MediaPlay = new Dictionary<string, string>();
MediaPlay.Add("af_content_type", "tv show");
MediaPlay.Add("af_content_id", "E34");
MediaPlay.Add("af_content", "My show");
MediaPlay.Add("media_duration", "5");
MediaPlay.Add("language", "en-us");
AppsFlyer.sendEvent("media_play", MediaPlay);
Minutes de média
Nom d'événement : media_minutes
Objectif
Les minutes de média représentent la durée pendant laquelle un utilisateur a consommé un certain contenu. Après l'indicateur de revenu, il s'agit de l'indicateur le plus important du secteur du streaming. Cet indicateur est important car il vous permet d'estimer l'utilisation du service par les utilisateurs. Il vous permet également de déterminer le taux d'utilisation global du service et le contenu le plus populaire. En enregistrant l'évènement Minutes de média(via le paramètre minutes_consumed) vous pouvez :
- Voir quels utilisateurs utilisent de manière intensive votre service et quels utilisateurs ne l'utilisent pas de cette manière.
- Déterminer quels types de média et de contenu sont populaires.
Logique de déclenchement
Déclenchez cet événement dans l'un des deux scénarios suivants :
- Voir lorsqu'un utilisateur termine le streaming d'un élément de média.
- Voir lorsqu'un utilisateur quitte le streaming d'un élément de média.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
minutes_consumed | float | 3 | Le temps réel d'exécution du média par l'utilisateur |
af_content_type | chaîne | série TV, musique | Le type de contenu regardé en streaming |
af_content_id | chaîne | 092, E34 | L'ID du contenu regardé en streaming |
af_content | chaîne | Titre du contenu | Le titre du contenu, par ex. le nom de la chanson ou le titre et l'épisode d'une série TV |
media_duration | float | 5 | Le temps de lecture |
langue | chaîne | en-us, fr, es | La langue du contenu |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "tv show");
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "E34");
eventValue.put(AFInAppEventParameterName.CONTENT, "My Show");
eventValue.put("media_duration", 5);
eventValue.put("language", "en-us");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(),"media_minutes", eventValue);
[[AppsFlyerLib shared] logEvent:@"media_minutes"
withValues: @{
@"minutes_consumed": @3,
AFEventParamContentType: @"tv show",
AFEventParamContentId: @"E34",
AFEventParamContent: @"My Show",
@"duration": @5,
@"langague": @"en-us"
}];
AppsFlyerLib.shared().logEvent("media_minutes", withValues: [
"minutes_consumed": 3,
AFEventParamContentType: "tv show",
AFEventParamContentId: "E34",
AFEventParamContent: "My Show",
"media_duration": 5,
"language": "en-us"
]);
Dictionary<string, string> MediaMinutes =
new Dictionary<string, string>();
MediaMinutes.Add("minutes_consumed", "3");
MediaMinutes.Add("af_content_type", "tv show");
MediaMinutes.Add("af_content_id", "E34");
MediaMinutes.Add("af_content", "My show");
MediaMinutes.Add("media_duration", "5");
MediaMinutes.Add("language", "en-us");
AppsFlyer.sendEvent("media_minutes", MediaMinutes);
Média téléchargé
Nom d’événement : media_downloaded
Objectif
Enregistrer les médias téléchargés peut vous aider à déceler les préférences des utilisateurs. Vous pouvez suivre les lectures de médias et les téléchargements de médias et comparer les deux. Vous pouvez découvrir ce que les utilisateurs de médias préfèrent lire en streaming et les médias qu'ils préfèrent télécharger.
Logique de déclenchement
Déclenchez cet événement lorsqu'un utilisateur commence à télécharger des médias.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_content_type | chaîne | série TV, musique | Le type de contenu |
af_content_id | chaîne | 092, E34 | L'ID du contenu |
af_content | chaîne | Titre du contenu | Le titre du contenu, par ex. le nom de la chanson ou le titre et l'épisode d'une série TV |
media_duration | float | 5 | Le temps de lecture |
langue | chaîne | en-us, fr, es | La langue du contenu |
Exemples d'eCode
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "tv show");
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "E34");
eventValue.put(AFInAppEventParameterName.CONTENT, "My Show");
eventValue.put("media_duration", 5);
eventValue.put("language", "en-us");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "media_downloaded", eventValue);
[[AppsFlyerLib shared] logEvent:@"media_downloaded"
withValues: @{
@"minutes_consumed": @3,
AFEventParamContentType: @"tv show",
AFEventParamContentId: @"E34",
AFEventParamContent: @"My Show",
@"duration": @5,
@"langague": @"en-us"
}];
AppsFlyerLib.shared().logEvent("media_downloaded",
withValues: [
"minutes_consumed": 3,
AFEventParamContentType: "tv show",
AFEventParamContentId: "E34",
AFEventParamContent: "My Show",
"media_duration": 5,
"language": "en-us"
]);
Dictionary<string, string> MediaDownloaded = new Dictionary<string, string>();
MediaDownloaded.Add("minutes_consumed", "3");
MediaDownloaded.Add("af_content_type", "tv show");
MediaDownloaded.Add("af_content_id", "E34");
MediaDownloaded.Add("af_content", "My show");
MediaDownloaded.Add("media_duration", "5");
MediaDownloaded.Add("language", "en-us");
AppsFlyer.sendEvent("media_downloaded", MediaDownloaded);
Média enregistré
Nom d’événement : media_saved
Objectif
Enregistrer les médias enregistrés peut vous aider à identifier les préférences des utilisateurs.
Logique de déclenchement
Déclenchez cet événement à chaque fois qu'un média est enregistré sur l'appareil de l'utilisateur.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_content_type | chaîne | série TV, musique | Le type de contenu |
af_content_id | chaîne | 092, E34 | L'ID du contenu |
af_content | chaîne | Titre du contenu | Le titre du contenu, par ex. le nom de la chanson ou le titre et l'épisode d'une série TV |
media_duration | float | 5 | Le temps de lecture |
langue | chaîne | en-us, fr, es | La langue du contenu |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "tv show");
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "E34");
eventValue.put(AFInAppEventParameterName.CONTENT, "My Show");
eventValue.put("media_duration", 5);
eventValue.put("language", "en-us");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "media_saved", eventValue);
[[AppsFlyerLib shared] logEvent:@"media_saved"
withValues: @{
@"minutes_consumed": @3,
AFEventParamContentType: @"tv show",
AFEventParamContentId: @"E34",
AFEventParamContent: @"My Show",
@"duration": @5,
@"langague": @"en-us"
}];
AppsFlyerLib.shared().logEvent("media_saved",
withValues: [
"minutes_consumed": 3,
AFEventParamContentType: "tv show",
AFEventParamContentId: "E34",
AFEventParamContent: "My Show",
"media_duration": 5,
"language": "en-us"]);
Dictionary<string, string> MediaSaved = new Dictionary<string, string>();
MediaSaved.Add("minutes_consumed", "3");
MediaSaved.Add("af_content_type", "tv show");
MediaSaved.Add("af_content_id", "E34");
MediaSaved.Add("af_content", "My show");
MediaSaved.Add("media_duration", "5");
MediaSaed.Add("language", "en-us");
AppsFlyer.sendEvent("media_saved", MediaSaved);
Finance : banque
Les applications financières et bancaires permettent aux utilisateurs d'atteindre un large éventail d'objectifs financiers, notamment l'obtention de nouvelles cartes de crédit ou la demande de prêts. Les événements in-app que nous recommandons d'enregistrer dans les applications financières/bancaires comprennent les ouvertures de comptes, les demandes de cartes de crédit et les demandes de prêts. Voici quelques exemples illustrant comment l'enregistrement de ces évènements peut vous être utile :
- L'enregistrement des demandes de compte in-app vous aide à comprendre ce que les utilisateurs de compte veulent le plus et vous donne des idées pour le retargeting.
- L'enregistrement des demandes de carte de crédit vous aide à comprendre les avantages que les utilisateurs recherchent dans une carte de crédit.
- L'enregistrement des demandes de prêt vous aide à comprendre les raisons pour lesquelles les utilisateurs ont besoin d'une aide financière et le montant de l'aide qu'ils souhaitent obtenir.
Connexion
Nom d’événement : af_login
Objectif
Cet évènement peut vous aider à déterminer le taux de rétention de vos utilisateurs inscrits.
Logique de déclenchement
Déclenchez cet événement à chaque fois que l'utilisateur se connecte.
Champs recommandés
Cet événement peut être envoyé sans champ supplémentaire.
Exemples de code
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.LOGIN, null);
[[AppsFlyerLib shared] logEvent:AFEventLogin withValues: nil];
AppsFlyerLib.shared().logEvent(AFEventLogin, withValues: nil);
AppsFlyer.sendEvent ("af_login", null);
Inscription complète
Nom d'événement : af_complete_registration
Objectif
Vous pouvez enregistrer l'inscription d'utilisateurs et la comparer avec d'autres données pour en savoir plus sur vos utilisateurs. En enregistrant les évènements d'inscription des utilisateurs, vous pouvez :
- Découvrir le nombre d'utilisateurs qui ont installé l'app mais qui ne se sont jamais inscrits.
- Découvrir les méthodes d'inscription préférées des utilisateurs.
Logique de déclenchement
Le meilleur moyen d'enregistrer cet évènement est de le déclencher lorsque l'utilisateur achève le processus d'inscription.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_registration_method | chaîne | email, facebook | Le type de méthode d'inscription |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.registration_method, "Facebook");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.complete_registration, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventCompleteRegistration
withValues: @{
AFEventParamRegistrationMethod: @"Facebook"
}];
AppsFlyerLib.shared().logEvent(AFEventCompleteRegistration,
withValues: [
AFEventParamRegistrationMethod: "Facebook"
]);
Dictionary<string, string> CompletedRegistrationEvent = new Dictionary<string, string>();
CompletedRegistrationEvent.Add("af_registration_method", "Facebook");
AppsFlyer.sendEvent ("af_complete_registration", CompletedRegistrationEvent);
Enregistrement vérifié
Nom de l'événement : registration_verified
Objectif
Vous pouvez enregistrer une inscription acceptée et la comparer avec d'autres données pour en savoir plus sur vos utilisateurs. En enregistrant les événements dont l'inscription a été vérifiée, vous pouvez par exemple savoir combien d'utilisateurs s'inscrivent mais ne sont pas acceptés.
Logique de déclenchement
La meilleure façon d'enregistrer cet événement est de le déclencher lorsque l'enregistrement est vérifié.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
submit_registration | chaîne | email, facebook | Le type de méthode d'inscription vérifiée. Ne pas remplir avec des informations personnelles identifiables (IPI). |
Exemples de code
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("submit_registration", "facebook");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "registration_verified", eventValue);
[[AppsFlyerLib shared] logEvent:@"registration_verified"
withValues: @{
@"submit_registartion": @"facebook"
}];
AppsFlyerLib.shared().logEvent("registration_verified",
withValues: [
"submit_registration": "facebook"
])
Dictionary<string, string> RegistrationVerifiedEvent = new Dictionary<string, string>();
RegistrationVerifiedEvent.Add("submit_registration", "facebook");
AppsFlyer.sendEvent ("registration_verified", RegistrationVerifiedEvent);
Soumettre une demande de compte
Nom de l'événement : submit_account_application
Objectif
Vous pouvez enregistrer une demande de compte et la comparer avec d'autres données pour en savoir plus sur vos utilisateurs. En enregistrant les événements d'inscription des utilisateurs, vous pouvez par exemple savoir combien d'utilisateurs s'inscrivent mais ne demandent pas l'ouverture d'un compte.
Logique de déclenchement
Le meilleur moyen d'enregistrer cet évènement est de le déclencher lorsque l'utilisateur achève le processus de demande.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
account_type | chaîne | économies | Le type de compte demandé. |
application_method | chaîne | app | Où la demande a été faite. |
PII_type | chaîne | passeport | Type de pièce d'identité utilisée lors de la demande. |
Exemples de code
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("account_type", "savings");
eventValue.put("application_method", "app");
eventValue.put("PII_type", "passport");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "submit_account_application", eventValue);
[[AppsFlyerLib shared] logEvent:@"submit_account_application"
withValues: @{
@"account_type": @"savings",
@"application_method": @"app",
@"PII_type": @"passport"
}];
AppsFlyerLib.shared().logEvent("submit_account_application",
withValues: [
"account_type": "savings",
"application_method": "app",
"PII_type": "passport"
])
Dictionary<string, string> SubmitAccountApplicationEvent = new Dictionary<string, string>();
SubmitAccountApplicationEvent.Add("account_type", "savings");
SubmitAccountApplicationEvent.Add("application_method", "app");
SubmitAccountApplicationEvent.Add("PII_type", "passport");
AppsFlyer.sendEvent ("submit_account_applicationn", SubmitAccountApplicationEvent);
Ouverture de compte réussie
Nom de l'événement : open_account_success
Objectif
Vous pouvez enregistrer des demandes de compte acceptées et les comparer avec d'autres données pour en savoir plus sur vos utilisateurs. En enregistrant les demandes de compte qui ont abouti, vous pouvez par exemple savoir combien d'utilisateurs ont demandé un compte mais n'ont pas été acceptés, et essayer d'améliorer le tunnel ou de recibler ces utilisateurs ultérieurement.
Logique de déclenchement
La meilleure façon d'enregistrer cet événement est de le déclencher lorsque la demande de l'utilisateur est acceptée et que le compte est ouvert.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
account_type | chaîne | économies | Le type de compte ouvert. |
application_method | chaîne | app | Où la demande a été faite. |
PII_type | chaîne | carte d'identification | Type de pièce d'identité utilisée lors de la demande. |
Exemples de code
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("account_type", "savings");
eventValue.put("application_method", "app");
eventValue.put("PII_type", "identification card");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "open_account_suucess", eventValue);
[[AppsFlyerLib shared] logEvent:@"open_account_success"
withValues: @{
@"account_type": @"savings",
@"application_method": @"app",
@"PII_type": @"identification card"
}];
AppsFlyerLib.shared().logEvent("open_account_success",
withValues: [
"account_type": "savings",
"application_method": "app",
"PII_type": "identification card"
])
Dictionary<string, string> OpenAccountSuccessEvent = new Dictionary<string, string>();
OpenAccountSuccessEventEvent.Add("account_type", "savings");
OpenAccountSuccessEventEvent.Add("application_method", "app");
OpenAccountSuccessEventEvent.Add("PII_type", "identification_card");
AppsFlyer.sendEvent ("open_account_success", OpenAccountSuccessEvent);
Ouverture du compte refusée
Nom de l'événement : open_account_rejected
Objectif
Vous pouvez enregistrer des demandes de compte et les comparer avec d'autres données pour en savoir plus sur vos utilisateurs. En enregistrant les demandes de compte refusées, vous pouvez par exemple savoir combien d'utilisateurs ont demandé un compte mais n'ont pas été acceptés, et essayer d'améliorer le tunnel ou de recibler ces utilisateurs ultérieurement.
Logique de déclenchement
Le meilleur moyen d'enregistrer cet évènement est de le déclencher lorsque l'utilisateur achève le processus d'inscription.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
account_type | chaîne | économies | Le type de compte demandé. |
Exemples de code
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("account_type", "savings");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "open_account_rejected", eventValue);
[[AppsFlyerLib shared] logEvent:@"open_account_rejected"
withValues: @{
@"account_type": @"savings"
}];
AppsFlyerLib.shared().logEvent("open_account_rejected",
withValues: [
"account_type": "savings"
])
Dictionary<string, string> OpenAccountRejectedEvent = new Dictionary<string, string>();
OpenAccountRejectedEvent.Add("account_type", "savings");
AppsFlyer.sendEvent ("open_account_rejected", OpenAccountRejectedEvent);
Demande de carte de crédit
Nom de l'événement : submit_credit_card_application
Objectif
Vous pouvez enregistrer une demande de carte de crédit et la comparer avec d'autres données pour en savoir plus sur vos utilisateurs. En enregistrant les demandes de carte de crédit des utilisateurs, vous pouvez par exemple savoir combien d'utilisateurs ont envoyé une demande mais n'ont pas été acceptés, et essayer d'améliorer le tunnel ou de recibler ces utilisateurs ultérieurement.
Logique de déclenchement
Pour enregistrer correctement cet évènement, vous devez le déclencher lorsque l'utilisateur soumet sa demande de carte de crédit.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
credit_card_type | chaîne | carte gold | Le type de carte de crédit demandé. |
application_method | chaîne | app | Où la demande a été faite. |
PII_type | chaîne | passeport | Type de pièce d'identité utilisée lors de la demande. |
Exemples de code
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("credit_card_type", "gold card");
eventValue.put("application_method", "app");
eventValue.put("PII_type", "passport");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "submit_credit_card_application", eventValue);
[[AppsFlyerLib shared] logEvent:@"submit_credit_card_application"
withValues: @{
@"credit_card_type": @"gold_card",
@"application_method": @"app",
@"PII_type": @"passport"
}];
AppsFlyerLib.shared().logEvent("submit_credit_card_application",
withValues: [
"credit_card_type": "gold_card",
"application_method": "app",
"PII_type": "passport"
])
Dictionary<string, string> SubmitCreditCardApplicationEvent = new Dictionary<string, string>();
SubmitCreditCardApplicationEvent.Add("credit_card_type", "gold_card");
SubmitCreditCardApplicationEvent.Add("application_method", "app");
SubmitCreditCardApplicationEvent.Add("PII_type", "passport");
AppsFlyer.sendEvent ("submit_credit_card_application", SubmitCreditCardApplicationEvent);
Demande de carte de crédit réussie
Nom de l'événement : credit_card_application_success
Objectif
Vous pouvez enregistrer une demande de carte de crédit acceptée et la comparer avec d'autres données pour en savoir plus sur vos utilisateurs. En enregistrant les demandes de carte de crédit réussies des utilisateurs, vous pouvez par exemple savoir combien d'utilisateurs ont envoyé une demande mais n'ont pas été acceptés, et utiliser ces informations pour améliorer le tunnel ou recibler les utilisateurs acceptés vers d'autres cartes de crédit.
Logique de déclenchement
Pour enregistrer correctement cet événement, vous devez le déclencher lorsque la demande de carte de crédit de l'utilisateur est acceptée.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
credit_card_type | chaîne | carte gold | Le type de carte de crédit demandé. |
application_method | chaîne | app | Où la demande a été faite. |
PII_type | chaîne | carte d'identification | Type de pièce d'identité utilisée lors de la demande. |
Exemples de code
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("credit_card_type", gold card);
eventValue.put("application_method", app);
eventValue.put("PII_type", identification card);
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "credit_card_application_success", eventValue);
[[AppsFlyerLib shared] logEvent:@"credit_card_application_success"
withValues: @{
@"credit_card_type": @"gold card",
@"application_method": @"app",
@"PII_type": @"identification card"
}];
AppsFlyerLib.shared().logEvent("credit_card_application_success",
withValues: [
"credit_card_type": "gold card",
"application_method": "app",
"PII_type": "identification card"
])
Dictionary<string, string> CreditCardApplicationSuccessEvent = new Dictionary<string, string>();
CreditCardApplicationSuccessEvent.Add("redit_card_type", "gold card");
CreditCardApplicationSuccessEvent.Add("application_method", "app");
CreditCardApplicationSuccessEvent.Add("PII_type", "identificationcard");
AppsFlyer.sendEvent ("credit_card_application_success", CreditCardApplicationSuccessEvent);
Demande de carte de crédit refusée
Nom de l'événement : credit_card_application_rejected
Objectif
Vous pouvez enregistrer une demande de carte de crédit refusée et la comparer avec d'autres données pour en savoir plus sur vos utilisateurs. En enregistrant les demandes de carte de crédit refusées, vous pouvez par exemple savoir combien d'utilisateurs ont envoyé une demande mais n'ont pas été acceptés, et utiliser ces informations pour améliorer le tunnel ou recibler les utilisateurs vers d'autres cartes de crédit.
Logique de déclenchement
Pour enregistrer correctement cet événement, vous devez le déclencher lorsque la demande de carte de crédit de l'utilisateur est refusée.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
credit_card_type | chaîne | carte gold | Le type de carte de crédit demandé. |
Exemples de code
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("credit_card_type", "gold card");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "credit_card_application_rejected", eventValue);
[[AppsFlyerLib shared] logEvent: @"credit_card_application_rejected"
withValues: @{
"credit_card_type: @"gold card"
}];
AppsFlyerLib.shared().logEvent("credit_card_application_rejected",
withValues: [
"credit_card_type: "gold card"
])
Dictionary<string, string> CreditCardApplicationRejectedEvent = new Dictionary<string, string>();
CreditCardApplicationRejectedEvent.Add("credit_card_type", "gold card");
AppsFlyer.sendEvent ("credit_card_application_rejected", CreditCardApplicationRejectedEvent);
Activation de carte de crédit
Nom de l'événement : credit_card_activation
Objectif
Vous pouvez enregistrer le moment où un utilisateur active sa nouvelle carte de crédit et le comparer ces informations avec d'autres données pour en savoir plus sur vos utilisateurs. En enregistrant les activations des cartes de crédit, vous pouvez par exemple savoir combien d'utilisateurs obtiennent une carte de crédit mais ne l'activent pas, et utiliser cette information pour améliorer votre tunnel ou recibler les utilisateurs.
Logique de déclenchement
Pour enregistrer correctement cet événement, vous devez le déclencher lorsqu'un utilisateur active sa nouvelle carte de crédit.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
credit_card_type | chaîne | carte gold | Le type de carte de crédit demandé. |
application_method | chaîne | app | Où la demande a été faite. |
PII_type | chaîne | carte d'identification | Type de pièce d'identité utilisée lors de la demande. |
Exemples de code
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("credit_card_type", gold card);
eventValue.put("application_method", app);
eventValue.put("PII_type", identification card);
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "credit_card_activation", eventValue);
[[AppsFlyerLib shared] logEvent: @"credit_card_activation"
withValues: @{
@"credit_card_type": @"gold card",
@"application_method: @"app",
@"PII_type": @"identification card"
}];
AppsFlyerLib.shared().logEvent("credit_card_activation",
withValues: [
"credit_card_type": "gold card",
"application_method": "app",
"PII_type": "identification card"
])
Dictionary<string, string> CreditCardActivationEvent = new Dictionary<string, string>();
CreditCardActivationEvent.Add("credit_card_type", "gold card");
CreditCardActivationEvent.Add(application_method", "app");
CreditCardActivationEvent.Add(PII_type", "identification_card");
AppsFlyer.sendEvent ("credit_card_activation", CreditCardActivationEvent);
Soumettre une demande de prêt
Nom d'événement : submit_loan_application
Objectif
L'objectif de cet évènement est de vous aider à enregistrer les demandes de prêt. En enregistrant l'évènement Soumettre une demande de prêt, vous pouvez :
- Enregistrer le nombre total de demandes de prêt dans votre app.
- En apprendre plus sur le montant maximal, minimal et moyen des demandes de prêt.
- Découvrir quels types de prêts les personnes demandent.
Logique de déclenchement
Déclenchez cet événement lorsque l'utilisateur soumet avec succès une demande de prêt.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
loan_id | chaîne | 1735102 | L'ID du prêt |
loan_type | chaîne | logement | L'objet du prêt. |
loan_amount | float | 1000 | Le montant demandé. |
loan_period | chaîne | 3 mois | La période de prêt. |
Exemples de code
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("loan_id", "1735102");
eventValue.put("loan_type", "housing");
eventValue.put("loam_amount", "1000");
eventValue.put("loan_period", "3 months");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(),"submit_loan_application", eventValue);
[[AppsFlyerLib shared] logEvent: @"submit_loan_application"
withValues: @{
@"loan_id": @"1735102",
@"loan_type": @"housing",
@"loan_amount": @"1000",
@"loan_period": @"3 months"
}];
AppsFlyerLib.shared().logEvent("submit_loan_application",
withValues: [
"loan_id": "1735102",
"loan_type": "housing",
"loan_amount": "1000",
"loan_period": "3 months"
])
Dictionary<string, string> SubmitLoanApplication = new Dictionary<string, string>();
SubmitLoanApplication.Add("loan_id", "1735102");
SubmitLoanApplication.Add("loan_type", "housing");
SubmitLoanApplication.Add("loan_amount", "1000");
SubmitLoanApplication.Add("loan_period", "3 months");
AppsFlyer.sendEvent("submit_loan_application", SubmitLoanApplication);
Prêt accepté
Nom d'événement : loan_accepted
Objectif
En enregistrant l'évènement Prêt accepté, vous pouvez découvrir les tendances de prêts de même que d'autres métriques :
- Vous pouvez découvrir les types de prêts acceptés.
- Vous pouvez découvrir les montants demandés en prêts acceptés.
- Vous pouvez découvrir quels prêteurs acceptent le plus de prêts, les types et les montants.
Logique de déclenchement
Déclenchez cet événement lorsqu'un prêt est accepté.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
loan_id | chaîne | 1735102 | L'ID du prêt |
loan_type | chaîne | logement | L'objet du prêt. |
loan_amount | float | 1000 | Le montant demandé. |
loan_period | chaîne | 3 mois | La période de prêt. |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put("loan_id", "1735102");
eventValue.put("loam_amount", "1000");
eventValue.put("loan_type", "3 months");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(),"loan_accepted" , eventValue);
[[AppsFlyerLib shared] logEvent: @"loan_accepted"
withValues: @{
@"loan_id": @"1735102",
@"loan_amount": @"1000",
@"loan_type": @"3 months"
}];
AppsFlyerLib.shared().logEvent("loan_accepted",
withValues: [
"loan_id": "1735102",
"loan_amount": "1000",
"loan_type": "3 months"
])
Dictionary<string, string> LoanAccepted = new Dictionary<string, string>();
LoanAccepted.Add("loan_id", "1735102");
LoanAccepted.Add("loan_amount", "1000");
LoanAccepted.Add("loan_type", "3 months");
AppsFlyer.sendEvent("loan_accepted", LoanAccepted);
Prêt refusé
Nom d'événement : loan_rejected
Objectif
Enregistrer l'évènement Prêt refusé peut vous aider à comprendre les raisons pour lesquelles des prêts sont refusés. Vous pouvez voir la corrélation entre le montant et la période de prêt et les taux de refus. Vous pouvez également recibler les utilisateurs dont le prêt est refusé et leur suggérer de demander un prêt à montant moins élevé.
Logique de déclenchement
Déclenchez cet événement lorsqu'un prêteur refuse un prêt.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
loan_id | chaîne | 1735102 | L'ID du prêt |
Exemples de code
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("loan_id", "1735102");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "loan_rejected" , eventValue);
[[AppsFlyerLib shared] logEvent:@"loan_rejected"
withValues: @{
@"loan_id": @"1735102",
}];
AppsFlyerLib.shared().logEvent("loan_rejected",
withValues: [
"loan_id": "1735102",
]);
Dictionary<string, string> LoanRejected = new Dictionary<string, string>();
LoanRejected.Add("loan_id", "1735102");
AppsFlyer.sendEvent("loan_rejected", LoanRejected);
Fintech : prêt P2P
Le prêt P2P (peer-to-peer) est une nouvelle façon pour les particuliers et les entreprises de prêter et d'emprunter de l'argent.
Nous vous recommandons d'enregistrer les évènements dans votre app de prêt P2P :
- Vous pouvez enregistrer les activités de chaque prêteur et emprunteur.
- Vous pouvez découvrir quel type de prêts les personnes offrent par opposition à ce qui intéresse les emprunteurs.
- Vous pouvez rassembler des indicateurs sur le montant moyen, minimal et maximal des prêts.
- Vous pouvez enregistrer les taux d'acceptation et de refus de prêt.
Grâce à ces données rassemblées via l'enregistrement d'évènements, vous pouvez mettre en évidence les emprunteurs fiables et leur offrir de meilleurs taux d'intérêt. De même, vous pouvez découvrir qui sont les prêteurs les plus actifs et leur proposer des frais réduits. De plus, une fois que vous savez quels types de prêts sont les plus populaires auprès de vos utilisateurs, vous pouvez lancer des campagnes marketing qui ciblent ces audiences.
Inscription soumise
Nom d’événement : registration_submitted
Objectif
Le prêt P2P étant soumis aux risques, les utilisateurs doivent d'abord faire vérifier leur identité. Ils le font en soumettant une demande d'inscription. enregistrer l'évènement Inscription soumise peut vous aider à :
- Enregistrer le nombre d'utilisateurs qui s'inscrivent mais qui ne vérifient jamais leur compte.
- Déterminer la corrélation entre la méthode d'inscription (email, Facebook, Google) et les taux de vérification.
Logique de déclenchement
Déclenchez cet événement une fois que l'utilisateur soumet une demande d'inscription à votre service P2P.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_registration_method | chaîne | email, Facebook, Google | Le type de méthode ou d'inscription via réseau social choisi par l'utilisateur |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.REGSITRATION_METHOD, "Facebook");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "registration_submitted", eventValue);
[[AppsFlyerLib shared] logEvent:@"registration_submitted"
withValues: @{
AFEventParamRegistrationMethod: @"Facebook",
}];
AppsFlyerLib.shared().logEvent("registration_submitted",
withValues: [
AFEventParamRegistrationMethod: "Facebook"
]);
Dictionary<string, string> RegistrationSubmitted = new Dictionary<string, string>();
RegistrationSubmitted.Add("af_registration_method", "Facebook");
AppsFlyer.sendEvent("registration_submitted", RegistrationSubmitted);
Inscription complète
Nom d'événement : af_complete_registration
Objectif
Enregistrer l'évènement Enregistrement complet peut vous permettre de savoir combien d'utilisateurs vérifient réellement leur identité suite à leur enregistrement. Vous pouvez attribuer ces utilisateurs aux campagnes et découvrir quelles campagnes génèrent des utilisateurs actifs.
Logique de déclenchement
Déclenchez cet événement lorsque l'inscription de l'utilisateur est approuvée.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_registration_method | chaîne | Le type de méthode ou d'inscription via réseau social choisi par l'utilisateur |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.REGSITRATION_METHOD, "Facebook");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.COMPLETE_REGISTRATION, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventCompleteRegistration
withValues: @{
AFEventParamRegistrationMethod: @"Facebook"
}];
AppsFlyerLib.shared().logEvent(AFEventCompleteRegistration,
withValues: [
AFEventParamRegistrationMethod: "Facebook"
]);
Dictionary<string, string> CompleteRegistration = new Dictionary<string, string>();
CompleteRegistration.Add("af_registration_method", "Facebook");
AppsFlyer.sendEvent("af_complete_registration", CompleteRegistration);
Remplir le formulaire de prêt
Nom d'événement : fill_loan_form_<FORM_NAME>
Objectif
Les emprunteurs doivent remplir plusieurs formulaires pour demander un prêt. Vous pouvez suivre les formulaires remplis par un emprunteur potentiel afin de déterminer le taux de baisse. Mis à part le taux de baisse, vous pouvez également recibler les emprunteurs qui quittent le formulaire avant de terminer leur demande de prêt. Lorsque vous envoyez l'évènement, précisez le nom du formulaire dans le nom de l'évènement.
Logique de déclenchement
Déclenchez cet événement à chaque fois qu'un emprunteur soumet un formulaire.
Champs recommandés
Cet événement peut être envoyé sans aucun champ supplémentaire.
Remarque
Nous vous recommandons fortement d'associer les prêts aux prêteurs. Pour ce faire, veillez à définir l'ID Utilisateur-Client. Définir l'ID Utilisateur-Client est votre moyen d'associer les prêteurs aux utilisateurs de votre app, tels qu'ils apparaissent dans AppsFlyer. En définissant l'ID Utilisateur-Client, vous vous assurez que tous les événements sont envoyés avec l'ID Utilisateur-Client.
Exemples de code
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "fill_loan_form_FORM_NAME", null);
[[AppsFlyerLib shared] logEvent:@"fill_loan_formFORM_NAME"
withValues: nil];
AppsFlyerLib.shared().logEvent("fill_loan_form_FORM_NAME",
withValues: nil);
AppsFlyer.sendEvent("fill_loan_form_FORM_NAME", null);
Soumettre une demande de prêt
Nom d'événement : submit_loan_application
Objectif
L'objectif de cet évènement est de vous aider à enregistrer les demandes de prêt. En enregistrant l'évènement Soumettre une demande de prêt, vous pouvez :
- Enregistrer le nombre total de demandes de prêt dans votre app.
- En apprendre plus sur le montant maximal, minimal et moyen des demandes de prêt.
- Découvrir quels types de prêts les personnes demandent.
Logique de déclenchement
Déclenchez cet événement lorsque l'utilisateur soumet avec succès une demande de prêt.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
loan_id | chaîne | 1735102 | L'ID du prêt |
loan_amount | float | 1000 | Le montant demandé |
loan_type | chaîne | 3 mois | La période de prêt |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put("loan_id", "1735102");
eventValue.put("loam_amount", 1000);
eventValue.put("loan_type", "3 months");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(),"submit_loan_application", eventValue);
[[AppsFlyerLib shared] logEvent:@"submit_loan_application"
withValues: @{
@"loan_id": @"1735102",
@"loan_amount": @1000,
@"loan_type": @"3 months"
}];
AppsFlyerLib.shared().logEvent("submit_loan_applications",
withValues: [
"loan_id": "1735102",
"loan_amount": 1000,
"loan_type": "3 months"
]);
Dictionary<string, string> SubmitLoanApplication = new Dictionary<string, string>();
SubmitLoanApplication.Add("loan_id", "1735102");
SubmitLoanApplication.Add("loan_amount", "1000");
SubmitLoanApplication.Add("loan_type", "3 months");
AppsFlyer.sendEvent("submit_loan_application", SubmitLoanApplication);
Prêt accepté
Nom d'événement : loan_accepted
Objectif
En enregistrant l'évènement Prêt accepté, vous pouvez découvrir les tendances de prêts de même que d'autres métriques :
- Vous pouvez découvrir les types de prêts acceptés.
- Vous pouvez découvrir les montants demandés en prêts acceptés.
- Vous pouvez découvrir quels prêteurs acceptent le plus de prêts, les types et les montants.
Logique de déclenchement
Déclenchez cet événement lorsqu'un prêt est accepté.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
loan_id | chaîne | 1735102 | L'ID du prêt |
loan_amount | float | 1000 | Le montant demandé |
loan_type | chaîne | 3 mois | La période de prêt |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put("loan_id", "1735102");
eventValue.put("loam_amount", 1000);
eventValue.put("loan_type", "3 months");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(),"loan_accepted" , eventValue);
[[AppsFlyerLib shared] logEvent:@"loan_accepted"
withValues: @{
@"loan_id": @"1735102",
@"loan_amount": @1000,
@"loan_type": @"3 months"
}];
AppsFlyerLib.shared().logEvent("loan_accepted",
withValues: [
"loan_id": "1735102",
"loan_amount": 1000,
"loan_type": "3 months"
]);
Dictionary<string, string> LoanAccepted = new Dictionary<string, string>();
LoanAccepted.Add("loan_id", "1735102");
LoanAccepted.Add("loan_amount", "1000");
LoanAccepted.Add("loan_type", "3 months");
AppsFlyer.sendEvent("loan_accepted", LoanAccepted);
Prêt refusé
Nom d'événement : loan_rejected
Objectif
Enregistrer l'évènement Prêt refusé peut vous aider à comprendre les raisons pour lesquelles des prêts sont refusés. Vous pouvez voir la corrélation entre le montant et la période de prêt et les taux de refus. Vous pouvez également recibler les utilisateurs dont le prêt est refusé et leur suggérer de demander un prêt à montant moins élevé.
Logique de déclenchement
Déclenchez cet événement lorsqu'un prêteur refuse un prêt.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
load_id | chaîne | 1735102 | L'ID du prêt |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put("loan_id", "1735102");
eventValue.put("loam_amount", 1000);
eventValue.put("loan_type", "3 months");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(),loan_rejected" , eventValue);
[[AppsFlyerLib shared] logEvent:@"loan_rejected"
withValues: @{
@"loan_id": @"1735102",
@"loan_amount": @1000,
@"loan_type": @"3 months"
}];
AppsFlyerLib.shared().logEvent("loan_rejected", withValues: [
"loan_id": "1735102",
"loan_amount": 1000,
"loan_type": "3 months"
]);
Dictionary<string, string> LoanRejected = new Dictionary<string, string>();
LoanRejected.Add("loan_id", "1735102");
LoanRejected.Add("loan_amount", "1000");
LoanRejected.Add("loan_type", "3 months");
AppsFlyer.sendEvent("loan_rejected", LoanRejected);
Paiement
Nom d'événement : paiement
Objectif
Suivre l'évènement Paiement peut vous aider à marquer les emprunteurs jugés fiables. Les emprunteurs fiables sont ceux qui respectent leur obligation de rembourser leur prêt. Vous pouvez attribuer les emprunteurs à des campagnes et découvrir quelles campagnes génèrent des emprunteurs fiables. Enregistrer cet évènement peut également vous aider à recueillir des données concernant le montant minimal, maximal et moyen des paiements.
Logique de déclenchement
Déclenchez cet événement à chaque fois qu'un utilisateur effectue un paiement pour son prêt.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
loan_id | chaîne | 1735102 | L'ID du prêt |
payment_amount | float | 100 | Le montant payé |
payment_id | chaîne | AE12SF | L'ID du paiement |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put("loan_id", "1735102");
eventValue.put("payment_amount", 100);
eventValue.put("payment_id", "AE12SF");
AppsFlyerLib.getInstance().logEvent(
getApplicationContext(),
"payment" , eventValue);
[[AppsFlyerLib shared] logEvent:@"payment"
withValues: @{
@"loan_id": @"1735102",
@"payment_amount": @100,
@"payment_id": @"AE12SF"
}];
AppsFlyerLib.shared().logEvent("payment",
withValues: [
"loan_id": "1735102",
"payment_amount": 100,
"payment_id": "AE12SF"
]);
Dictionary<string, string> Payment = new Dictionary<string, string>();
Payment.Add("loan_id", "1735102");
Payment.Add("payment_amount", "100");
Payment.Add("payment_id", "AE12SF");
AppsFlyer.sendEvent("payment", Payment);
Paiement effectué
Nom d'événement :payment_completed
Objectif
Enregistrer l'évènement Paiement effectué peut vous aider à déceler les emprunteurs qui respectent leur obligation de rembourser leur prêt. Vous pouvez également recibler ces emprunteurs et leur offrir des taux d'intérêt réduits ou d'autres promotions.
Logique de déclenchement
Déclenchez cet événement lorsqu'un prêt est entièrement remboursé.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
loan_id | chaîne | 1735102 | L'ID du prêt |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put("loan_id", "1735102");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(),"payment_completed" , eventValue);
[[AppsFlyerLib shared] logEvent:@"payment_completed"
withValues: @{
@"loan_id": @"1735102"
}];
AppsFlyerLib.shared().logEvent("payment_completed",
withValues: [
"loan_id": "1735102"
]);
Dictionary<string, string> PaymentCompleted = new Dictionary<string, string>();
PaymentCompleted.Add("loan_id", "1735102");
AppsFlyer.sendEvent("payment_completed", PaymentCompleted);
Formation en ligne
Les apps de formation en ligne permettent aux utilisateurs d'apprendre à distance. Les événements in-app que nous recommandons d'enregistrer dans les apps de formation en ligne comprennent l'inscription, les tutoriels et les cours suivis, ainsi que les certificats reçus. Voici quelques exemples illustrant comment l'enregistrement de ces évènements peut vous être utile :
- L'enregistrement des inscriptions in-app vous permet de comprendre ce que les utilisateurs de compte veulent le plus et vous donne des idées pour le retargeting.
- Enregistrer les tutoriels terminés vous permet de mieux comprendre quels utilisateurs peuvent être reciblés et contactés pour leur rappeler qu'ils disposent de tutoriels supplémentaires pour terminer un cours.
- L'enregistrement des certificats reçus vous aide à comprendre quels sont les cours et les certificats les plus demandés.
Connexion
Nom d’événement : af_login
Objectif
Cet évènement peut vous aider à déterminer le taux de rétention de vos utilisateurs inscrits.
Logique de déclenchement
Déclenchez cet événement à chaque fois que l'utilisateur se connecte.
Champs recommandés
Cet événement peut être envoyé sans champ supplémentaire.
Exemples de code
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.LOGIN, null);
[[AppsFlyerLib shared] logEvent:AFEventLogin withValues: nil];
AppsFlyerLib.shared().logEvent(AFEventLogin, withValues: nil);
AppsFlyer.sendEvent ("af_login", null);
Inscription complète
Nom d'événement : af_complete_registration
Objectif
Vous pouvez enregistrer l'inscription d'utilisateurs et la comparer avec d'autres données pour en savoir plus sur vos utilisateurs. En enregistrant les évènements d'inscription des utilisateurs, vous pouvez :
- Découvrir le nombre d'utilisateurs qui ont installé l'app mais qui ne se sont jamais inscrits.
- Découvrir les méthodes d'inscription préférées des utilisateurs.
Logique de déclenchement
Le meilleur moyen d'enregistrer cet évènement est de le déclencher lorsque l'utilisateur achève le processus d'inscription.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_registration_method | chaîne | email, facebook | Le type de méthode d'inscription |
Exemples de code
Map<String, Object> eventValue = new HashMap<>();
eventValue.put(AFInAppEventParameterName.registration_method, "Facebook");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.complete_registration, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventCompleteRegistration
withValues: @{
AFEventParamRegistrationMethod: @"Facebook"
}];
AppsFlyerLib.shared().logEvent(AFEventCompleteRegistration,
withValues: [
AFEventParamRegistrationMethod: "Facebook"
]);
Dictionary<string, string> CompleteRegistrationEvent = new Dictionary<string, string>();
CompleteRegistrationEvent.Add("af_registration_method", "Facebook");
AppsFlyer.sendEvent ("af_complete_registration", CompleteRegistrationEvent);
Fin du tutoriel
Nom d’événement : af_tutorial_completion
Objectif
Les tutoriels aident vos utilisateurs à apprendre à mieux utiliser votre app. En enregistrant l'achèvement du tutoriel, vous pouvez :
- Découvrir les sujets qui posent problème aux utilisateurs.
- Découvrir quels tutoriels n'obtiennent pas de bons résultats pour les améliorer.
Logique de déclenchement
Il existe deux scénarios dans lesquels cet événement doit être déclenché :
- Lorsque l'utilisateur achève le tutoriel. Un événement sera envoyé avec un champ indiquant l'aboutissement réussi du tutoriel.
- Lorsque l'utilisateur commence le tutoriel mais le ferme sans l'avoir abouti. Lorsque l'utilisateur quitte, un événement est envoyé avec un champ indiquant que l'utilisateur n'est pas allé au bout du tutoriel.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_success | booléen | Oui | Que l'utilisateur ait achevé le tutoriel ou non |
af_tutorial_id | chaîne | 3 | L'ID du tutoriel |
af_content | chaîne | algèbre | Le nom du tutoriel |
Exemples de code
Map<String, Object> eventValue = new HashMap<>();
eventValue.put(AFInAppEventParameterName.SUCCESS, yes);
eventValue.put(AFInAppEventParameterName.TUTORIAL_ID, "3");
eventValue.put(AFInAppEventParameterName.CONTENT, "algebra");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.TUTORIAL_COMPLETION, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventTutorial_completion
withValues: @{
AFEventParamSuccess: @YES,
AFEventParamTutorialId: @"3",
AFEventParamContent: @"algebra"
}];
AppsFlyerLib.shared().logEvent(AFEventTutorial_completion,
withValues: [
AFEventParamSuccess: YES,
AFEventParamTutorialId: "3",
AFEventParamContent: "algebra"
]);
Dictionary<string, string> TutorialCompletiondEvent = new Dictionary<string, string>();
TutorialCompletiondEvent.Add("af_success", "yes");
TutorialCompletiondEvent.Add("af_tutorial_id", "3");
TutorialCompletiondEvent.Add("af_tutorial_content", "algebra");
AppsFlyer.sendEvent ("af_tutorial_completion", TutorialCompletiondEvent);
Exercice terminé
Nom de l'événement : complet_excercercise
Objectif
Vous pouvez enregistrer les exercices terminés et comparer ces informations avec d'autres données pour en savoir plus sur vos utilisateurs. Par exemple, en enregistrant les événements d'exercices terminés, vous pouvez savoir combien d'utilisateurs commencent mais ne terminent pas un exercice.
Logique de déclenchement
Le meilleur moyen d'enregistrer cet évènement est de le déclencher lorsque l'utilisateur termine un exercice.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
course_name | chaîne | algèbre | Le nom du cours. |
exercise_name | chaîne | 2 | Le nom de l'exercice. |
Exemples de code
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("course_name", "algebra");
eventValue.put("exercise_name", "2");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "complete_exercise", eventValue);
[[AppsFlyerLib shared] logEvent:@"complete_exercise"
withValues: @{
@"course_name": @"algebra",
@"exercise_name": @"2"
}];
AppsFlyerLib.shared().logEvent("complete_exercise",withValues:
["course_name": "algebra","exercise_name": "2" ])
Dictionary<string, string> CompleteExerciseEvent = new Dictionary<string, string>();
CompleteExerciseEvent.Add("course_name", "algebra");
CompleteExerciseEvent.Add("exercise_name", "2");
AppsFlyer.sendEvent ("complete_exercise", CompleteExerciseEvent);
Cours terminé
Nom de l'événement : course_completed
Objectif
Vous pouvez enregistrer des cours terminés et comparer ces informations avec d'autres données pour en savoir plus sur vos utilisateurs. Par exemple, en enregistrant les événements de cours terminés, vous pouvez savoir combien d'utilisateurs commencent mais ne terminent pas un cours.
Logique de déclenchement
Le meilleur moyen d'enregistrer cet évènement est de le déclencher lorsque l'utilisateur achève un cours.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
course_name | chaîne | algèbre | Le nom du cours. |
course_completed | chaîne | Oui | Si le cours a été achevé. |
Exemples de code
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("course_name", "algebra");
eventValue.put("course_completed", "yes");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "course_completed", eventValue);
[AppsFlyerLib shared] logEvent:@"course_completed" withValues:@{
@"course_name": @"algebra",
@"course_completed": @"yes"}];
ApAppsFlyerLib.shared().logEvent("course_completed", withValues:
[ "course_name": "algebra",
"course_completed": "yes"])
Dictionary<string, string> CourseCompletedEvent = new Dictionary<string, string>();
CourseCompletedEvent.Add("course_name", "algebra");
CourseCompletedEvent.Add("course_completed", "yes");
AppsFlyer.sendEvent ("course_completed
", CourseCompletedEvent);
Certificat délivré
Nom de l'événement : certificate_issued
Objectif
Vous pouvez enregistrer les certificats délivrés et comparer ces informations avec d'autres données pour en savoir plus sur vos utilisateurs. Vous pouvez enregistrer les événements de certificats délivrés pour savoir combien de vos utilisateurs terminent un cours et les recibler vers le cours suivant.
Logique de déclenchement
La meilleure façon d'enregistrer cet événement est de le déclencher lorsque l'utilisateur reçoit un certificat.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
course_name | chaîne | algèbre | Le nom du cours. |
certificate_received | chaîne | Oui | Si le certificat a été délivré. |
Exemples de code
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("course_name", "algebra");
eventValue.put("certificate_received", "yes");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "certificate issued", eventValue);
[[AppsFlyerLib shared] logEvent:@"course_completed" withValues: @{
@"course_name": @"algebra",
@"certificate_received": @"yes"}];
AppsFlyerLib.shared().logEvent("certificate issued", withValues:
[ "course_name": "algebra",
"certificate_received": "yes"])
Dictionary<string, string> CertificateIssuedEvent = new Dictionary<string, string>();
CertificateIssuedEvent.Add("course_name", "algebra");
CertificateIssuedEvent.Add("certificate_received", "yes");
AppsFlyer.sendEvent ("certificate issued
", CertificateIssuedEvent);
Achat
Nom d’événement : af_purchase
Objectif
De nombreuses apps de formation en ligne permettent aux utilisateurs d'acheter des articles, par exemple des cours, des logiciels ou du matériel scolaire L'événement Achat vous permet d'enregistrer les achats in-app des utilisateurs. En enregistrant les achats, vous pouvez :
- Déterminer la LTV de vos utilisateurs et le ROI de vos campagnes sur les réseaux publicitaires et les agences de publicité.
- Déterminer quelles offres sont les plus populaires auprès de vos utilisateurs.
- Réaliser une référence croisée des campagnes avec les articles achetés de façon à optimiser le ciblage de vos campagnes.
Logique de déclenchement
Pour enregistrer correctement cet évènement, vous devez le déclencher lorsque l'utilisateur arrive sur la page de remerciement suite à un achat réussi.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_revenue | float | 200 | Le revenu estimé provenant de l'achat |
af_currency | chaîne | USD | Le code de devise |
af_content_id | chaîne | 001, 092 | L'ID de l'article |
order_id | chaîne | 9277 | L'ID de commande |
af_receipt_id | chaîne | 9277 | L'ID de reçu |
Exemples de code
Map<String, Object> eventValue = new HashMap<>();
eventValue.put(AFInAppEventParameterName.REVENUE, 200);
eventValue.put(AFInAppEventParameterName.CURRENCY, "USD");
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "092");
eventValue.put("order_id", "9277");
eventValue.put(AFInAppEventParameterName.RECEIPT_ID, "9277");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(),AFInAppEventType.PURCHASE, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventPurchase
withValues: @{
AFEventParamRevenue: @200,
AFEventParamCurrency: @"USD",
AFEventParamContentId: @"092",
@"order_id": @"9277",
AFEventParamReceiptId: @"9277"
}];
AppsFlyerLib.shared().logEvent(AFEventPurchase,
withValues: [
AFEventParamRevenue: 200,
AFEventParamCurrency: "USD",
AFEventParamContentId: "092",
"order_id": "9277",
AFEventParamReceiptId: "9277"
]);
Dictionary<string, string> purchaseEvent = new Dictionary<string, string>();
purchaseEvent.Add("af_revenue", "200");
purchaseEvent.Add("af_currency", "USD");
purchaseEvent.Add("af_content_id", "001");
purchaseEvent.Add("order_id", "9277");
purchaseEvent.Add("af_receipt_id", "9277");
AppsFlyer.sendEvent ("af_purchase", purchaseEvent);
Transport : VTC
Les apps de transport sont récemment devenues très populaires, en particulier dans les zones urbaines où la plupart des résidents ne possèdent pas de voiture. En enregistrant et en analysant les évènements in-app, vous pouvez en apprendre beaucoup sur :
- La façon dont les passagers et les conducteurs interagissent.
- Les pays dans lesquels plus de personnes utilisent votre service de transport.
- Les indicateurs de prix, de trajets et de distance parcourue.
Inscription complète
Nom d'événement : af_complete_registration
Objectif
Enregistrer l'évènement Enregistrement complet peut vous fournir des informations concernant vos utilisateurs. En enregistrant l'évènement Enregistrement complet, vous pouvez enregistrer :
- Découvrir quelle méthode d'inscription vos utilisateurs préfèrent (Google, Facebook, Email).
- Découvrir combien d'utilisateurs s'inscrivent vraiment après avoir téléchargé et installé l'app.
- Découvrir les tendances d'inscription dans tous les pays pour déterminer les pays dans lesquels les utilisateurs sont plus susceptibles d'utiliser votre app.
Logique de déclenchement
Déclenchez cet événement lorsque l'utilisateur s'inscrit avec succès.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_registration_method | chaîne | La plate-forme ou la méthode via laquelle l'utilisateur s'inscrit | |
country_code | chaîne | 66 | Le code du pays (code téléphonique) |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.REGSITRATION_METHOD, "shoes");
eventValue.put("country_code", "66");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.COMPLETE_REGISTRATION, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventCompleteRegistration
withValues: @{
AFEventParamRegistrationMethod: @"Facebook",
@"country_code": @"66",
}];
AppsFlyerLib.shared().logEvent(AFEventCompleteRegistration,
withValues: [
AFEventParamRegistrationMethod: "Facebook",
"country_code": "66"
]);
Dictionary<string, string> CompleteRegistrationEvent = new Dictionary<string, string>();
CompleteRegistrationEvent.Add("af_registration_method", "Facebook");
CompleteRegistrationEvent.Add("country_code", "66");
AppsFlyer.sendEvent("af_complete_registration", CompleteRegistrationEvent);
Ajouter des informations de paiement
Nom d’événement : af_add_payment_info
Objectif
Enregistrer l'évènement Ajouter des informations de paiement peut vous aider à classer les utilisateurs. Vous pouvez :
- Découvrir combien de temps il faut à un utilisateur pour ajouter ses informations de paiement.
- Quelles méthodes de paiement sont les plus populaires (carte de crédit, portefeuilles électroniques).
- Organiser des campagnes et des collaborations avec les fournisseurs de méthodes de paiement populaires.
Logique de déclenchement
Déclenchez cet événement lorsque l'utilisateur ajoute avec succès des informations de paiement sur son compte.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_success | booléen | true | Si l'ajout de la méthode de paiement est réussie ou non |
credit_card_type | chaîne | Visa, Mastercard | Type de carte de crédit (facultatif) |
payment_method_type | chaîne | carte de crédit, portefeuille électronique | Le type de méthode de paiement |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.SUCCESS, true);
eventValue.put("credit_card_type", "Visa");
eventValue.put("payment_method_type", true);
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.ADD_PAYMENT_INFO, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventAddPaymentInfo
withValues: @{
AFEventParamSuccess: @TRUE,
@"credit_card_type": @"Visa",
@"payment_method_type": @"credit card"
}];
AppsFlyerLib.shared().logEvent(AFEventAddPaymentInfo, withValues: [
AFEventParamSuccess: true,
"credit_card_type": "Visa",
"payment_method_type": "credit card"
]);
Dictionary<string, string> AddPaymentInfoEvent = new Dictionary<string, string>();
AddPaymentInfoEvent.Add("af_success", "true");
AddPaymentInfoEvent.Add("credit_card_type", "Visa");
AddPaymentInfoEvent.Add("payment_method_type", "credit card");
AppsFlyer.sendEvent("af_add_payment_info", AddPaymentInfoEvent);
Réservation de trajet demandée
Nom d'événement : ride_booking_requested
Objectif
L'évènement Réservation de trajet demandée est l'un des quatre évènements liés à la réservation d'un trajet. Ces évènements sont examinés ci-dessous. En enregistrant cet évènement, vous pouvez :
- Découvrir les destinations populaires.
- Découvrir les tendances, où les personnes se rendent et d'où elles partent.
- Connaître la distance moyenne d'un trajet.
- Découvrir de quels pays, régions et villes les utilisateurs sont originaires.
De plus, enregistrer cet évènement et les trois autres évènements liés à la réservation peut vous aider à enregistrer les transactions réussies. Vous pouvez suivre les transactions réussies et les comparer aux transactions infructueuses. Par exemple, vous pouvez voir combien de réservations de trajet sont demandées et le nombre de réservations de trajet terminées ou abandonnées.
Logique de déclenchement
Déclenchez cet événement lorsque le passager a créé une demande de réservation de trajet.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_price | float | 22.4 | Prix indiqué pour le trajet |
af_currency | chaîne | SGD | Devise |
af_destination_a | chaîne | Plaza Singapura | Point de départ |
af_destination_b | chaîne | Marina Bay Sands | Point d'arrivée |
distance | float | 5.2 | La distance entre les deux destinations |
af_content_type | chaîne | Taxi | Type de transport |
payment_method_type | chaîne | carte de crédit, portefeuille électronique | Le type de méthode de paiement |
af_city | chaîne | Singapour | La ville dans laquelle le trajet est réservé |
af_region | chaîne | SFA | La région dans laquelle le trajet est réservé |
af_country | chaîne | Singapour | Le pays dans lequel le trajet est réservé |
order_id | chaîne | 135790 | ID de la commande |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.PRICE, 22.4);
eventValue.put(AFInAppEventParameterName.CURRENCY, "SGD");
eventValue.put(AFInAppEventParameterName.DESTINATION_A, "Plaza Singapura");
eventValue.put(AFInAppEventParameterName.DESTINATION_B, "Marina Bay Sands");
eventValue.put("distance", 5.2);
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "Taxi");
eventValue.put("payment_method_type", "credit card");
eventValue.put("notes", "Taxi stand");
eventValue.put(AFInAppEventParameterName.CITY, "Singapore");
eventValue.put(AFInAppEventParameterName.REGION, "SFA");
eventValue.put(AFInAppEventParameterName.COUNTRY, "Singapore");
eventValue.put("af_order_id", "135790");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "ride_booking_requested", eventValue);
[[AppsFlyerLib shared] logEvent:@"ride_booking_requested"
withValues: @{
AFEventParamPrice: @22.4,
AFEventParamCurrency: @"SGD",
AFEventParamDestinationA: @"Plaza Singapura",
AFEventParamDestinationB: @"Marina Bay Sands",
@"distance": @5.2,
AFEventParamContentType: @"Taxi",
@"payment_method_type": @"credit card",
@"notes": @"Taxi stand",
AFEventParamCity: @"Singapore",
AFEventParamRegion: @"SFA",
AFEventParamCountry: @"Singapore",
AFEventParamOrderId: @"135790"
}];
AppsFlyerLib.shared().logEvent("ride_booking_requested",
withValues: [
AFEventParamPrice: 22.4,
AFEventParamCurrency: "SGD",
AFEventParamDestinationA: "Plaza Singapura",
AFEventParamDestinationB: "Marina Bay Sands",
"distance": 5.2,
AFEventParamContentType: "Taxi",
"payment_method_type": "credit card",
"notes": "Taxi stand",
AFEventParamCity: "Singapore",
AFEventParamRegion: "SFA",
AFEventParamCountry: "Singapore",
AFEventParamOrderId: "135790"
]);
Dictionary<string, string> RideBookingRequestedEvent = new Dictionary<string, string>();
RideBookingRequestedEvent.Add("af_price", "22.4");
RideBookingRequestedEvent.Add("af_currency", "SGD");
RideBookingRequestedEvent.Add("af_destination_a", "Plaza Singapura");
RideBookingRequestedEvent.Add("af_destination_b", "Marina Bay Sands");
RideBookingRequestedEvent.Add("distance", "5.2");
RideBookingRequestedEvent.Add("af_content_type", "Taxi");
RideBookingRequestedEvent.Add("payment_method_type", "credit card");
RideBookingRequestedEvent.Add("notes", "Taxi stand");
RideBookingRequestedEvent.Add("af_city", "Singapore");
RideBookingRequestedEvent.Add("af_region", "SFA");
RideBookingRequestedEvent.Add("af_country", "Singapore");
RideBookingRequestedEvent.Add("af_order_id", "135790");
AppsFlyer.sendEvent("ride_booking_requested", RideBookingRequestedEvent);
Réservation de trajet confirmée
Nom d'événement : ride_booking_confirmed
Objectif
L'évènement Réservation de trajet confirmée est l'un des quatre évènements liés à la réservation d'un trajet. En enregistrant cet évènement, vous pouvez :
- Découvrir qui sont les conducteurs les plus actifs.
- Découvrir quelles destinations sont fréquentes chez les conducteurs.
- Voir les prix moyen et total des trajets pour chaque conducteur.
De plus, enregistrer cet évènement et les trois autres évènements liés à la réservation peut vous aider à mieux comprendre les activités du conducteur. Vous pouvez voir les conducteurs qui confirment le plus de demandes de réservations de trajets, ceux qui choisissent les trajets courts et non les longs, etc.
Logique de déclenchement
Déclenchez cet événement lorsque la réservation est acceptée par un conducteur.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_price | float | 22.4 | Prix indiqué pour le trajet |
af_currency | chaîne | SGD | Devise |
af_destination_a | chaîne | Plaza Singapura | Point de départ |
af_destination_b | chaîne | Marina Bay Sands | Point d'arrivée |
distance | float | 5.2 | La distance entre les deux destinations |
af_content_type | chaîne | Taxi | Type de transport |
driver_id | chaîne | 1706 | L'ID du conducteur qui a confirmé faire le trajet |
payment_method_type | chaîne | carte de crédit, portefeuille électronique | Le type de méthode de paiement |
af_city | chaîne | Singapour | La ville dans laquelle le trajet est réservé |
af_region | chaîne | SFA | La région dans laquelle le trajet est réservé |
af_country | chaîne | Singapour | Le pays dans lequel le trajet est réservé |
af_order_id | chaîne | 135790 | ID de la commande |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.PRICE, 22.4);
eventValue.put(AFInAppEventParameterName.CURRENCY, "SGD");
eventValue.put(AFInAppEventParameterName.DESTINATION_A, "Plaza Singapura");
eventValue.put(AFInAppEventParameterName.DESTINATION_B, "Marina Bay Sands");
eventValue.put("distance", 5.2);
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "Taxi");
eventValue.put("driver_id", "1706");
eventValue.put("payment_method_type", "credit card");
eventValue.put("notes", "Taxi stand");
eventValue.put(AFInAppEventParameterName.CITY, "Singapore");
eventValue.put(AFInAppEventParameterName.REGION, "SFA");
eventValue.put(AFInAppEventParameterName.COUNTRY, "Singapore");
eventValue.put("af_order_id", "135790");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "ride_booking_confirmed", eventValue);
[[AppsFlyerLib shared] logEvent:@"ride_booking_confirmed"
withValues: @{
AFEventParamPrice: @22.4,
AFEventParamCurrency: @"SGD",
AFEventParamDestinationA: @"Plaza Singapura",
AFEventParamDestinationB: @"Marina Bay Sands",
@"distance": @5.2,
AFEventParamContentType: @"Taxi",
@"driver_id": @"1706",
@"payment_method_type": @"credit card",
@"notes": @"Taxi stand",
AFEventParamCity: @"Singapore",
AFEventParamRegion: @"SFA",
AFEventParamCountry: @"Singapore",
AFEventParamOrderId: @"135790"
}];
AppsFlyerLib.shared().logEvent("ride_booking_confirmed",
withValues: [
AFEventParamPrice: 22.4,
AFEventParamCurrency: "SGD",
AFEventParamDestinationA: "Plaza Singapura",
AFEventParamDestinationB: "Marina Bay Sands",
"distance": 5.2,
AFEventParamContentType: "Taxi",
"driver_id": "1706",
"payment_method_type": "credit card",
"notes": "Taxi stand",
AFEventParamCity: "Singapore",
AFEventParamRegion: "SFA",
AFEventParamCountry: "Singapore",
AFEventParamOrderId: "135790"
]);
Dictionary<string, string> RideBookingConfirmedEvent = new Dictionary<string, string>();
RideBookingConfirmedEvent.Add("af_price", "22.4");
RideBookingConfirmedEvent.Add("af_currency", "SGD");
RideBookingConfirmedEvent.Add("af_destination_a", "Plaza Singapura");
RideBookingConfirmedEvent.Add("af_destination_b", "Marina Bay Sands");
RideBookingConfirmedEvent.Add("distance", "5.2");
RideBookingConfirmedEvent.Add("af_content_type", "Taxi");
RideBookingConfirmedEvent.Add("driver_id", "1706");
RideBookingConfirmedEvent.Add("payment_method_type", "credit card");
RideBookingConfirmedEvent.Add("notes", "Taxi stand");
RideBookingConfirmedEvent.Add("af_city", "Singapore");
RideBookingConfirmedEvent.Add("af_region", "SFA");
RideBookingConfirmedEvent.Add("af_country", "Singapore");
RideBookingConfirmedEvent.Add("af_order_id", "135790");
AppsFlyer.sendEvent("ride_booking_confirmed", RideBookingConfirmedEvent);
Réservation de trajet annulée
Nom d'événement : ride_booking_cancelled
Objectif
L'évènement Réservation de trajet annulée est l'un des quatre évènements liés à la réservation d'un trajet. En enregistrant cet évènement, vous pouvez :
- Enregistrer les conducteurs ou les passagers qui annulent constamment.
- Découvrir le nombre de trajets annulés.
- Mettre en corrélation le taux d'annulation avec des attributs tels que le prix, la destination, la distance, les villes, etc.
- Découvrir pourquoi un trajet est annulé.
Logique de déclenchement
Déclenchez cet événement lorsque la réservation est annulée.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_price | float | 22.4 | Prix indiqué pour le trajet |
af_currency | chaîne | SGD | Devise |
af_destination_a | chaîne | Plaza Singapura | Point de départ |
af_destination_b | chaîne | Marina Bay Sands | Point d'arrivée |
distance | float | 5.2 | La distance entre les deux destinations |
af_content_type | chaîne | Taxi | Type de transport |
driver_id | chaîne | 1706 | L'ID du conducteur qui a confirmé faire le trajet |
cancelation_reason | chaîne | le prix est trop élevé, le conducteur n'était pas là, le passager n'était pas là | La raison pour laquelle le trajet est annulé |
payment_method_type | chaîne | carte de crédit, portefeuille électronique | Le type de méthode de paiement |
af_city | chaîne | Singapour | La ville dans laquelle le trajet est réservé |
af_region | chaîne | SFA | La région dans laquelle le trajet est réservé |
af_country | chaîne | Singapour | Le pays dans lequel le trajet est réservé |
order_id | chaîne | 135790 | ID de la commande |
canceled_by | chaîne | Passager | Si le trajet soit annulé par le passager ou le conducteur |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.PRICE, 22.4);
eventValue.put(AFInAppEventParameterName.CURRENCY, "SGD");
eventValue.put(AFInAppEventParameterName.DESTINATION_A, "Plaza Singapura");
eventValue.put(AFInAppEventParameterName.DESTINATION_B, "Marina Bay Sands");
eventValue.put("distance", 5.2);
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "Taxi");
eventValue.put("driver_id", "1706");
eventValue.put("cancellation_reason", "driver didn't show up");
eventValue.put("payment_method_type", "credit card");
eventValue.put("notes", "Taxi stand");
eventValue.put(AFInAppEventParameterName.CITY, "Singapore");
eventValue.put(AFInAppEventParameterName.REGION, "SFA");
eventValue.put(AFInAppEventParameterName.COUNTRY, "Singapore");
eventValue.put("af_order_id", "135790");
eventValue.put("canceled_by", "passenger");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "ride_booking_canceled", eventValue);
[[AppsFlyerLib shared] logEvent:@"ride_booking_canceled"
withValues: @{
AFEventParamPrice: @22.4,
AFEventParamCurrency: @"SGD",
AFEventParamDestinationA: @"Plaza Singapura",
AFEventParamDestinationB: @"Marina Bay Sands",
@"distance": @5.2,
AFEventParamContentType: @"Taxi",
@"driver_id": @"1706",
@"cancelation_reason": @"driver didn't show up",
@"payment_method_type": @"credit card",
@"notes": @"Taxi stand",
AFEventParamCity: @"Singapore",
AFEventParamRegion: @"SFA",
AFEventParamCountry: @"Singapore",
AFEventParamOrderId: @"135790",
@"canceled_by": @"passenger"
}];
AppsFlyerLib.shared().logEvent("ride_booking_canceled",
withValues: [
AFEventParamPrice: 22.4,
AFEventParamCurrency: "SGD",
AFEventParamDestinationA: "Plaza Singapura",
AFEventParamDestinationB: "Marina Bay Sands",
"distance": 5.2,
AFEventParamContentType: "Taxi",
"driver_id": "1706",
"cancelation_reason": "driver didn't show up",
"payment_method_type": "credit card",
"notes": "Taxi stand",
AFEventParamCity: "Singapore",
AFEventParamRegion: "SFA",
AFEventParamCountry: "Singapore",
AFEventParamOrderId: "135790",
"canceled_by": "passenger"
]);
Dictionary<string, string> RideBookingCanceledEvent = new Dictionary<string, string>();
RideBookingCanceledEvent.Add("af_price", "22.4");
RideBookingCanceledEvent.Add("af_currency", "SGD");
RideBookingCanceledEvent.Add("af_destination_a", "Plaza Singapura");
RideBookingCanceledEvent.Add("af_destination_b", "Marina Bay Sands");
RideBookingCanceledEvent.Add("distance", "5.2");
RideBookingCanceledEvent.Add("af_content_type", "Taxi");
RideBookingCanceledEvent.Add("driver_id", "1706");
RideBookingCanceledEvent.Add("cancelation_reason", "driver didn't show up");
RideBookingCanceledEvent.Add("payment_method_type", "credit card");
RideBookingCanceledEvent.Add("notes", "Taxi stand");
RideBookingCanceledEvent.Add("af_city", "Singapore");
RideBookingCanceledEvent.Add("af_region", "SFA");
RideBookingCanceledEvent.Add("af_country", "Singapore");
RideBookingCanceledEvent.Add("af_order_id", "135790");
RideBookingCanceledEvent.Add("canceled_by", "passenger");
AppsFlyer.sendEvent("ride_booking_cancelled", RideBookingCanceledEvent);
Réservation de trajet terminée
Nom d'événement : ride_booking_completed
Objectif
L'évènement Réservation de trajet terminéeest l'un des quatre évènements liés à la réservation d'un trajet. En enregistrant cet évènement, vous pouvez :
- Découvrir les dépenses des passagers et les revenus des conducteurs.
- Mettre en corrélation les trajets terminés avec des attributs tels que la destination, le type de paiement, l'ID du conducteur, etc.
- Découvrir la distance moyenne et totale pour les conducteurs et les passagers.
- Comparer les trajets terminés aux trajets annulés.
- Enregistrer et suivre le score des conducteurs.
Logique de déclenchement
Déclenchez cet événement lorsque le trajet est terminé.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_price | float | 22.4 | Prix indiqué pour le trajet |
af_currency | chaîne | SGD | Devise |
af_destination_a | chaîne | Plaza Singapura | Point de départ |
af_destination_b | chaîne | Marina Bay Sands | Point d'arrivée |
distance | float | 5.2 | La distance entre les deux destinations |
af_content_type | chaîne | Taxi | Type de transport |
driver_id | chaîne | 1706 | L'ID du conducteur qui a confirmé faire le trajet |
payment_method_type | chaîne | carte de crédit, portefeuille électronique | Le type de méthode de paiement |
af_city | chaîne | Singapour | La ville dans laquelle le trajet est réservé |
af_region | chaîne | SFA | La région dans laquelle le trajet est réservé |
af_country | chaîne | Singapour | Le pays dans lequel le trajet est réservé |
order_id | chaîne | 135790 | ID de la commande |
credits_earned | int | 248 | Les crédits que le passager a gagnés en terminant un trajet |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.PRICE, 22.4);
eventValue.put(AFInAppEventParameterName.CURRENCY, "SGD");
eventValue.put(AFInAppEventParameterName.DESTINATION_A, "Plaza Singapura");
eventValue.put(AFInAppEventParameterName.DESTINATION_B,"Marina Bay Sands");
eventValue.put("distance", 5.2);
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "Taxi");
eventValue.put("driver_id", "1706");
eventValue.put("payment_method_type", "credit card");
eventValue.put("notes", "Taxi stand");
eventValue.put(AFInAppEventParameterName.CITY, "Singapore");
eventValue.put(AFInAppEventParameterName.REGION, "SFA");
eventValue.put(AFInAppEventParameterName.COUNTRY, "Singapore");
eventValue.put("af_order_id", "135790");
eventValue.put("credits_earned", 248);
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "ride_booking_completed" , eventValue);
[[AppsFlyerLib shared] logEvent:@"ride_booking_completed"
withValues: @{
AFEventParamPrice: @22.4,
AFEventParamCurrency: @"SGD",
AFEventParamDestinationA: @"Plaza Singapura",
AFEventParamDestinationB: @"Marina Bay Sands",
@"distance": @5.2,
AFEventParamContentType: @"Taxi",
@"driver_id": @"1706",
@"payment_method_type": @"credit card",
@"notes": @"Taxi stand",
AFEventParamCity: @"Singapore",
AFEventParamRegion: @"SFA",
AFEventParamCountry: @"Singapore",
AFEventParamOrderId: @"135790",
@"credits_earned": @248
}];
AppsFlyerLib.shared().logEvent("ride_booking_completed",
withValues: [
AFEventParamPrice: 22.4,
AFEventParamCurrency: "SGD",
AFEventParamDestinationA: "Plaza Singapura",
AFEventParamDestinationB: "Marina Bay Sands",
distance": 5.2,
AFEventParamContentType: "Taxi",
"driver_id": "1706",
"payment_method_type": "credit card",
"notes": "Taxi stand",
AFEventParamCity: "Singapore",
AFEventParamRegion: "SFA",
AFEventParamCountry: "Singapore",
AFEventParamOrderId: "135790",
"credits_earned": 248
]);
Dictionary<string, string> RideBookingCompletedEvent = new Dictionary<string, string>();
RideBookingCompletedEvent.Add("af_price", "22.4");
RideBookingCompletedEvent.Add("af_currency", "SGD");
RideBookingCompletedEvent.Add("af_destination_a", "Plaza Singapura");
RideBookingCompletedEvent.Add("af_destination_b", "Marina Bay Sands");
RideBookingCompletedEvent.Add("distance", "5.2");
RideBookingCompletedEvent.Add("af_content_type", "Taxi");
RideBookingCompletedEvent.Add("driver_id", "1706");
RideBookingCompletedEvent.Add("payment_method_type", "credit card");
RideBookingCompletedEvent.Add("notes", "Taxi stand");
RideBookingCompletedEvent.Add("af_city", "Singapore");
RideBookingCompletedEvent.Add("af_region", "SFA");
RideBookingCompletedEvent.Add("af_country", "Singapore");
RideBookingCompletedEvent.Add("af_order_id", "135790");
AppsFlyer.sendEvent("ride_booking_completed", RideBookingCompletedEvent);
Crédit utilisés
Nom d'événement : spent_credits
Objectif
L'événement Réservation de trajet terminée détaillé ci-dessus possède un champ appelé credits_earned
. Ce champ enregistre les crédits que le passager acquiert pour chaque trajet. Le passager peut ensuite échanger ces crédits contre des bons ou des remises. En enregistrant ces évènements, vous pouvez :
- Découvrir le nombre de passagers qui échangent leurs crédits contre des bons.
- Découvrir quel type de bons et de remises les passagers préfèrent.
Logique de déclenchement
Déclenchez cet événement lorsqu'un passager dépense des crédits.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_content | chaîne | Un billet de cinéma | Le type de bon ou de remise |
credits_used | int | 1000 | Le nombre de crédits utilisés |
credits_remaining | int | 2090 | Le nombre de crédits restant sur le compte |
invoice_id | chaîne | KO215123SD | L'ID de la facture créée pour les crédits dépensés |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.CONTENT, "Single movie ticket");
eventValue.put("credits_used", 1000);
eventValue.put("invoice_id", "");
eventValue.put("credits_remaining", "KO215123SD");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "spent_credits" , eventValue);
[[AppsFlyerLib shared] logEvent:@"spent_credits"
withValues: @{
AFEventParamContent: @"Single movie ticket",
@"credits_used": @1000,
@"credits_remaining": @2090,
@"invoice_id": @"KO215123SD"
}];
AppsFlyerLib.shared().logEvent("spent_credits",
withValues: [
AFEventParamContent: "Single movie ticket",
"credits_used": 1000,
"credits_remaining": 2090,
"invoice_id": "KO215123SD"
]);
Dictionary<string, string> CreditsSpent = new Dictionary<string, string>();
CreditsSpent.Add("af_content", "Single movie ticket");
CreditsSpent.Add("credits_used", "1000");
CreditsSpent.Add("credits_remaining", "2090");
CreditsSpent.Add("invoice_id", "KO215123SD");
AppsFlyer.sendEvent("af_content_view", CreditsSpent);
Voyage : réservation de vol
Les apps de réservation de vols permettent aux voyageurs de réserver facilement des vols et d'obtenir les meilleures offres. Les évènements que nous vous recommandons de suivre sont la réservation d'un vol, la recherche de vols et la visualisation des offres. Enregistrer ces évènement permet d'analyser les préférences et les achats de l'utilisateur. Par exemple, en analysant les données provenant d'évènements, vous pouvez :
- Découvrir les destinations populaires.
- Analyser les tendances saisonnières.
- Découvrir les compagnies aériennes populaires avec lesquelles les utilisateurs préfèrent voyager.
Réservation de voyage
Nom d’événement : af_travel_booking
Objectif
La possibilité de réserver des vols constitue la fonctionnalité principale de l'app. En enregistrant cet événement avec l'ensemble de ses champs, vous pouvez vous obtenir des infos sur :
- Les destinations populaires.
- Les compagnies aériennes populaires.
- Les tendances saisonnières.
Logique de déclenchement
Envoyez cet événement lorsque l'utilisateur atterrit sur la page de remerciement après avoir réservé un vol avec succès.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_revenue | float | 647 | Revenu associé à la réservation |
af_currency | chaîne | SGD | Le code de devise |
af_price | float | 674 | Le prix |
af_content_id | chaîne | ODIRNH | L'ID de l'offre de vol |
af_departing_departure_date | chaîne | 2018-06-21 | Date de départ |
af_returning_departure_date | chaîne | 2018-06-26 | Date de retour |
af_destination_a | chaîne | BKK | Première destination |
af_destination_b | chaîne | SYD | Deuxième destination (le cas échéant) |
airline_code | chaîne | KLM | Le code de la compagnie aérienne |
af_class | chaîne | classe économique | La classe du vol réservé |
purchase_method | chaîne | carte de crédit | Carte de crédit, Paypal, etc. |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.REVENUE, 647);
eventValue.put(AFInAppEventParameterName.CURRENCY, "SGD");
eventValue.put(AFInAppEventParameterName.PRICE, 674);
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "ODIRNH");
eventValue.put(AFInAppEventParameterName.DEPARTING_DEPARTURE_DATE, "2018-06-21");
eventValue.put(AFInAppEventParameterName.RETURNING_DEPARTURE_DATE, "2018-06-26");
eventValue.put(AFInAppEventParameterName.DESTINATION_A, "BKK");
eventValue.put(AFInAppEventParameterName.DESTINATION_B, "SYD");
eventValue.put("airline_code", "KLM");
eventValue.put(AFInAppEventParameterName.CLASS, "economy");
eventValue.put("purchase_method", "credit card");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.TRAVEL_BOOKING, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventTravelBooking
withValues: @{
AFEventParamRevenue: @647,
AFEventParamCurrency: @"SGD",
AFEventParamPrice: @674,
AFEventParamContentId: @"ODIRNH",
AFEventParamDepartingDepartureDate: @"2018-21-06",
AFEventParamReturningDepartureDate: @"2018-26-06",
AFEventParamDestinationA: @"BKK",
AFEventParamDestinationB: @"SYD",
@"airline_code": @"KLM",
AFEventParamClass: @"economy",
@"purchase_method": @"credit card"
}];
AppsFlyerLib.shared().logEvent(AFEventTravelBooking,
withValues: [
AFEventParamRevenue: 647,
AFEventParamCurrency: "SGD",
AFEventParamPrice: 674,
AFEventParamContentId: "ODIRNH",
AFEventParamDepartingDepartureDate: "2018-21-06",
AFEventParamReturningDepartureDate: "2018-26-06",
AFEventParamDestinationA: "BKK",
AFEventParamDestinationB: "SYD",
"airline_code": "KLM",
AFEventParamClass: "economy",
"purchase_method": "credit card"
]);
Dictionary<string, string> TravelBookingEvent = new Dictionary<string, string>();
TravelBookingEvent.Add("af_revenue", "647");
TravelBookingEvent.Add("af_currency", "SGD");
TravelBookingEvent.Add("af_price", "974");
TravelBookingEvent.Add("af_content_id", "ODIRNH");
TravelBookingEvent.Add("af_departing_departure_date", "2018-06-21");
TravelBookingEvent.Add("af_returning_departure_date", "2018-06-26");
TravelBookingEvent.Add("af_destination_a", "BKK");
TravelBookingEvent.Add("af_destination_b", "SYD");
TravelBookingEvent.Add("airline_code", "KLM");
TravelBookingEvent.Add("af_class", "economy");
TravelBookingEvent.Add("purchase_method", "credit card");
AppsFlyer.sendEvent ("af_travel_booking", TravelBookingEvent);
Vue du contenu
Nom d’événement : af_content_view
Objectif
Après avoir effectué une recherche, les utilisateurs cliquent sur les résultats de recherche qu'ils jugent pertinents. Enregistrer le contenu que les utilisateurs consultent dans les résultats de recherche peut vous aider à :
- Comprendre quelles offres de vol les utilisateurs trouvent plus attrayantes.
- Déterminer si les résultats de recherche sont pertinents pour les éléments recherchés.
Logique de déclenchement
Il est préférable de déclencher cet événement lorsqu'un utilisateur clique sur un résultat de recherche.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_departing_departure_date | chaîne | 2018-06-21 | Date de départ |
af_returning_departure_date | chaîne | 2018-06-26 | Date de retour |
af_destination_a | chaîne | BKK | Première destination |
af_destination_b | chaîne | SYD | deuxième destination (le cas échéant) |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.DEPARTING_DEPARTURE_DATE, "2018-06-21");
eventValue.put(AFInAppEventParameterName.RETURNING_DEPARTURE_DATE, "2018-06-26");
eventValue.put(AFInAppEventParameterName.DESTINATION_A, "BKK");
eventValue.put(AFInAppEventParameterName.DESTINATION_B, "SYD");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.CONTENT_VIEW, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventContentView
withValues: @{
AFEventParamDepartingDepartureDate: @"2018-21-06",
AFEventParamReturningDepartureDate: @"2018-26-06",
AFEventParamDestinationA: @"BKK",
AFEventParamDestinationB: @"SYD"
}];
AppsFlyerLib.shared().logEvent(AFEventContentView, withValues: [
AFEventParamDepartingDepartureDate: "2018-21-06",
AFEventParamReturningDepartureDate: "2018-26-06",
AFEventParamDestinationA: "BKK",
AFEventParamDestinationA: "SYD"
]);
Dictionary<string, string> ContentViewEvent = new Dictionary<string, string>();
ContentViewEvent.Add("af_departing_departure_date", "2018-06-21");
ContentViewEvent.Add("af_returning_departure_date", "2018-06-26");
ContentViewEvent.Add("af_destination_a", "BKK");
ContentViewEvent.Add("af_destination_b", "SYD");
AppsFlyer.sendEvent ("af_content_view", ContentViewEvent);
Recherche
Nom d’événement : af_search
Objectif
Les apps de réservation de vols permettent aux utilisateurs de rechercher des vols et des bonnes affaires. Pour obtenir des informations sur les préférences des utilisateurs vous pouvez par exemple enregistrer les paramètres de recherche. En enregistrant l'événement de recherche et ses champs, vous pouvez :
- Découvrir ce que les utilisateurs recherchent le plus.
- Découvrir quelles destinations sont les plus populaires.
- Découvrir le nombre d'utilisateurs voyageant avec des enfants.
- Découvrir à quelle période de l'année les utilisateurs préfèrent ou prévoient de voyager.
Logique de déclenchement
Déclenchez cet événement lorsque l'utilisateur clique sur le bouton de recherche, après avoir rempli le formulaire de recherche.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_num_children | int | 0 | Combien d'enfants vont voyager |
af_destination_a | chaîne | BKK | Première destination |
af_destination_b | chaîne | SYD | Deuxième destination (le cas échéant) |
af_departing_departure_date | chaîne | 2018-06-21 | Date de départ |
af_returning_departure_date | chaîne | 2018-06-26 | Date de retour |
af_num_infants | int | 0 | Combien de bébés vont voyager |
af_num_adults | int | 1 | Combien d'adultes vont voyager |
Exemples de code
Map<String, Object> eventValue = new HashMap<String,
eventValue.put(AFInAppEventParameterName.NUM_CHILDREN, 0);
eventValue.put(AFInAppEventParameterName.DESTINATION_A, "BKK");
eventValue.put(AFInAppEventParameterName.DESTINATION_B, "SYD");
eventValue.put(AFInAppEventParameterName.DEPARTING_DEPARTURE_DATE, "2018-06-21");
eventValue.put(AFInAppEventParameterName.RETURNING_DEPARTURE_DATE, "2018-06-26");
eventValue.put(AFInAppEventParameterName.NUM_INFANTS, 0);
eventValue.put(AFInAppEventParameterName.NUM_ADULTS, 1);
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.SEARCH, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventSearch
withValues: @{
AFEventParamNumChildren: @0,
AFEventParamDestinationA: @"BKK",
AFEventParamDestinationB: @"SYD",
AFEventParamDepartingDepartureDate: @"2018-21-06",
AFEventParamReturningDepartureDate: @"2018-26-06",
AFEventParamNumInfants: @0,
AFEventParamNumAdults: @1
}];
AppsFlyerLib.shared().logEvent(AFEventSearch, withValues: [
AFEventParamNumChildren: 0,
AFEventParamDestinationA: "BKK",
AFEventParamDestinationB: "SYD",
AFEventParamDepartingDepartureDate: "2018-21-06",
AFEventParamReturningDepartureDate: "2018-26-06",
AFEventParamNumInfants: 0,
AFEventParamNumAdults: 1
]);
Dictionary<string, string> SearchEvent = new Dictionary<string, string>();
SearchEvent.Add("af_num_children", "0");
SearchEvent.Add("af_destination_a", "BKK");
SearchEvent.Add("af_destination_b", "SYD");
SearchEvent.Add("af_departing_departure_date", "2018-06-21");
SearchEvent.Add("af_returning_departure_date", "2018-06-26");
SearchEvent.Add("af_num_infants", "0");
SearchEvent.Add("af_num_adults", "0");
AppsFlyer.sendEvent ("af_search", SearchEvent);
Ajouter des informations de paiement
Nom d’événement : af_add_payment_info
Objectif
Cet évènement peut vous aider à enregistrer les tentatives réussies et infructueuses d'ajout des informations de paiement lors de la réservation d'un vol.
Logique de déclenchement
Déclenchez cet événement lorsqu'un utilisateur clique sur le bouton Réserver un vol.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_success | booléen | true | Si l'ajout de la méthode de paiement est réussie ou non |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.SUCCESS, true);
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.ADD_PAYMENT_INFO, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventAddPaymentInfo
withValues: @{
AFEventParamSuccess: @TRUE
}];
AppsFlyerLib.shared().logEvent(AFEventAddPaymentInfo,
withValues: [
AFEventParamSuccess: true
]);
Dictionary<string, string> AddPaymentInfoEvent = new Dictionary<string, string>();
AddPaymentInfoEvent.Add("af_success", "true");
AppsFlyer.sendEvent ("af_add_payment_info", AddPaymentInfoEvent);
Premier achat
Nom d’événement : first_purchase
Objectif
Cet événement est le même que l'événement Achat. Cependant, contrairement à l'événement Achat, l'événement Premier achat peut être utilisé pour :
- Voir combien de temps il faut à un nouvel acheteur pour procéder à l'achat
- Savoir quels vols les nouveaux acheteurs préfèrent réserver.
- Voir le prix moyen et le revenu provenant des nouveaux achats.
Logique de déclenchement
Déclenchez cet événement lorsque l'utilisateur finalise son premier achat.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_revenue | float | 1200 | Revenu des achats |
af_price | float | 4000 | Montant global des achats |
af_content_id | chaîne | 121, 262 | ID de l'article |
af_content_type | chaîne | vol | Catégorie de l'article |
af_currency | chaîne | AUD | Devise |
af_quantity | int | 1 | Quantité d'articles dans le panier |
af_order_id | chaîne | X123ABC | ID de la commande qui est généré après l'achat. |
af_receipt_id | chaîne | X123ABC | ID de la commande, mais nécessaire pour l'intégration du retargeting CRITEO et Google AdWords |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.PRICE, 350);
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "221");
// for multiple product categories, set the param value as: new String {"221", "124"}
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "flight");
// for multiple product categories set the param value as: new String {"flight", "meal"}
eventValue.put(AFInAppEventParameteName.CURRENCY, "USD");
eventValue.put(AFInAppEventParameterName.QUANTITY, 2);
// for multiple product categories, set the param value as: new int {1}
eventValue.put(AFInAppEventParameterName.RECEIPT_ID, "X123ABC");
eventValue.put("af_order_id", "X123ABC");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "first_purchase", eventValue);
[[AppsFlyerLib shared] logEvent:("first_purchase")
withValues: @{
AFEventParamRevenue: @1200,
AFEventParamPrice: @4000,
AFEventParamContentId: @"221",
// for multiple product categories, set the param value as: @[@"221", @"124"]
AFEventParamContentType: @"shirt",
// for multiple product categories, set the param value as: @[@"flight" , @"meal"]
AFEventParamCurrency: @"USD",
AFEventParamQuantity: @2,
// for multiple product categories, set the param value as: @[@1]
AFEventParamOrderId: @"X123ABC",
AFEventParamReceiptId: @"X123ABC"
}];
AppsFlyerLib.shared().logEvent("first_purchase", withValues: [
AFEventParamRevenue: 1200,
AFEventParamPrice: 4000,
AFEventParamContentId: "221",
// for multiple product categories, set the param value as: ["221", "124"]
AFEventParamContentType: "shirt",
// for multiple product categories, set the param value as: ["flight", "meal"]
AFEventParamCurrency: "USD",
AFEventParamQuantity: 2,
// for multiple product categories, set the param value as: // [1]
AFEventParamOrderId: "X123ABC",
AFEventParamReceiptId: "X123ABC"
]);
Dictionary<string, string> FirstPurchaseEvent = new Dictionary<string, string>();
FirstPurchaseEvent.Add("af_revenue", "1200");
FirstPurchaseEvent.Add("af_price", "4000");
FirstPurchaseEvent.Add("af_content_id", "121");
// for multiple product categories, set the param value as: ["221", "124"]
FirstPurchaseEvent.Add("af_content_type", "shoes");
// for multiple product categories, set the param value as: ["flight", "meal"]
FirstPurchaseEvent.Add("af_currency", "USD");
FirstPurchaseEvent.Add("af_quantity", "2");
// for multiple product categories, set the param value as: [1]
FirstPurchaseEvent.Add("af_order_id", "X123ABC");
FirstPurchaseEvent.Add("af_receipt_id", "X123ABC");
AppsFlyer.sendEvent ("first_purchase", FirstPurchaseEvent);
Voyage : réservation d'hôtel
En enregistrant les évènements in-app dans votre app de réservation d'hôtel, vous pouvez voir quelles campagnes et sources médias apportent les utilisateurs qui réservent vraiment des vacances. De plus, vous pouvez voir quelles campagnes et sources médias apportent les utilisateurs qui réservent le plus et génèrent plus de revenus. Vous pouvez attribuer des préférences telles que la note de l'hôtel, la saison, le pays et le nombre d'enfants des utilisateurs provenant de certaines sources médias. En attribuant les préférences utilisateur aux sources médias, vous êtes en mesure d'optimiser les campagnes dans les sources médias en ciblant les préférences utilisateur.
Inscription complète
Nom d'événement : af_complete_registration
Objectif
Vous pouvez enregistrer l'inscription d'utilisateurs et la comparer avec d'autres données pour en savoir plus sur vos utilisateurs. En enregistrant les évènements d'inscription des utilisateurs, vous pouvez :
- Découvrir le nombre d'utilisateurs qui ont installé l'app mais qui ne se sont jamais inscrits.
- Découvrir les méthodes d'inscription préférées des utilisateurs.
- Découvrez quelles sources médias apportent des utilisateurs qui s'inscrivent vraiment.
Logique de déclenchement
Le meilleur moyen d'enregistrer cet évènement est de le déclencher lorsque l'utilisateur achève le processus d'inscription.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_registration_method | chaîne | email, facebook | Le type de méthode d'inscription |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.REGSITRATION_METHOD, "Facebook");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.COMPLETE_REGISTRATION, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventCompleteRegistration
withValues: @{
AFEventParamRegistrationMethod: @"Facebook"
}];
AppsFlyerLib.shared().logEvent(AFEventCompleteRegistration,
withValues: [
AFEventParamRegistrationMethod: "Facebook"
]);
Dictionary<string, string> CompletedRegistrationEvent = new Dictionary<string, string>();
CompletedRegistrationEvent.Add("af_registration_method", "Facebook");
AppsFlyer.sendEvent ("af_complete_registration", CompletedRegistrationEvent);
Connexion
Nom d’événement : af_login
Objectif
Cet évènement peut vous aider à enregistrer le taux de rétention de vos utilisateurs enregistrés.
Logique de déclenchement
Déclenchez cet événement à chaque fois que l'utilisateur se connecte ou ouvre l'app.
Champs recommandés
Cet événement peut être envoyé sans champ supplémentaire.
Exemples de code
AppsFlyerLib.getInstance().logEvent(getApplicationContext(),
AFInAppEventType.LOGIN, null);
[[AppsFlyerLib shared] logEvent:AFEventLogin
withValues: nil
];
AppsFlyerLib.shared().logEvent(AFEventLogin, withValues: nil);
AppsFlyer.sendEvent ("af_login", null);
Recherche
Nom d’événement : af_search
Objectif
L'objectif de cet événement est de vous faire savoir ce que recherchent les utilisateurs. Lorsque vous savez ce que les utilisateurs recherchent, vous pouvez leur proposer de meilleures offres et promotions. De plus, vous pouvez voir ce que les utilisateurs provenant de certaines zones géographiques recherchent et les cibler en conséquence au moyen des sources médias.
Logique de déclenchement
Déclenchez cet événement lorsque l'utilisateur effectue une recherche.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_date_a | chaîne | 2018/07/26 | Date d'arrivée |
af_date_b | chaîne | 2018/08/01 | Date de départ |
af_destination_a | chaîne | Londres | Localisation de l'utilisateur |
af_destination_b | chaîne | Madrid | Localisation de l'hôtel |
af_num_adults | float | 2 | Nombre de clients |
af_num_children | float | 0 | Nombre d'enfants |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.DATE_A, "2018/07/26");
eventValue.put(AFInAppEventParameterName.DATE_B, "2018/08/01");
eventValue.put(AFInAppEventParameterName.DESTINATION_A, "London");
eventValue.put(AFInAppEventParameterName.DESTINATION_B, "Madrid");
eventValue.put(AFInAppEventParameterName.NUM_ADULTS, 2);
eventValue.put(AFInAppEventParameterName.NUM_CHILDREN, 0);
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.SEARCH, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventSearch
withValues: @{
AFEventParamDateA: @"2018/07/26",
AFEventParamDateB: @"2018/08/01",
AFEventParamDestinationA: @"London",
AFEventParamDestinationB: @"Madrid",
AFEventParamNumAdults: @2,
AFEventParamNumChildren: @0
}];
AppsFlyerLib.shared().logEvent(AFEventSearch, withValues: [
AFEventParamDateA: "2018/07/26",
AFEventParamDateB: "2018/08/01",
AFEventParamDestinationA: "London",
AFEventParamDestinationB: "Madrid",
AFEventParamNumAdults: 2,
AFEventParamNumChildren: 0
]);
Dictionary<string, string> Search =
new Dictionary<string, string>();
Search.Add("af_date_a", "2018/07/26");
Search.Add("af_date_b", "2018/08/01");
Search.Add("af_destination_a", "London");
Search.Add("af_destination_b", "Madrid");
Search.Add("af_num_adults", "2");
Search.Add("af_num_children", "0");
AppsFlyer.sendEvent("af_add_to_wish_list", Search);
Vue du contenu
Nom d’événement : af_content_view
Objectif
L'objectif de cet événement est de vous montrer ce que visualisent les utilisateurs des hôtels. Vous pouvez voir quel type de propriété les utilisateurs recherchent et connaître leurs préférences en matière de saison et de localisation. Vous pouvez ensuite recibler ces utilisateurs via des publicités et des promotions. De plus, vous pouvez voir quels utilisateurs visualisent et réservent par opposition aux utilisateurs qui visualisent uniquement. Pour ceux qui réservent vraiment, vous pouvez voir de quelles sources médias ils proviennent. Pour ceux qui visualisent uniquement, vous pouvez les recibler.
Logique de déclenchement
Déclenchez cet événement lorsque l'utilisateur visualise une propriété.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_price | float | 674 | Tarif en vigueur de l'hôtel |
af_content_id | chaîne | ODIRNH | L'ID de l'hôtel |
af_date_a | chaîne | 2018/07/26 | Date d'arrivée |
af_date_b | chaîne | 2018/08/01 | Date de départ |
af_destination_a | chaîne | Londres | Localisation de l'utilisateur |
af_destination_b | chaîne | Madrid | Localisation de l'hôtel |
af_class | chaîne | De luxe | Type de chambre |
af_num_adults | float | 2 | Nombre de clients |
af_num_children | float | 0 | Nombre d'enfants |
af_hotel_score | float | 9.6 | Note de l'hôtel selon les avis |
af_preferred_star_ratings | float | 5 | Nombre d'étoiles de l'hôtel préféré |
af_preferred_neighborhoods | chaîne | Centro | La zone où se trouve l'hôtel |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.CURRENCY, "GBP");
eventValue.put(AFInAppEventParameterName.PRICE, 674);
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "ODIRNH");
eventValue.put(AFInAppEventParameterName.DATE_A, "2018/07/26");
eventValue.put(AFInAppEventParameterName.DATE_B, "2018/08/01");
eventValue.put(AFInAppEventParameterName.DESTINATION_A, "London");
eventValue.put(AFInAppEventParameterName.DESTINATION_B, "Madrid");
eventValue.put(AFInAppEventParameterName.CLASS, "Deluxe");
eventValue.put(AFInAppEventParameterName.NUM_ADULTS, 2);
eventValue.put(AFInAppEventParameterName.NUM_CHILDREN, 0);
eventValue.put(AFInAppEventParameterName.HOTEL_SCORE, 9.6);
eventValue.put(AFInAppEventParameterName.PREFERRED_STAR_RATINGS, 5);
eventValue.put(AFInAppEventParameterName.PREFERRED_NEIGHBORHOODS, "Centro");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.CONTENT_VIEW, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventContentView
withValues: @{
AFEventParamCurrency: @"GBP",
AFEventParamPrice: @674,
AFEventParamContentId: @"ODIRNH",
AFEventParamDateA: @"2018/07/26",
AFEventParamDateB: @"2018/08/01",
AFEventParamDestinationA: @"London",
AFEventParamDestinationB: @"Madrid",
AFEventParamClass: @"Deluxe",
AFEventParamNumAdults: @2,
AFEventParamNumChildren: @0,
AFEventParamHotelScore: @9.6,
AFEventParamPreferredStarRatings: @5,
AFEventParamPreferredNeighborhoods: @"Centro"
}];
AppsFlyerLib.shared().logEvent(AFEventContentView, withValues: [
AFEventParamCurrency: "GBP",
AFEventParamPrice: 674,
AFEventParamContentId: "ODIRNH",
AFEventParamDateA: "2018/07/26",
AFEventParamDateB: "2018/08/01",
AFEventParamDestinationA: "London",
AFEventParamDestinationB: "Madrid",
AFEventParamClass: "Deluxe",
AFEventParamNumAdults: 2,
AFEventParamNumChildren: 0,
AFEventParamHotelScore: 9.6,
AFEventParamPreferredStarRatings: 5,
AFEventParamPreferredNeighborhoods: "Centro"
]);
Dictionary<string, string> ContentView =
new Dictionary<string, string>();
ContentView.Add("af_currency", "GBP");
ContentView.Add("af_price", "674");
ContentView.Add("af_content_id", "ODIRNH");
ContentView.Add("af_date_a", "2018/07/26");
ContentView.Add("af_date_b", "2018/08/01");
ContentView.Add("af_destination_a", "London");
ContentView.Add("af_destination_b", "Madrid");
ContentView.Add("af_class", "Deluxe");
ContentView.Add("af_num_adults", "2");
ContentView.Add("af_num_children", "0");
ContentView.Add("af_hotel_score", "9.6");
ContentView.Add("af_preferred_star_ratings", "5");
ContentView.Add("af_preferred_neighborhoods", "Centro");
AppsFlyer.sendEvent("af_content_view", ContentView);
Ajouter à la wishlist
Nom d’événement : af_add_to_wishlist
Objectif
L'évènement Ajouter à la liste de vœux indique les hôtels et les destinations que les utilisateurs souhaitent réserver. En enregistrant cet évènement, vous pouvez obtenir des informations sur ce que souhaitent les utilisateurs. Si vous savez que certains utilisateurs recherchent des hôtels et régions spécifiques comportant des scores et notes spécifiques, vous pouvez cibler et recibler ces utilisateurs.
Logique de déclenchement
Déclenchez cet événement lorsqu'un utilisateur ajoute une annonce à sa liste de vœux.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_price | float | 674 | Tarif en vigueur de l'hôtel |
af_content_id | chaîne | ODIRNH | L'ID de l'hôtel |
af_date_a | chaîne | 2018/07/26 | Date d'arrivée |
af_date_b | chaîne | 2018/08/01 | Date de départ |
af_destination_a | chaîne | Londres | Localisation de l'utilisateur |
af_destination_b | chaîne | Madrid | Localisation de l'hôtel |
af_class | chaîne | De luxe | Type de chambre |
af_num_adults | float | 2 | Nombre de clients |
af_num_children | float | 0 | Nombre d'enfants |
af_hotel_score | float | 9.6 | Note de l'hôtel selon les avis |
af_preferred_star_ratings | float | 5 | Nombre d'étoiles de l'hôtel préféré |
af_preferred_neighborhoods | chaîne | Centro | La zone où se trouve l'hôtel |
purchase_method | chaîne | Carte de crédit | La méthode d'achat |
af_coupon_code | chaîne | SUM2018 | Code promotionnel ou points de fidélité |
property_type | chaîne | Hôtel | Le type de propriété |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.CURRENCY, "GBP");
eventValue.put(AFInAppEventParameterName.PRICE, 674);
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "ODIRNH");
eventValue.put(AFInAppEventParameterName.DATE_A, "2018/07/26");
eventValue.put(AFInAppEventParameterName.DATE_B, "2018/08/01");
eventValue.put(AFInAppEventParameterName.DESTINATION_A, "London");
eventValue.put(AFInAppEventParameterName.DESTINATION_B, "Madrid");
eventValue.put(AFInAppEventParameterName.CLASS, "Deluxe");
eventValue.put(AFInAppEventParameterName.NUM_ADULTS, 2);
eventValue.put(AFInAppEventParameterName.NUM_CHILDREN, 0);
eventValue.put(AFInAppEventParameterName.HOTEL_SCORE, 9.6);
eventValue.put(AFInAppEventParameterName.PREFERRED_STAR_RATINGS, 5);
eventValue.put(AFInAppEventParameterName.PREFERRED_NEIGHBORHOODS, "Centro");
eventValue.put("purchase_method", "credit card");
eventValue.put(AFInAppEventParameterName.COUPON_CODE, "SUM2018");
eventValue.put("property_type", "hotel");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.ADD_TO_WISH_LIST, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventAddToWishlist
withValues: @{
AFEventParamCurrency: @"GBP",
AFEventParamPrice: @674,
AFEventParamContentId: @"ODIRNH",
AFEventParamDateA: @"2018/07/26",
AFEventParamDateB: @"2018/08/01",
AFEventParamDestinationA: @"London",
AFEventParamDestinationB: @"Madrid",
AFEventParamClass: @"Deluxe",
AFEventParamNumAdults: @2,
AFEventParamNumChildren: @0,
AFEventParamHotelScore: @9.6,
AFEventParamPreferredStarRatings: @5,
AFEventParamPreferredNeighborhoods: @"Centro",
@"purchase_method": @"credit card",
AFEventParamCouponCode: @"SUM2018",
@"property_type": @"hotel"
}];
AppsFlyerLib.shared().logEvent(AFEventAddToWishlist, withValues: [
AFEventParamCurrency: "GBP",
AFEventParamPrice: 674,
AFEventParamContentId: "ODIRNH",
AFEventParamDateA: "2018/07/26",
AFEventParamDateB: "2018/08/01",
AFEventParamDestinationA: "London",
AFEventParamDestinationB: "Madrid",
AFEventParamClass: "Deluxe",
AFEventParamNumAdults: 2,
AFEventParamNumChildren: 0,
AFEventParamHotelScore: 9.6,
AFEventParamPreferredStarRatings: 5,
AFEventParamPreferredNeighborhoods: "Centro",
"purchase_method": "credit card",
AFEventParamCouponCode: "SUM2018",
"property_type": "hotel"
]);
Dictionary<string, string> AddToWishList =
new Dictionary<string, string>();
AddToWishList.Add("af_currency", "GBP");
AddToWishList.Add("af_price", "674");
AddToWishList.Add("af_content_id", "ODIRNH");
AddToWishList.Add("af_date_a", "2018/07/26");
AddToWishList.Add("af_date_b", "2018/08/01");
AddToWishList.Add("af_destination_a", "London");
AddToWishList.Add("af_destination_b", "Madrid");
AddToWishList.Add("af_class", "Deluxe");
AddToWishList.Add("af_num_adults", "2");
AddToWishList.Add("af_num_children", "0");
AddToWishList.Add("af_hotel_score", "9.6");
AddToWishList.Add("af_preferred_star_ratings", "5");
AddToWishList.Add("af_preferred_neighborhoods", "Centro");
AddToWishList.Add("purchase_method", "credit card");
AddToWishList.Add("af_coupon_code", "SUM2018");
AddToWishList.Add("af_property_type", "hotel");
AppsFlyer.sendEvent("af_add_to_wish_list", AddToWishList);
Checkout initié
Nom d’événement : af_initiated_checkout
Objectif
L'objectif de cet évènement est de vous permettre d'enregistrer le nombre d'utilisateurs qui initient le paiement. De plus, vous pouvez voir quelle méthode d'achat ils utilisent pour payer (carte de crédit, portefeuille électronique) et cibler en conséquence. Vous pouvez également voir quels utilisateurs ne terminent pas le processus de paiement et les recibler.
Logique de déclenchement
Déclenchez cet événement lorsque l'utilisateur ajoute ses informations de carte de crédit ou associe son portefeuille électronique.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_price | float | 674 | Tarif en vigueur de l'hôtel |
af_content_id | chaîne | ODIRNH | L'ID de l'hôtel |
af_date_a | chaîne | 2018/07/26 | Date d'arrivée |
af_date_b | chaîne | 2018/08/01 | Date de départ |
af_destination_a | chaîne | Londres | Localisation de l'utilisateur |
af_destination_b | chaîne | Madrid | Localisation de l'hôtel |
af_class | chaîne | De luxe | Type de chambre |
af_num_adults | float | 2 | Nombre de clients |
af_num_children | float | 0 | Nombre d'enfants |
af_hotel_score | float | 9.6 | Note de l'hôtel selon les avis |
af_preferred_star_ratings | float | 5 | Nombre d'étoiles de l'hôtel préféré |
af_preferred_neighborhoods | chaîne | Centro | La zone où se trouve l'hôtel |
purchase_method | chaîne | Carte de crédit | La méthode d'achat |
af_coupon_code | chaîne | SUM2018 | Code promotionnel ou points de fidélité |
property_type | chaîne | Hôtel | Le type de propriété |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.CURRENCY, "GBP");
eventValue.put(AFInAppEventParameterName.PRICE, 674);
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "ODIRNH");
eventValue.put(AFInAppEventParameterName.DATE_A, "2018/07/26");
eventValue.put(AFInAppEventParameterName.DATE_B, "2018/08/01");
eventValue.put(AFInAppEventParameterName.DESTINATION_A, "London");
eventValue.put(AFInAppEventParameterName.DESTINATION_B, "Madrid");
eventValue.put(AFInAppEventParameterName.CLASS, "Deluxe");
eventValue.put(AFInAppEventParameterName.NUM_ADULTS, 2);
eventValue.put(AFInAppEventParameterName.NUM_CHILDREN, 0);
eventValue.put(AFInAppEventParameterName.HOTEL_SCORE, 9.6);
eventValue.put(AFInAppEventParameterName.PREFERRED_STAR_RATINGS, 5);
eventValue.put(AFInAppEventParameterName.PREFERRED_NEIGHBORHOODS, "Centro");
eventValue.put("purchase_method", "credit card");
eventValue.put(AFInAppEventParameterName.COUPON_CODE, "SUM2018");
eventValue.put("property_type", "hotel");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.INITIATED_CHECKOUT, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventInitiatedCheckout
withValues: @{
AFEventParamCurrency: @"GBP",
AFEventParamPrice: @674,
AFEventParamContentId: @"ODIRNH",
AFEventParamDateA: @"2018/07/26",
AFEventParamDateB: @"2018/08/01",
AFEventParamDestinationA: @"London",
AFEventParamDestinationB: @"Madrid",
AFEventParamClass: @"Deluxe",
AFEventParamNumAdults: @2,
AFEventParamNumChildren: @0,
AFEventParamHotelScore: @9.6,
AFEventParamPreferredStarRatings: @5,
AFEventParamPreferredNeighborhoods: @"Centro",
@"purchase_method": @"credit card",
AFEventParamCouponCode: @"SUM2018",
@"property_type": @"hotel"
}];
AppsFlyerLib.shared().logEvent(AFEventInitiatedCheckout, withValues: [
AFEventParamCurrency: "GBP",
AFEventParamPrice: 674,
AFEventParamContentId: "ODIRNH",
AFEventParamDateA: "2018/07/26",
AFEventParamDateB: "2018/08/01",
AFEventParamDestinationA: "London",
AFEventParamDestinationB: "Madrid",
AFEventParamClass: "Deluxe",
AFEventParamNumAdults: 2,
AFEventParamNumChildren: 0,
AFEventParamHotelScore: 9.6,
AFEventParamPreferredStarRatings: 5,
AFEventParamPreferredNeighborhoods: "Centro",
"purchase_method": "credit card",
AFEventParamCouponCode: "SUM2018",
"property_type": "hotel"
]);
Dictionary<string, string> InitiatedCheckout =
new Dictionary<string, string>();
InitiatedCheckout.Add("af_currency", "GBP");
InitiatedCheckout.Add("af_price", "674");
InitiatedCheckout.Add("af_content_id", "ODIRNH");
InitiatedCheckout.Add("af_date_a", "2018/07/26");
InitiatedCheckout.Add("af_date_b", "2018/08/01");
InitiatedCheckout.Add("af_destination_a", "London");
InitiatedCheckout.Add("af_destination_b", "Madrid");
InitiatedCheckout.Add("af_class", "Deluxe");
InitiatedCheckout.Add("af_num_adults", "2");
InitiatedCheckout.Add("af_num_children", "0");
InitiatedCheckout.Add("af_hotel_score", "9.6");
InitiatedCheckout.Add("af_preferred_star_ratings", "5");
InitiatedCheckout.Add("af_preferred_neighborhoods", "Centro");
InitiatedCheckout.Add("purchase_method", "credit card");
InitiatedCheckout.Add("af_coupon_code", "SUM2018");
InitiatedCheckout.Add("af_property_type", "hotel");
AppsFlyer.sendEvent("af_initiated_chekcout", InitiatedCheckout);
Réservation de voyage
Nom d'événement : travel_booking
Objectif
L'objectif de l'évènement Réservation de voyage est de vous permettre de consulter le taux de réservation global dans votre app. De plus, en suivant cet évènement, vous pouvez :
- Enregistrer les revenus générés par les réservations.
- Découvrir le nombre d'utilisateurs qui réservent des hôtels avec des enfants.
- Comprendre les tendances saisonnières.
- Découvrir quels hôtels sont populaires auprès des utilisateurs.
Logique de déclenchement
Déclenchez cet événement lorsque l'utilisateur atteint la page de remerciement après avoir réservé une chambre d'hôtel.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_revenue | float | 647 | Revenus des réservations |
af_currency | chaîne | GBP | Code de devise |
af_price | float | 674 | Tarif en vigueur de l'hôtel |
af_content_id | chaîne | ODIRNH | L'ID de l'hôtel |
af_date_a | chaîne | 2018/07/26 | Date d'arrivée |
af_date_b | chaîne | 2018/08/01 | Date de départ |
af_destination_a | chaîne | Londres | Localisation de l'utilisateur |
af_destination_b | chaîne | Madrid | Localisation de l'hôtel |
af_class | chaîne | De luxe | Type de chambre |
af_num_adults | float | 2 | Nombre de clients |
af_num_children | float | 0 | Nombre d'enfants |
af_hotel_score | float | 9.6 | Note de l'hôtel selon les avis |
af_preferred_star_ratings | float | 5 | Nombre d'étoiles de l'hôtel préféré |
af_preferred_neighborhoods | chaîne | Centro | La zone où se trouve l'hôtel |
purchase_method | chaîne | Carte de crédit | La méthode d'achat |
af_coupon_code | chaîne | SUM2018 | Code promotionnel ou points de fidélité |
property_type | chaîne | Hôtel | Le type de propriété |
new_booking | booléen | true | Première réservation de l'utilisateur |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.REVENUE, 647);
eventValue.put(AFInAppEventParameterName.CURRENCY, "GBP");
eventValue.put(AFInAppEventParameterName.PRICE, 674);
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "ODIRNH");
eventValue.put(AFInAppEventParameterName.DATE_A, "2018/07/26");
eventValue.put(AFInAppEventParameterName.DATE_B, "2018/08/01");
eventValue.put(AFInAppEventParameterName.DESTINATION_A, "London");
eventValue.put(AFInAppEventParameterName.DESTINATION_B, "Madrid");
eventValue.put(AFInAppEventParameterName.CLASS, "Deluxe");
eventValue.put(AFInAppEventParameterName.NUM_ADULTS, 2);
eventValue.put(AFInAppEventParameterName.NUM_CHILDREN, 0);
eventValue.put(AFInAppEventParameterName.HOTEL_SCORE, 9.6);
eventValue.put(AFInAppEventParameterName.PREFERRED_STAR_RATINGS, 5);
eventValue.put(AFInAppEventParameterName.PREFERRED_NEIGHBORHOODS, "Centro");
eventValue.put("purchase_method", "credit card");
eventValue.put(AFInAppEventParameterName.COUPON_CODE, "SUM2018");
eventValue.put("property_type", "hotel");
eventValue.put("new_booking", true);
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "travel_booking", eventValue);
[[AppsFlyerLib shared] logEvent:@"travel_booking"
withValues: @{
AFEventParamRevenue: @647,
AFEventParamCurrency: @"GBP",
AFEventParamPrice: @674,
AFEventParamContentId: @"ODIRNH",
AFEventParamDateA: @"2018/07/26",
AFEventParamDateB: @"2018/08/01",
AFEventParamDestinationA: @"London",
AFEventParamDestinationB: @"Madrid",
AFEventParamClass: @"Deluxe",
AFEventParamNumAdults: @2,
AFEventParamNumChildren: @0,
AFEventParamHotelScore: @9.6,
AFEventParamPreferredStarRatings: @5,
AFEventParamPreferredNeighborhoods: @"Centro",
@"purchase_method": @"credit card",
AFEventParamCouponCode: @"SUM2018",
@"property_type": @"hotel",
@"new_booking": @TRUE
}];
AppsFlyerLib.shared().logEvent("travel_booking", withValues: [
AFEventParamRevenue: 647,
AFEventParamCurrency: "GBP",
AFEventParamPrice: 674,
AFEventParamContentId: "ODIRNH",
AFEventParamDateA: "2018/07/26",
AFEventParamDateB: "2018/08/01",
AFEventParamDestinationA: "London",
AFEventParamDestinationB: "Madrid",
AFEventParamClass: "Deluxe",
AFEventParamNumAdults: 2,
AFEventParamNumChildren: 0,
AFEventParamHotelScore: 9.6,
AFEventParamPreferredStarRatings: 5,
AFEventParamPreferredNeighborhoods: "Centro",
"purchase_method": "credit card",
AFEventParamCouponCode: "SUM2018",
"property_type": "hotel",
"new_booking": true
]);
Dictionary<string, string> TravelBooking =
new Dictionary<string, string>();
TravelBooking.Add("af_revenue", "647");
TravelBooking.Add("af_currency", "GBP");
TravelBooking.Add("af_price", "674");
TravelBooking.Add("af_content_id", "ODIRNH");
TravelBooking.Add("af_date_a", "2018/07/26");
TravelBooking.Add("af_date_b", "2018/08/01");
TravelBooking.Add("af_destination_a", "London");
TravelBooking.Add("af_destination_b", "Madrid");
TravelBooking.Add("af_class", "Deluxe");
TravelBooking.Add("af_num_adults", "2");
TravelBooking.Add("af_num_children", "0");
TravelBooking.Add("af_hotel_score", "9.6");
TravelBooking.Add("af_preferred_star_ratings", "5");
TravelBooking.Add("af_preferred_neighborhoods", "Centro");
TravelBooking.Add("purchase_method", "credit card");
TravelBooking.Add("af_coupon_code", "SUM2018");
TravelBooking.Add("af_property_type", "hotel");
TravelBooking.Add("af_new_booking", "true");
AppsFlyer.sendEvent("travel_booking", TravelBooking);
Premier achat
Nom d’événement : first_purchase
Objectif
Cet événement est le même que l'événement Achat. Cependant, contrairement à l'événement Achat, l'événement Premier achat peut être utilisé pour :
- Voir combien de temps il faut à un nouvel acheteur pour procéder à l'achat
- Voir quels produits les nouveaux acheteurs préfèrent acheter.
- Voir le prix moyen et le revenu provenant des nouveaux achats.
Logique de déclenchement
Déclenchez cet événement lorsque l'utilisateur finalise son premier achat.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_revenue | float | 1200 | Revenu des achats |
af_price | float | 4000 | Montant global des achats |
af_content_id | chaîne | 121, 262 | ID de l'article |
af_content_type | chaîne | hôtel | Catégorie de l'article |
af_currency | chaîne | AUD | Devise |
af_quantity | int | 1 | Quantité d'articles dans le panier |
af_order_id | chaîne | X123ABC | ID de la commande qui est généré après l'achat. |
af_receipt_id | chaîne | X123ABC | ID de la commande, mais nécessaire pour l'intégration du retargeting CRITEO et Google AdWords |
Exemples de code
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.PRICE, 350);
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "221");
// for multiple product categories, set the param value as: new String {"221", "124"}
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "hotel");
// for multiple product categories set the param value as: new String {"hotel", "meals"}
eventValue.put(AFInAppEventParameteName.CURRENCY, "USD");
eventValue.put(AFInAppEventParameterName.QUANTITY, 2);
// for multiple product categories, set the param value as: new int {1}
eventValue.put(AFInAppEventParameterName.RECEIPT_ID, "X123ABC");
eventValue.put("af_order_id", "X123ABC");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "first_purchase", eventValue);
[[AppsFlyerLib shared] logEvent:("first_purchase")
withValues: @{
AFEventParamRevenue: @1200,
AFEventParamPrice: @4000,
AFEventParamContentId: @"221",
// for multiple product categories, set the param value as: @[@"221", @"124"]
AFEventParamContentType: @"hotel",
// for multiple product categories, set the param value as: @[@"hotel", @"meals"]
AFEventParamCurrency: @"USD",
AFEventParamQuantity: @2,
// for multiple product categories, set the param value as: @[@1]
AFEventParamOrderId: @"X123ABC",
AFEventParamReceiptId: @"X123ABC"
}];
AppsFlyerLib.shared().logEvent("first_purchase", withValues: [
AFEventParamRevenue: 1200,
AFEventParamPrice: 4000,
AFEventParamContentId: "221",
// for multiple product categories, set the param value as: ["221", "124"]
AFEventParamContentType: "hotel",
// for multiple product categories, set the param value as: ["hotel", "meals"]
AFEventParamCurrency: "USD",
AFEventParamQuantity: 2,
// for multiple product categories, set the param value as: // [1]
AFEventParamOrderId: "X123ABC",
AFEventParamReceiptId: "X123ABC"
]);
Dictionary<string, string> FirstPurchaseEvent = new Dictionary<string, string>();
FirstPurchaseEvent.Add("af_revenue", "1200");
FirstPurchaseEvent.Add("af_price", "4000");
FirstPurchaseEvent.Add("af_content_id", "121");
// for multiple product categories, set the param value as: ["221", "124"]
FirstPurchaseEvent.Add("af_content_type", "hotel");
// for multiple product categories, set the param value as: ["hotel", "meals"]
FirstPurchaseEvent.Add("af_currency", "USD");
FirstPurchaseEvent.Add("af_quantity", "2");
// for multiple product categories, set the param value as: [1]
FirstPurchaseEvent.Add("af_order_id", "X123ABC");
FirstPurchaseEvent.Add("af_receipt_id", "X123ABC");
AppsFlyer.sendEvent ("first_purchase", FirstPurchaseEvent);
Soins médicaux
Les apps de soins médicaux permettent aux utilisateurs d'acheter une mutuelle santé, de prendre rendez-vous, de recevoir des conseils de spécialistes de la santé, etc. Les événements in-app que nous recommandons d'enregistrer dans les apps de soins médicaux incluent les achats et les réservations. Voici quelques exemples illustrant à quoi l'enregistrement de ces évènements peut vous servir :
- L'enregistrement des achats vous aide à comprendre quels sont les médicaments les plus utilisés et demandés.
- L'enregistrement de formules d'assurance vous aide à comprendre quels sont les forfaits qui intéressent le plus les utilisateurs.
- L'enregistrement des prises de rendez-vous vous aide à savoir quels les problèmes de santé qui préoccupent le plus les utilisateurs.
Connexion
Nom d’événement : af_login
Objectif
Cet évènement peut vous aider à déterminer le taux de rétention de vos utilisateurs inscrits.
Logique de déclenchement
Déclenchez cet événement à chaque fois que l'utilisateur se connecte.
Champs recommandés
Cet événement peut être envoyé sans champ supplémentaire.
Exemples de code
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.LOGIN, null);
[[AppsFlyerLib shared] logEvent:AFEventLogin withValues: nil];
AppsFlyerLib.shared().logEvent(AFEventLogin, withValues: nil);
AppsFlyer.sendEvent ("af_login", null);
Inscription complète
Nom d'événement : complete_registration
Objectif
Vous pouvez enregistrer l'inscription d'utilisateurs et la comparer avec d'autres données pour en savoir plus sur vos utilisateurs. En enregistrant les évènements d'inscription des utilisateurs, vous pouvez :
- Découvrir le nombre d'utilisateurs qui ont installé l'app mais qui ne se sont jamais inscrits.
- Découvrir les méthodes d'inscription préférées des utilisateurs.
Logique de déclenchement
Le meilleur moyen d'enregistrer cet évènement est de le déclencher lorsque l'utilisateur achève le processus d'inscription.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_registration_method | chaîne | email, facebook | Le type de méthode d'inscription |
Exemples de code
Map<String, Object> eventValue = new HashMap<>();
eventValue.put(AFInAppEventParameterName.REGISTRATION_METHOD, "Facebook");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.COMPLETE_REGISTRATION, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventCompleteRegistration
withValues: @{
AFEventParamRegistrationMethod: @"Facebook"
}];
AppsFlyerLib.shared().logEvent(AFEventCompleteRegistration,
withValues: [
AFEventParamRegistrationMethod: "Facebook"
]);
Dictionary<string, string> CompleteRegistrationEvent = new Dictionary<string, string>();
CompleteRegistrationEvent.Add("af_registration_method", "Facebook");
AppsFlyer.sendEvent ("af_complete_registration", CompleteRegistrationEvent);
Rendez-vous confirmé
Nom d'événement : confirmed_appointment
Objectif
Vous pouvez enregistrer le moment où un utilisateur prend un rendez-vous de n'importe quel type. Cela peut vous permettre, par exemple, dans le cas où vous enregistrez les événements de confirmation de rendez-vous, d'envoyer à ces utilisateurs des publicités de retargeting ou des rappels pour les contrôles réguliers et les consultations qui suivent.
Logique de déclenchement
La meilleure façon d'enregistrer cet événement est de le déclencher lorsque l'utilisateur prend un rendez-vous.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
nom du médecin | chaîne | Julie Robert | Nom du médecin. |
numéro du rendez-vous | chaîne | 001 | Numéro du rendez-vous. |
Exemples de code
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("doctor name", "Robert James");
eventValue.put("appointment number", "001");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "confirmed_appointment", eventValue);
[[AppsFlyerLib shared] logEvent:@"confirmed_appointment" withValues: @{
@"doctor name": @"Robert James",
@"appointment number": @"001"}];
AppsFlyerLib.shared().logEvent("confirmed_appointment", withValues:
[ "doctor name": "Robert James",
"appointment number": "001"])
Dictionary<string, string> ConfirmedAppointmentEvent= new Dictionary<string, string>();
ConfirmedAppointmentEvent.Add("doctor name", "Robert James");
ConfirmedAppointmentEvent.Add("appointment number", "001");
AppsFlyer.sendEvent ("confirmed_appointment", ConfirmedAppointmentEvent);
Rendez-vous annulé
Nom d'événement : canceled_appointment
Objectif
Vous pouvez enregistrer le moment où un utilisateur annule un rendez-vous. Cela peut vous permettre, par exemple, dans le cas où vous enregistrez les événements d'annulation de rendez-vous, d'envoyer à ces utilisateurs des publicités de retargeting pour reprogrammer leur consultation.
Logique de déclenchement
La meilleure façon d'enregistrer cet événement est de le déclencher lorsque l'utilisateur annule un rendez-vous.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
nom du médecin | chaîne | Julie Robert | Nom du médecin. |
numéro du rendez-vous | chaîne | 001 | Numéro du rendez-vous. |
Exemples de code
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("doctor name", "Robert James");
eventValue.put("appointment number", "001");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "canceled_appointment", eventValue);
[[AppsFlyerLib shared] logEvent:@"canceled_appointment" withValues: @{
@"doctor name": @"Robert James",
@"appointment number": @"001"}];
AppsFlyerLib.shared().logEvent("canceled_appointment", withValues:
[ "doctor name": "Robert James",
"appointment number": "001"])
Dictionary<string, string> CanceledAppointmentEvent= new Dictionary<string, string>();
CanceledAppointmentEvent.Add("doctor name", "Robert James");
CanceledAppointmentEvent.Add("appointment number", "001");
AppsFlyer.sendEvent ("canceled_appointment", CanceledAppointmentEvent);
Première consultation avec le/la médecin
Nom d'événement: doctor_first_booking
Objectif
Vous pouvez enregistrer le moment où un utilisateur prend son premier rendez-vous. Cela peut vous permettre, par exemple, dans le cas où vous enregistrez les événements de prise de premier rendez-vous, d'envoyer à ces utilisateurs des publicités de retargeting ou d'offres promo.
Logique de déclenchement
La meilleure façon d'enregistrer cet événement est de le déclencher lorsque l'utilisateur prend son premier rendez-vous.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
nom du médecin | chaîne | Julie Robert | Nom du médecin. |
spécialité | chaîne | neurologie | Spécialité médicale. |
durée | chaîne | Chat de 30 minutes | Durée de la consultation. |
price | chaîne | 50 | Tarif de la consultation. |
Exemples de code
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("doctor name", "Robert James");
eventValue.put("specialty", "neurology");
eventValue.put("duration", "30 min chat");
eventValue.put("price", "50");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "doctor_first_booking", eventValue);
[[AppsFlyerLib shared] logEvent:@"doctor_first_booking" withValues: @{
@"doctor name": @"Robert James",
@"specialty": @"neurology",
@"duration": @"30 min chat",
@"price": @"50"}];
AppsFlyerLib.shared().logEvent("doctor_first_booking", withValues:
[ "doctor name": "Robert James",
"specialty": "neurology",
"duration": "30 min chat",
"price": "50"])
Dictionary<string, string> DoctorFirstBookingEvent= new Dictionary<string, string>();
DoctorFirstBookingEvent.Add("doctor name", "Robert James");
DoctorFirstBookingEvent.Add("appointment number", "001");
DoctorFirstBookingEvent.Add("duration", "30 min chat");
DoctorFirstBookingEvent.Add("price", "50");
AppsFlyer.sendEvent ("doctor_first_booking", DoctorFirstBookingEvent);
Premier rendez-vous au laboratoire
Nom d'événement : lab_first_appointment
Objectif
Vous pouvez enregistrer le moment où un utilisateur prend son premier rendez-vous. Cela peut vous permettre, par exemple, dans le cas où vous enregistrez les événements de prise de premier rendez-vous, d'envoyer à ces utilisateurs des publicités de retargeting ou d'offres promo.
Logique de déclenchement
La meilleure façon d'enregistrer cet événement est de le déclencher lorsque l'utilisateur prend son premier rendez-vous.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
sélection du laboratoire | chaîne | check-up général | Nom du type de laboratoire. |
quantity | chaîne | 2 | Montant commandé. |
price | chaîne | 500 | Tarif du laboratoire. |
Exemples de code
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("lab selection", "full body checkup");
eventValue.put("quantity", "2");
eventValue.put("price", "500");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "lab_first_appointment", eventValue);
[[AppsFlyerLib shared] logEvent:@"lab_first_appointment" withValues: @{
@"lab_selection": @"full body checkup",
@"quantity": @"2",
@"price": @"500"}];
AppsFlyerLib.shared().logEvent("lab_first_appointment", withValues:
[ "lab selection": "full body checkup",
"quantity": "2",
"price": "500"])
Dictionary<string, string> LabFirstAppointmentEvent= new Dictionary<string, string>();
LabFirstAppointmentEvent.Add("lab selection", "full body checkup");
LabFirstAppointmentEvent.Add("quantity", "2");
LabFirstAppointmentEvent.Add("price", "500");
AppsFlyer.sendEvent ("lab_first_appointment", LabFirstAppointmentEvent);
Premier achat dans une pharmacie
Nom d'événement : pharmacy_first_purchase
Objectif
Vous pouvez enregistrer le moment où un utilisateur fait son premier achat de médicament. Cela peut vous permettre, par exemple, dans le cas où vous enregistrez les événements de premier achat, d'envoyer à ces utilisateurs des publicités de retargeting ou d'offres promo.
Logique de déclenchement
La meilleure façon d'enregistrer cet événement est de le déclencher lorsque l'utilisateur effectue son premier achat.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
nom du médicament | chaîne | rhinos | Nom du médicament. |
quantity | chaîne | 1 | Montant commandé. |
price | chaîne | 10 | Prix du médicament. |
Exemples de code
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("medicine name", "rhinos");
eventValue.put("quantity", "1");
eventValue.put("price", "10");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "pharmacy_first_purchase", eventValue);
[[AppsFlyerLib shared] logEvent:@"pharmacy_first_purchase" withValues: @{
@"medicine name": @"rhinos",
@"quantity": @"1",
@"price": @"10"}];
AppsFlyerLib.shared().logEvent("pharmacy_first_purchase", withValues:
[ "medicine name": "rhinos",
"quantity": "1",
"price": "10"])
Dictionary<string, string> PharmacyFirstPurchaseEvent= new Dictionary<string, string>();
PharmacyFirstPurchaseEvent.Add("medicine name", "rhinos");
PharmacyFirstPurchaseEvent.Add("quantity", "1");
PharmacyFirstPurchaseEvent.Add("price", "10");
AppsFlyer.sendEvent ("pharmacy_first_purchase", PharmacyFirstPurchaseEvent);
Réservation chez le/la médecin
Nom d'événement : doctor_booking
Objectif
Vous pouvez enregistrer le moment où un utilisateur prend un rendez-vous pour une consultation avec son médecin. Cela peut vous permettre, par exemple, dans le cas où vous enregistrez ces événements de prise de rendez-vous, d'en savoir plus sur le fonctionnement et les besoins de cet utilisateur.
Logique de déclenchement
La meilleure façon d'enregistrer cet événement est de le déclencher lorsque l'utilisateur prend un rendez-vous en personne.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
nom du médecin | chaîne | Julie Robert | Nom du médecin. |
spécialité | chaîne | neurologie | Spécialité médicale. |
durée | chaîne | Chat de 30 minutes | Durée de la consultation. |
price | chaîne | 50 | Tarif de la consultation. |
Exemples de code
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("doctor name", "Robert James");
eventValue.put("specialty", "neurology");
eventValue.put("duration", "30 min chat");
eventValue.put("price", "50");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "doctor_booking", eventValue);
[[AppsFlyerLib shared] logEvent:@"doctor_booking" withValues: @{
@"doctor name": @"Robert James",
@"specialty": @"neurology",
@"duration": @"30 min chat",
@"price": @"50"}];
AppsFlyerLib.shared().logEvent("doctor_booking", withValues:
[ "doctor name": "Robert James",
"specialty": "neurology",
"duration": "30 min chat",
"price": "50"])
Dictionary<string, string> DoctorBookingEvent= new Dictionary<string, string>();
DoctorBookingEvent.Add("doctor name", "Robert James");
DoctorBookingEvent.Add("appointment number", "001");
DoctorBookingEvent.Add("duration", "30 min chat");
DoctorBookingEvent.Add("price", "50");
AppsFlyer.sendEvent ("doctor_booking", DoctorBookingEvent);
Chat avec le médecin
Nom d'événement : chat_doctor
Objectif
Si votre app permet aux utilisateurs de programmer des consultations en ligne avec un médecin, vous pouvez enregistrer le moment où un utilisateur programme un chat de discussion. Cela peut vous permettre, par exemple si vous enregistrez ces événements de réservation, d'en savoir plus sur les besoins et le fonctionnement des utilisateurs.
Logique de déclenchement
La meilleure façon d'enregistrer cet événement est de le déclencher lorsque l'utilisateur prend un rendez-vous.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
nom du médecin | chaîne | Julie Robert | Nom du médecin. |
spécialité | chaîne | neurologie | Spécialité médicale. |
durée | chaîne | Chat de 30 minutes | Durée de la consultation. |
price | chaîne | 50 | Tarif de la consultation. |
Exemples de code
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("doctor name", "Robert James");
eventValue.put("specialty", "neurology");
eventValue.put("duration", "30 min chat");
eventValue.put("price", "50");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "chat_doctor", eventValue);
[[AppsFlyerLib shared] logEvent:@"chat_doctor" withValues: @{
@"doctor name": @"Robert James",
@"specialty": @"neurology",
@"duration": @"30 min chat",
@"price": @"50"}];
AppsFlyerLib.shared().logEvent("chat_doctor", withValues:
[ "doctor name": "Robert James",
"specialty": "neurology",
"duration": "30 min chat",
"price": "50"])
Dictionary<string, string> ChatDoctorEvent= new Dictionary<string, string>();
ChatDoctorEvent.Add("doctor name", "Robert James");
ChatDoctorEvent.Add("appointment number", "001");
ChatDoctorEvent.Add("duration", "30 min chat");
ChatDoctorEvent.Add("price", "50");
AppsFlyer.sendEvent ("chat_doctor", ChatDoctorEvent);
Rendez-vous au laboratoire
Nom d'événement : lab_appointment
Objectif
Vous pouvez enregistrer le moment où un utilisateur prend un rendez-vous dans un laboratoire d'analyse. Cela peut vous permettre, par exemple, dans le cas où vous enregistrez les événements de prise de rendez-vous, d'envoyer à ce type d'utilisateurs des publicités de retargeting ou d'offres promo.
Logique de déclenchement
La meilleure façon d'enregistrer cet événement est de le déclencher lorsque l'utilisateur prend un rendez-vous au laboratoire.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
sélection du laboratoire | chaîne | check-up général | Nom du type de laboratoire. |
quantity | chaîne | 2 | Montant commandé. |
price | chaîne | 500 | Tarif du laboratoire. |
Exemples de code
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("lab selection", "full body checkup");
eventValue.put("quantity", "2");
eventValue.put("price", "500");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "lab_appointment", eventValue);
[[AppsFlyerLib shared] logEvent:@"lab_appointment" withValues: @{
@"lab_selection": @"full body checkup",
@"quantity": @"2",
@"price": @"500"}];
AppsFlyerLib.shared().logEvent("lab_appointment", withValues:
[ "lab selection": "full body checkup",
"quantity": "2",
"price": "500"])
Dictionary<string, string> LabAppointmentEvent= new Dictionary<string, string>();
LabAppointmentEvent.Add("lab selection", "full body checkup");
LabAppointmentEvent.Add("quantity", "2");
LabAppointmentEvent.Add("price", "500");
AppsFlyer.sendEvent ("lab_appointment", LabAppointmentEvent);
Achat en pharmacie
Nom d'événement : pharmacy_purchase
Objectif
Vous pouvez enregistrer le moment où un utilisateur fait un achat de médicament. Cela peut vous permettre, par exemple, dans le cas où vous enregistrez les événements d'achat, d'envoyer à ces utilisateurs des publicités de retargeting ou d'offres promo.
Logique de déclenchement
La meilleure façon d'enregistrer cet événement est de le déclencher lorsque l'utilisateur achète un médicament.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
nom du médicament | chaîne | rhinos | Nom du médicament. |
quantity | chaîne | 1 | Montant commandé. |
price | chaîne | 10 | Prix du médicament. |
Exemples de code
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("medicine name", "rhinos");
eventValue.put("quantity", "1");
eventValue.put("price", "10");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "pharmacy_purchase", eventValue);
[[AppsFlyerLib shared] logEvent:@"pharmacy_purchase" withValues: @{
@"medicine name": @"rhinos",
@"quantity": @"1",
@"price": @"10"}];
AppsFlyerLib.shared().logEvent("pharmacy_purchase", withValues:
[ "medicine name": "rhinos",
"quantity": "1",
"price": "10"])
Dictionary<string, string> PharmacyPurchaseEvent= new Dictionary<string, string>();
PharmacyPurchaseEvent.Add("medicine name", "rhinos");
PharmacyPurchaseEvent.Add("quantity", "1");
PharmacyPurchaseEvent.Add("price", "10");
AppsFlyer.sendEvent ("pharmacy_purchase", PharmacyPurchaseEvent);
Ajouter au panier
Nom d'évènement : add_to_cart
Objectif
Vous pouvez enregistrer le moment où un utilisateur ajoute un médicament à son panier. Cela peut vous permettre, par exemple, dans le cas où vous enregistrez les événements d'ajout au panier, d'envoyer à ce type d'utilisateurs des offres promo ou des rappels pour qu'ils valident leur achat.
Logique de déclenchement
La meilleure façon d'enregistrer cet événement est de le déclencher lorsque l'utilisateur ajoute un produit à son panier.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
nom du médicament | chaîne | rhinos | Nom du médicament. |
quantity | chaîne | 1 | Montant commandé. |
price | chaîne | 10 | Prix du médicament. |
Exemples de code
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("medicine name", "rhinos");
eventValue.put("quantity", "1");
eventValue.put("price", "10");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "add_to_cart", eventValue);
[[AppsFlyerLib shared] logEvent:@"add_to_cart" withValues: @{
@"medicine name": @"rhinos",
@"quantity": @"1",
@"price": @"10"}];
AppsFlyerLib.shared().logEvent("add_to_cart", withValues:
[ "medicine name": "rhinos",
"quantity": "1",
"price": "10"])
Dictionary<string, string> AddToCartEvent= new Dictionary<string, string>();
AddToCartEvent.Add("medicine name", "rhinos");
AddToCartEvent.Add("quantity", "1");
AddToCartEvent.Add("price", "10");
AppsFlyer.sendEvent ("add_to_cart", AddToCartEvent);
Inscription mutuelle
Nom d'événement : insurance_membership
Objectif
Si votre app s'associe à un assureur pour proposer différents types de couverture, vous pouvez enregistrer le moment où un utilisateur souscrit une assurance. Cela peut vous permettre, par exemple si vous enregistrez les événements de souscription à une assurance, d'en savoir plus sur vos utilisateurs et donc de les recibler en fonction.
Logique de déclenchement
La meilleure façon d'enregistrer cet événement est de le déclencher lorsque l'utilisateur prend une mutuelle santé.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
nom de l'assurance | chaîne | Mutuelle4000 | Nom de la compagnie d'assurance. |
type d'assurance | chaîne | premium | Type de régime d'assurance. |
Exemples de code
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("insurance name", "DavidShield");
eventValue.put("insurance type", "premium");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "insurance_membership", eventValue);
[[AppsFlyerLib shared] logEvent:@"insurance_membership" withValues: @{
@"insurance name": @"DavidShield",
@"insurance type": @"premium"}];
AppsFlyerLib.shared().logEvent("insurance_membership", withValues:
[ "insurance name": "DavidShield",
"insurance type": "premium"])
Dictionary<string, string> InsuranceMembershipEvent= new Dictionary<string, string>();
InsuranceMembershipEvent.Add("insurance name", "DavidShield");
InsuranceMembershipEvent.Add("insurance type", "premium");
AppsFlyer.sendEvent ("insurance_membership", InsuranceMembershipEvent);
Émission du reçu
Nom d'événement : receipt_issuance
Objectif
Permet d'enregistrer le moment où vos utilisateurs obtiennent un reçu. Les utilisateurs munis d'un reçu peuvent s'ils le souhaitent réclamer à leur assurance le remboursement d'une consultation, d'un laboratoire ou médicament. Cela peut de plus vous permettre, par exemple si vous enregistrez les événements de délivrance de reçu, d'utiliser les données pour des campagnes de retargeting autour des mutuelles d'assurance.
Logique de déclenchement
La meilleure façon d'enregistrer cet événement est de le déclencher lorsque l'utilisateur obtient un reçu.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
nom de l'app | chaîne | App de soins médicaux | Nom de votre app |
nom du médecin | chaîne | Julie Robert | Nom du médecin. |
description de la consultation | chaîne | fièvre | Description du problème de santé. |
Exemples de code
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("app name", "Healthcare App");
eventValue.put("doctor name", "Robert James");
eventValue.put("consultation description", "fever");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "receipt_issuance", eventValue);
[[AppsFlyerLib shared] logEvent:@"receipt_issuance" withValues: @{
@"app name": @"Healthcare App",
@"doctor name": @"Robert James",
@"consultation description": @"fever"}];
AppsFlyerLib.shared().logEvent("receipt_issuance", withValues:
[ "app name": "Healthcare App",
"insurance name": "Robert James",
"insurance type": "fever"])
Dictionary<string, string> ReceiptIssuanceEvent= new Dictionary<string, string>();
ReceiptIssuanceEvent.Add("app name", "Healthcare App");
ReceiptIssuanceEvent.Add("doctor name", "Robert James");
ReceiptIssuanceEvent.Add("consultation description", "fever");
AppsFlyer.sendEvent ("receipt_issuance", ReceiptIssuanceEvent);
Achat
Nom d’événement : af_purchase
Objectif
Enregistre les achats in-app effectués par les utilisateurs. En enregistrant les achats, vous pouvez :
- Déterminer la LTV de vos utilisateurs et le ROI de vos campagnes sur les réseaux publicitaires et les agences de publicité.
- Déterminer quelles offres sont les plus populaires auprès de vos utilisateurs.
- Réaliser une référence croisée des campagnes avec les articles achetés de façon à optimiser le ciblage de vos campagnes.
Logique de déclenchement
Pour enregistrer correctement cet évènement, vous devez le déclencher lorsque l'utilisateur arrive sur la page de remerciement suite à un achat réussi.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_revenue | float | 50 | Les revenus de l'achat. |
af_currency | chaîne | USD | Le code de devise |
af_content_type | chaîne | labo | Le nom de l'achat. |
af_order_id | chaîne | 9277 | L'ID de la commande. |
payment_method_type | chaîne | carte de crédit, locale | Méthode de paiement |
Exemples de code
Map<String, Object> eventValue = new HashMap<>();
eventValue.put(AFInAppEventParameterName.REVENUE, 50);
eventValue.put(AFInAppEventParameterName.CURRENCY, "USD");
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "lab");
eventValue.put("AFInAppEventParameterName.ORDER_ID", "9277");
eventValue.put("payment_method_type", "credit card");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(),AFInAppEventType.PURCHASE, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventPurchase
withValues: @{
AFEventParamRevenue: @50,
AFEventParamCurrency: @"USD",
AFEventParamContentType: @"lab",
AFEventParamContentTypeOrderId: @"9277",
@"payment_method_type": @"credit card"
}];
AppsFlyerLib.shared().logEvent(AFEventPurchase,
withValues: [
AFEventParamRevenue: 50,
AFEventParamCurrency: "USD",
AFEventParamContentType: "lab",
AFEventParamContentTypeOrderId: "9277",
"payment_method_type": "credit card",
]);
Dictionary<string, string> purchaseEvent = new Dictionary<string, string>();
purchaseEvent.Add("af_revenue", "50");
purchaseEvent.Add("af_currency", "USD");
purchaseEvent.Add("af_content_type", "lab");
purchaseEvent.Add("af_order_id", "9277");
purchaseEvent.Add("payment_method_type", "credit card");
AppsFlyer.sendEvent ("af_purchase", purchaseEvent);
Recharge réussie
Nom de l'événement : af_top_up_success
Objectif
Les fonds complémentaires peuvent être utilisés pour acheter n'importe quel forfait ou service proposé dans l'application. Vous pouvez enregistrer les fonds complémentaires et les avec d'autres données pour en savoir plus sur vos utilisateurs. En enregistrant les événements de fonds complémentaires des utilisateurs, vous pouvez :
- Découvrir les montants que les gens sont prêts à déposer sur leurs comptes.
- Utiliser les montants des recharges pour cibler les utilisateurs avec des campagnes personnalisées adaptées à leurs budgets de recharge.
Logique de déclenchement
Pour enregistrer correctement cet événement, vous devez le déclencher lorsque l'utilisateur termine le processus de recharge.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_revenue | chaîne | 2000 | Le montant de la recharge. |
top_up_id | chaîne | 397 | L'ID de la recharge. |
payment_method_type | chaîne | carte de crédit, paiement local | La méthode de paiement utilisée. |
Exemples de code
Map<String, Object> eventValue = new HashMap<>();eventValue.put(AFInAppEventParameterName.REVENUE, 2000); eventValue.put("TOP_UP_ID", "397"); eventValue.put("PAYMENT_METHOD_TYPE", "creditcard");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.AF_TOP_UP_SUCCESS, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventTopUpSuccess
withValues: @{
AFEventParamRevenue: @2000,
@"top_up_id": @"397",
@"payment_method_type": @"credit card"
}];
AppsFlyerLib.shared().logEvent(AFEventTopUpSuccess,
withValues: [
AFEventParamRevenue: 2000,
"top_up_id": "397",
"payment_method_type": "credit card",
]);
Dictionary<string, string> TopUpSuccessEvent = new Dictionary<string, string>();
TopUpSuccessEvent.Add("af_revenue", "2000");
TopUpSuccessEvent.Add("top_up_id", "397");
TopUpSuccessEvent.Add("payment_method_type", "credit card");
AppsFlyer.sendEvent ("af_top_up_success", TopUpSuccessEvent);
Télécommunication
Les apps de télécommunication permettent aux utilisateurs d'acheter et de gérer des forfaits de téléphonie mobile, des forfaits de données, etc. Les événements in-app que nous recommandons d'enregistrer dans les apps de télécommunication comprennent les achats, les recharges et les abonnements. Voici quelques exemples illustrant comment l'enregistrement de ces évènements peut vous être utile :
- L'enregistrement des achats vous permettent de savoir quels sont les forfaits les plus populaires.
- L'enregistrement des recharges vous permet de savoir quels produits ou forfaits les utilisateurs peuvent se permettre.
- L'enregistrement des abonnements vous aide à comprendre quels forfaits sont les plus susceptibles d'obtenir des engagements à long terme de la part des clients.
Connexion
Nom d’événement : af_login
Objectif
Cet évènement peut vous aider à déterminer le taux de rétention de vos utilisateurs inscrits.
Logique de déclenchement
Déclenchez cet événement à chaque fois que l'utilisateur se connecte.
Champs recommandés
Cet événement peut être envoyé sans champ supplémentaire.
Exemples de code
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.LOGIN, null);
[[AppsFlyerLib shared] logEvent:AFEventLogin withValues: nil];
AppsFlyerLib.shared().logEvent(AFEventLogin, withValues: nil);
AppsFlyer.sendEvent ("af_login", null);
Achat
Nom d’événement : af_purchase
Objectif
De nombreuses apps de télécommunications permettent aux utilisateurs d'acheter des articles, par exemple des données supplémentaires. L'évènement Achat vous aide à enregistrer les achats in-app effectués par les utilisateurs. En enregistrant les achats, vous pouvez :
- Déterminer la LTV de vos utilisateurs et le ROI de vos campagnes sur les réseaux publicitaires et les agences de publicité.
- Déterminer quelles offres sont les plus populaires auprès de vos utilisateurs.
- Réaliser une référence croisée des campagnes avec les articles achetés de façon à optimiser le ciblage de vos campagnes.
Logique de déclenchement
Pour enregistrer correctement cet évènement, vous devez le déclencher lorsque l'utilisateur arrive sur la page de remerciement suite à un achat réussi.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_revenue | float | 2000 | Le revenu estimé provenant de l'achat |
af_currency | chaîne | THB | Le code de devise |
af_content_type | chaîne | 5G | Le nom du package acheté. |
af_order_id | chaîne | 9277 | L'ID de commande |
payment_method_type | chaîne | carte de crédit, paiement local | Le type de méthode de paiement |
Exemples de code
Map<String, Object> eventValue = new HashMap<>();
eventValue.put(AFInAppEventParameterName.REVENUE, 2000);
eventValue.put(AFInAppEventParameterName.CURRENCY, "THB");
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "5G");
eventValue.put("AFInAppEventParameterName.ORDER_ID", "9277");
eventValue.put("payment_method_type", "credit_card");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(),AFInAppEventType.PURCHASE, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventPurchase
withValues: @{
AFEventParamRevenue: @2000,
AFEventParamCurrency: @"THB",
AFEventParamContentType: @"5G",
AFEventParamContentTypeOrderId: @"9277",
@"payment_method_type": @"credit_card"
}];
AppsFlyerLib.shared().logEvent(AFEventPurchase,
withValues: [
AFEventParamRevenue: 2000,
AFEventParamCurrency: "THB",
AFEventParamContentType: "5G",
AFEventParamContentTypeOrderId: "9277",
"payment_method_type": "credit_card",
]);
Dictionary<string, string> purchaseEvent = new Dictionary<string, string>();
purchaseEvent.Add("af_revenue", "2000");
purchaseEvent.Add("af_currency", "THB");
purchaseEvent.Add("af_content_type", "5G");
purchaseEvent.Add("af_order_id", "9277");
purchaseEvent.Add("payment_method_type", "credit_card");
AppsFlyer.sendEvent ("af_purchase", purchaseEvent);
Inscription complète
Nom d'événement : complete_registration
Objectif
Vous pouvez enregistrer l'inscription d'utilisateurs et la comparer avec d'autres données pour en savoir plus sur vos utilisateurs. En enregistrant les évènements d'inscription des utilisateurs, vous pouvez :
- Découvrir le nombre d'utilisateurs qui ont installé l'app mais qui ne se sont jamais inscrits.
- Découvrir les méthodes d'inscription préférées des utilisateurs.
Logique de déclenchement
Le meilleur moyen d'enregistrer cet évènement est de le déclencher lorsque l'utilisateur achève le processus d'inscription.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_registration_method | chaîne | email, facebook | Le type de méthode d'inscription |
Exemples de code
Map<String, Object> eventValue = new HashMap<>();
eventValue.put(AFInAppEventParameterName.REGISTRATION_METHOD, "Facebook");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.COMPLETE_REGISTRATION, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventCompleteRegistration
withValues: @{
AFEventParamRegistrationMethod: @"Facebook"
}];
AppsFlyerLib.shared().logEvent(AFEventCompleteRegistration,
withValues: [
AFEventParamRegistrationMethod: "Facebook"
]);
Dictionary<string, string> CompleteRegistrationEvent = new Dictionary<string, string>();
CompleteRegistrationEvent.Add("af_registration_method", "Facebook");
AppsFlyer.sendEvent ("af_complete_registration", CompleteRegistrationEvent);
Recharge réussie
Nom de l'événement : af_top_up_success
Objectif
Les fonds complémentaires peuvent être utilisés pour acheter n'importe quel forfait ou tout autre service offert dans l'app. Vous pouvez enregistrer des cours terminés et comparer ces informations avec d'autres données pour en savoir plus sur vos utilisateurs. En enregistrant les événements de recharge des utilisateurs, vous pouvez :
- Découvrir les montants que les gens sont prêts à déposer sur leurs comptes.
- Utiliser les montants des recharges pour cibler les utilisateurs avec des campagnes personnalisées adaptées à leurs budgets de recharge.
Logique de déclenchement
Pour enregistrer correctement cet événement, vous devez le déclencher lorsque l'utilisateur termine le processus de recharge.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_revenue | chaîne | 2000 | Le montant de la recharge. |
top_up_id | chaîne | 397 | L'ID de la recharge. |
payment_method_type | chaîne | carte de crédit, paiement local | La méthode de paiement utilisée. |
Exemples de code
Map<String, Object> eventValue = new HashMap<>();eventValue.put(AFInAppEventParameterName.REVENUE, 2000); eventValue.put("TOP_UP_ID", "397"); eventValue.put("PAYMENT_METHOD_TYPE", "credit_card");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.AF_TOP_UP_SUCCESS, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventTopUpSuccess
withValues: @{
AFEventParamRevenue: @2000,
@"top_up_id": @"397",
@"payment_method_type": @"credit_card"
}];
AppsFlyerLib.shared().logEvent(AFEventTopUpSuccess, tele
withValues: [
AFEventParamRevenue: 2000,
"top_up_id": "397",
"payment_method_type": "credit_card",
]);
Dictionary<string, string> TopUpSuccessEvent = new Dictionary<string, string>();
TopUpSuccessEvent.Add("af_revenue", "2000");
TopUpSuccessEvent.Add("top_up_id", "397");
TopUpSuccessEvent.Add("payment_method_type", "credit_card");
AppsFlyer.sendEvent ("af_top_up_success", TopUpSuccessEvent);
Échec de la recharge
Nom de l'événement : af_top_up_unsuccessful
Objectif
Vous pouvez enregistrer des événements d'échec de recharge et comparer ces informations avec d'autres données pour en savoir plus sur vos utilisateurs. Par exemple, en enregistrant les événements d'échecs de recharges, vous pouvez savoir combien d'utilisateurs ont essayé de recharger sans succès.
Logique de déclenchement
La meilleure façon d'enregistrer cet événement est de le déclencher lorsque l'utilisateur essaie de recharger mais que l'action échoue.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
error_reason | chaîne | exceeded_daily_limit | La raison de l'échec de la recharge. |
Exemples de code
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("error_reason", "exceeded_daily_limit");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "af_top_up_unsuccessful", eventValue);
[[AppsFlyerLib shared] logEvent:@"af_top_up_unsuccessful" withValues: @{
@"error_reason": @"exceeded_daily_limit"}];
AppsFlyerLib.shared().logEvent("af_top_up_unsuccessful",withValues:
["error_reason": "exceeded_daily_limit" ])
Dictionary<string, string> TopUpUnsuccessfulEvent = new Dictionary<string, string>();
ErrorReasonEvent.Add("error_reason", "exceeded_daily_limit");
AppsFlyer.sendEvent ("af_top_up_unsuccessful
", TopUpUnsuccessfulEvent);
Abonnement terminé
Nom de l'événement : af_subscription_complete
Objectif
En enregistrant les évènements d'abonnement des utilisateurs, vous pouvez :
- Voir quelles campagnes amènent les utilisateurs qui s'inscrivent.
- Comparez le nombre d'utilisateurs abonnés par rapport aux utilisateurs non abonnés.
- Enregistrez les revenus générés par les abonnements et attribuez-les aux campagnes et aux sources média.
Logique de déclenchement
Déclenchez cet événement dans l'un des deux scénarios suivants :
- Lorsque l'utilisateur s'abonne avec succès.
- lorsqu'un abonnement est renouvelé.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
af_subscription_type | chaîne | 30 Go par mois | Type d'abonnement. |
af_revenue | chaîne | 555 | Montant de l'abonnement. |
Exemples de code
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("af_subscription_type", "Monthly 30 GB");
eventValue.put("af_revenue", "555");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "af_subscription_complete", eventValue);
[AppsFlyerLib shared] logEvent:@"af_subscription_complete" withValues:@{
@"af_subscription_type": @"Monthly 30 GB",
@"af_revenue": @"555"}];
ApAppsFlyerLib.shared().logEvent("af_subscription_complete", withValues:
[ "af_subscription_type": "Monthly 30 GB",
"af_revenue": "555"])
Dictionary<string, string> SubscriptionCompleteEvent = new Dictionary<string, string>();
SubscriptionCompleteEvent.Add("af_subscription_type", "Monthly 30 GB");
SubscriptionCompleteEvent.Add("af_revenue", "555");
AppsFlyer.sendEvent ("af_subscription_complete", SubscriptionCompleteEvent);
Sélectionnez un package
Nom de l'événement : select_package
Objectif
Vous pouvez enregistrer lorsqu'un utilisateur décide d'acheter un package mais n'a pas encore effectué le paiement. Cela peut vous aider, par exemple, en vous permettant d'envoyer aux utilisateurs concernés par les événements de sélection de package enregistrés des annonces de retargeting et des rappels pour finaliser leur abonnement.
Logique de déclenchement
La meilleure façon d'enregistrer cet événement est de le déclencher lorsque l'utilisateur choisit un package mais n'a pas encore finalisé le paiement.
Champs recommandés
Nom du champ | Type | Exemple de valeur | Description |
---|---|---|---|
price | chaîne | 50000 | Le prix de l'abonnement. |
af_content_type | chaîne | 5 Go de données | Si le certificat a été délivré. |
Exemples de code
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("price", "50000");
eventValue.put("af_content_type ", "Data 5 GB ");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "select_package", eventValue);
[[AppsFlyerLib shared] logEvent:@"select_package" withValues: @{
@"price": @"50000",
@"af_content_type ": @"Data 5 GB "}];
AppsFlyerLib.shared().logEvent("select_package", withValues:
[ "price": "50000",
"af_content_type ": "Data 5 GB "])
Dictionary<string, string> SelectPackageEvent= new Dictionary<string, string>();
SelectPackageEvent.Add("price", "50000");
SelectPackageEvent.Add("af_content_type ", "Data 5 GB ");
AppsFlyer.sendEvent ("select_package", SelectPackageEvent);