Données brutes de streaming de l'API Push (V2)

En bref : transmettez en temps réel les données d'événement d'attribution à vos points de terminaison côté serveur.

4409_Push_API_V2-01.pngAPI Push V2.0

À propos de l'API Push

L'API Push transmet les messages d'événement d'attribution vers vos points de terminaison côté serveur dès que les données sont disponibles. Cela vous permet de suivre les parcours des utilisateurs via plusieurs environnements et points de contact.

Le volume de données envoyées aux points de terminaison peut être réduit en limitant :

  • Le sujet des messages et le type d'événements in-app sélectionnés.
  • Les champs sélectionnés.

Autres solutions de livraison de données AppsFlyer qui pourraient vous intéresser :

Types de messages d'événement

 Types de messages d'événement disponibles
(✓ = disponible, - non applicable)

Type d'attribution

Sujet

conversion_type field

Non organique

(campaign_type field)

Organique (campaign_type field)
Acquisition des utilisateurs Installation(*) sans rapport UA Trafic
Acquisition d'utilisateurs  Événements in-app d'installation sans rapport UA Trafic

Retargeting

RÉENGAGEMENT RÉENGAGEMENT Retargeting -
Retargeting  Évènements in-app de réengagement RÉENGAGEMENT Retargeting -
Retargeting  Réattribution  Réinstallation Retargeting -
Acquisition d'utilisateurs  Réinstallation Réinstallation UA Trafic
Retargeting Évènements in-app de réattribution Réinstallation Retargeting -
* Certaines installations relatives à l'attribution post vue sont attribuées à la source média restreinte.

Structure des messages et champs uniques

Le message de l'API Push dépend de la méthode HTTP :

  • GET : les paramètres de données sont ajoutés à la chaîne URL
  • POST : les paramètres de données sont contenus dans le corps du message au format JSON
  • Les exemples qui suivent contiennent des champs «null» ou vides Nous prévoyons à terme de ne plus envoyer de champs vides ou invalides.

Champs disponibles

  • Les messages de l'API Push contiennent les champs détaillés ici.
  • Des champs supplémentaires seront ajoutés de temps à autre au fur et à mesure qu'ils sont ajoutés à la plate-forme AppsFlyer. Vos mécanismes d'importation / d'analyse doivent le prendre en compte.

Format des champs horodateur :

  • Pour les champs horodateur en UTC : format aaaa-mm-jj hh:mm:ss.sss.Exemple d'affichage : 2019-09-17 00:09:25.123 Un événement a eu lieu à 14h00, heure de Tokyo. L'heure de l'événement est convertie en UTC, et devient ainsi 05h00. L'heure enregistrée est l'heure UTC.
  • Pour les champs horodateur dans le fuseau horaire sélectionné : format aaaa-mm-jj hh:mm:ss.sss±th:tm. Exemple : 2019-01-20 04:51:16.000+0000. Un événement a eu lieu à 14h00, heure de Tokyo. L'heure de l'événement enregistrée s'affiche 14h00+09h00. 09:00 est le fuseau horaire de Tokyo. 
Champs propres à l'API Push (par rapport à d'autres outils de livraison des données)
Nom d'affichage Nom V2.0 Remarques 
La devise sélectionnée. selected_currency Il s'agit du paramètre au niveau de l'app qui est en vigueur au moment de l'envoi du message API.
Revenus dans la devise sélectionnée revenue_in_selected_
devise
 
Coût dans la devise sélectionnée cost_in_selected_
devise
 
Fuseau horaire sélectionné pour l'heure de téléchargement de l'appareil device_download_time_selected_
timezone
 
Fuseau horaire d'heure où le toucher est attribué attributed_touch_time_
selected_timezone
 
Fuseau horaire d'heure d'installation install_time_selected_
fuseau horaire
 
Fuseau horaire d'heure d'événement event_time_selected_
fuseau horaire
 
Fuseau horaire sélectionné selected_timezone Il s'agit du paramètre au niveau de l'app qui est en vigueur au moment de l'envoi du message API.

Configuration de l'API Push

 Attention

N'utilisez pas l'API Push pour envoyer des données à des tiers car :

  • Vous risquez de violer les règles de protection de la vie privée (telles que la CCPA) si l'utilisateur a refusé que ses données soient transmises à un tiers.
  • Certaines sources média restreignent la façon dont les données de niveau utilisateur qu'elles fournissent sont utilisées ou partagées avec des tiers, ou les deux. Assurez-vous de respecter les conditions d'utilisation de la source média.
    Par exemple, Facebook, Twitter, Snapchat, Pinterest.

Pour configurer l'API Push, complétez la liste d'actions.

Liste d'actions API Push
Action N°  Pour configurer un nouveau point de terminaison
1

Remplissez la liste de contrôle des exigences côté serveur

2

Planifiez les paramètres des points de terminaison à l'aide de la liste de contrôle de planification

3

Configurez le point de terminaison

Exigences côté serveur (votre serveur)

Assurez-vous que votre serveur est conforme aux exigences répertoriées ici. 

Exigences côté serveur
URL du point de terminaison
  • Nom de domaine valide
  • Le même point de terminaison ne peut être utilisé qu'une fois par application. 
  • Nombre maximum de points de terminaison par application : 6
Code retour du point de terminaison À la réception d'un message, le point de terminaison doit renvoyer un code d'état HTTP 200.
Liste des serveurs autorisés AppsFlyer

Allowlist AppsFlyer server Adresses IP des serveurs autorisés AppsFlyer dans vos pare-feux et systèmes de sécurité pour assurer la communication avec le point de terminaison.

Versions TLS
Ports 

Ports: 80, 443

Liste de contrôle de planification de l'API Push

  • Utilisez la liste de contrôle qui suit pour planifier les réglages du point de terminaison. Les numéros inscrits dans l'illustration correspondent aux numéros de ligne de la liste de contrôle.

Point de terminaison 

PushAPI_us-en.png

Table de planification des points de terminaison

Non.

Réglage

Détails Votre réglage
1

Méthode

POST ou GET  

2

URL du point de terminaison

-  
3 Types de messages d'événement
  • Sélectionnez au moins un type de message d'événement.
  •  Pour sélectionner des messages d'événement in-app, vous devez enregistrer un événement in-app. Tant que vous ne le faites pas, vous ne pouvez pas sélectionner de messages d'événement in-app.

InappSelectionDisabled_us-en.png

 

4

Champs 

La liste des champs est commune à tous les types de messages

Sélectionnez les champs requis.

  • Les champs les plus courants sont présélectionnés par défaut.
  • Nous n'envoyons pas de champ vide/nul
 
5

Type d’événements in-app

 

Filtrez par événements in-app pour réduire le trafic envoyé à votre point de terminaison.

  • Sélectionnez un, plusieurs ou tous les événements in-app. Attention ! Si l'événement ne s'affiche pas dans la liste, vous devez le rechercher. 
  • Si vous sélectionnez «Tous», les nouveaux événements in-app seront automatiquement ajoutés.
  • Vous ne pouvez sélectionner un évènement in-app qu'après qu'il ait été enregistré une fois minimum. 
  • mceclip1.png
 
Facebook Avez-vous l'intention d'envoyer des données d'utilisateurs attribuées à Facebook ? 
  • Pour recevoir des données Facebook, assurez-vous d'avoir accepté les conditions d'utilisation de Facebook. 

 

Configuration et gestion des points de terminaison

  • Cette section contient des procédures pour ajouter, tester, modifier et supprimer des points de terminaison.
  • Seul l'administrateur peut modifier les paramètres API. Les membres d'équipe peuvent consulter les paramètres API.
AppsFlyerAdmin_us-en.png Pour ajouter un point de terminaison API Push :
  1. Rendez-vous dans Intégration > Accès API. Faites défiler jusqu'à la section API Push.
    La section API Push s'affiche.
  2. Cliquez sur Ajouter un point de terminaison.
  3. Choisissez une méthode HTTP : POST ou GET
  4. Saisissez l'URL du point de terminaison.  Si vous voyez s'afficher le message « cette URL n'est pas sécurisée », contactez l'assistance AppsFlyer.
  5. Sélectionnez un ou plusieurs types d'événements. Remarque ! Si les messages d'événements in-app sont désactivés, cela signifie qu'aucun événement in-app n'a été enregistré jusqu'à présent. 
  6. Sélectionnez les champs à remplir avec le message de l'API Push. Remarque :
    • Les champs obligatoires sont toujours envoyés. Ce sont les suivants : l'ID d'app, le nom de l'événement, l'heure de l'événement, l'IDFA (iOS) ou l'ID Advertising (Android)
    • Utilisez les commandes illustrées dans l'illustration suivante pour sélectionner des champs facultatifs. 

      PushAPIFieldSelect1.jpg

      • Les champs les plus fréquemment sélectionnés sont présélectionnés. Ils peuvent être désélectionnés.
      • Sélectionnez les champs facultatifs selon vos besoins.
      • Utilisez Tout effacer pour effacer tous les champs facultatifs.
      • Nous n'envoyons pas les champs nuls/vides et la clé associée. Merci de le prendre en compte lorsque vous prévoyez vos procédures d'importation et de préparation. 
  7. Sélectionnez un ou plusieurs événements in-app (52 max) ou Tous les événements in-app.
    • La liste est remplie par les types d'événements qui ont déjà été enregistrés. Si un événement manque, envoyez un événement de ce type à l'aide d'un périphérique de test. 
  8. Cliquez sur Enregistrer
    L'API Push est maintenant active
    Les données de conversion sont envoyées au point de terminaison.
  9. Testez le point de terminaison à l'aide de la procédure suivante.
  10. Si vous souhaitez recevoir des évènements attribuées à Facebook, assurez-vous d'avoir accepté les conditions d'utilisation de Facebook. 

Pour tester le point de terminaison :

  1. Cliquez sur Envoyer le test.  Un message contenant le résultat du test s'affiche sous le bouton Envoyer le test
    Un message de test est envoyé au point de terminaison. Si le test échoue, vérifiez que les adresses IP AppsFlyer sont bien autorisées.
  2. Vérifiez que le point de terminaison a bien reçu le message de test.
    Une copie du message envoyé est ensuite transférée.

Tester les messages de l'API POST et GET

Le message POST suivant est envoyé en guise de message test

{                  
  "idfv": "123456789",
  "device_category": "phone",
  "af_sub1": "sub1-12345",
  "customer_user_id": "Customer User ID",
  "is_lat": null,
  "contributor_2_af_prt": "attributionagency",
  "bundle_id": "bundleIdentifier_test",
  "gp_broadcastreferrer": "",
  "contributor_2_touch_time": "2019-12-31 00:05:42.805",
  "contributor_3_touch_type": "click",
  "event_source": "SDK",
  "af_cost_value": "10",
  "contributor_1_match_type": "id_matching",
  "app_version": "app_version",
  "contributor_3_af_prt": "attributionagency",
  "custom_data": null,
  "contributor_2_touch_type": "click",
  "gp_install_begin": "2019-12-31 00:07:14.000",
  "city": "Redmond",
  "amazon_aid": "9173fe74-0578-4658-a461-ebb0b4fce6d6",
  "gp_referrer": "af_tranid=000712-31122019254604&pid=pdsagency_int&c=pushapi_v2",
  "af_cost_model": "CPI",
  "af_c_id": "cid12345",
  "attributed_touch_time_selected_timezone": "2019-12-31 00:06:32.891+0000",
  "selected_currency": "EUR",
  "app_name": "com.pds.pushapi2.v2.transparent.com",
  "install_time_selected_timezone": "2019-12-31 00:07:14.961+0000",
  "postal_code": "98052",
  "wifi": false,
  "install_time": "2019-12-31 00:07:14.961",
  "operator": "ORANGE",
  "attributed_touch_type": "click",
  "af_attribution_lookback": "25d",
  "keyword_match_type": null,
  "af_adset_id": "adset12345",
  "device_download_time_selected_timezone": "2019-12-31 00:07:14.961+0000",
  "contributor_2_media_source": "contrib2",
  "contributor_2_match_type": "id_matching",
  "api_version": "2.0",
  "attributed_touch_time": "2019-12-31 00:06:32.891",
  "revenue_in_selected_currency": null,
  "is_retargeting": false,
  "country_code": "US",
  "gp_click_time": "2019-12-31 00:07:12.000",
  "contributor_1_af_prt": "attributionagency",
  "match_type": "id_matching",
  "appsflyer_id": "e126a3b3-3406-4196-a964-563c9ae44ff8",
  "dma": "819",
  "http_referrer": "https://www.amazon.com/gp/bestsellers/gift-cards/ref=sv_gc_0",
  "af_sub5": "sub5-12345",
  "af_prt": "attributionagency",
  "event_revenue_currency": null,
  "store_reinstall": null,
  "install_app_store": null,
  "media_source": "pdsagency_int",
  "deeplink_url": null,
  "campaign": "pushapi_v2",
  "af_keywords": "keywords12345",
  "region": "NA",
  "cost_in_selected_currency": "1000",
  "event_value": null,
  "ip": "20.168.174.166",
  "oaid": null,
  "event_time": "2019-12-31 00:07:14.961",
  "is_receipt_validated": null,
  "contributor_1_campaign": "camp1",
  "af_sub4": "sub4-12345",
  "imei": null,
  "contributor_3_campaign": "camp3",
  "event_revenue_usd": null,
  "af_sub2": "sub2-12345",
  "original_url": "https://app.appsflyer.com/com.pds.pushapi2.v2.transparent.com?c=pushapi_v2&pid=pdsagency_int&clickid=click12345&af_ref=000632-31122019&advertiserId=9173fe74-0578-4658-a461-ebb0b4fce6d6&android_id=3e06b4caebc19356&sha1_android_id=sha12345&af_siteid=136396&af_sub_siteid=sub_siteid12345&af_c_id=cid12345&af_adset=adset12345&af_adset_id=adset12345&af_ad=ad12345&af_ad_id=adid12345&af_ad_type=adtype12345&af_channel=channel12345&af_keywords=keywords12345&is_retargeting=False&af_dp=ebay%3A%2F%2Fshoppingcart&af_web_dp=www.dp.com&af_sub1=sub1-12345&af_sub2=sub2-12345&af_sub3=sub3-12345&af_sub4=sub4-12345&af_sub5=sub5-12345&af_cost_model=CPI&af_cost_value=10&af_cost_currency=EUR&sha1_advertising_id=sha12345&sha1_el=sha12345&af_installpostback=false&af_force_dp=true&af_chrome_lp=true&af_ec=1&af_click_lookback=25d&af_viewthrough_lookback=1h&af_reengagement_window=2d&af_prt=attributionagency",
  "contributor_2_campaign": "camp2",
  "android_id": "3e06b4caebc19356",
  "contributor_3_media_source": "contrib3",
  "af_adset": "adset12345",
  "af_ad": "ad12345",
  "state": "WA",
  "network_account_id": null,
  "device_type": "Samsung::SH-220",
  "idfa": null,
  "retargeting_conversion_type": null,
  "af_channel": "channel12345",
  "af_cost_currency": "EUR",
  "contributor_1_media_source": "contrib1",
  "keyword_id": null,
  "device_download_time": "2019-12-31 00:07:14.961",
  "contributor_1_touch_type": "click",
  "af_reengagement_window": "2d",
  "af_siteid": "136396",
  "language": "English",
  "app_id": "com.pds.pushapi2.v2.transparent.com",
  "contributor_1_touch_time": "2019-12-31 00:06:07.847",
  "event_revenue": null,
  "af_ad_type": "adtype12345",
  "carrier": "carrier",
  "event_name": "install",
  "af_sub_siteid": "sub_siteid12345",
  "advertising_id": "9173fe74-0578-4658-a461-ebb0b4fce6d6",
  "os_version": "6.0",
  "platform": "android",
  "af_sub3": "sub3-12345",
  "contributor_3_match_type": "id_matching",
  "selected_timezone": "UTC",
  "af_ad_id": "adid12345",
  "contributor_3_touch_time": "2019-12-31 00:05:17.757",
  "user_agent": "Dalvik/1.6.0 (Linux; U; Android 6.0; Redmi Note 4 Build/KOT49I.F320S22g",
  "is_primary_attribution": null,
  "sdk_version": "v4.8.0",
  "event_time_selected_timezone": "2019-12-31 00:07:14.961+0000"
}

Modifier un point de terminaison/

AppsFlyerAdmin_us-en.png Pour modifier les paramètres de point de terminaison :

  1. Rendez-vous dans Intégration > Accès API.
    Faites défiler jusqu'à la section API Push.
    La section API Push s'affiche.
  2. Localisez le point de terminaison à modifier.
  3. Faites les modifications.
  4. Cliquez sur Enregistrer.

Supprimer un point de terminaison

AppsFlyerAdmin_us-en.pngPour supprimer un point de terminaison :

  1. Rendez-vous dans Intégration > Accès API.
    Faites défiler jusqu'à la section Accès API Push. 
  2. Cliquez sur Supprimer le point de terminaison.
  3. Cliquez sur Enregistrer.
    Le point de terminaison est supprimé. 

Migration d'un point de terminaison de la V1.0 à la V2.0

AppsFlyerAdmin_us-en.pngPour migrer un point de terminaison de la V1.0 à la V2.0 :

  1. Rendez-vous dans Intégration > Accès API. Faites défiler jusqu'à la section API Push.
    La section API Push s'affiche.
  2. Localisez le point de terminaison à migrer.
  3. Sélectionnez les champs à remplir avec le message de l'API Push. 
    • Les champs obligatoires sont toujours envoyés. Ce sont les suivants : l'ID d'app, le nom de l'événement, l'heure de l'événement, l'IDFA (iOS) ou l'ID Advertising (Android)
    • Utilisez les commandes illustrées dans l'illustration suivante pour sélectionner des champs facultatifs. 

      PushAPIFieldSelect1.jpg

      • Les champs les plus fréquemment sélectionnés sont présélectionnés. Ils peuvent être désélectionnés.
      • Sélectionnez les champs facultatifs selon vos besoins.
      • Utilisez Tout effacer pour effacer tous les champs facultatifs.
      • Prochainement, nous cesserons d'envoyer les champs invalides ou non remplis ainsi que les clés associées. Merci de le prendre en compte lorsque vous prévoyez vos procédures d'importation et de préparation. 
  4. Sélectionnez un, plusieurs (52 maximum) ou Tous les événements in-app.
    • La liste est remplie par les types d'événements qui ont déjà été enregistrés. Si un événement manque, envoyez un événement de ce type à l'aide d'un périphérique de test. 
  5. Cliquez sur Enregistrer
    • L'API Push a migré. 
    • Les données de conversion sont toujours envoyées au point de terminaison.

Messages d'erreur des points de terminaison

Problème : le message cette URL n'est pas sécurisée s'affiche lorsque vous définissez l'URL du point de terminaison.

Action requise : contactez l'assistance AppsFlyer ; renseignez l'ID de l'app, l'URL du point de terminaison et ajoutez une capture d'écran du message d'erreur.  

Dépannage, restrictions et particularités

Échec de l'envoi du message de test

Si vous ne recevez pas le message de test et que vous limitez l'accès à vos serveurs selon les adresses IP : vérifiez que toutes les adresses IP AppsFlyer sont bien autorisées.

Duplication des événements in-app de retargeting

Les événements de retargeting in-app sont dupliqués lorsqu'un événement d'achat a lieu dans le cadre d'une campagne de retargeting et sur la durée de la fenêtre de réengagement UA. Cette opération permet d'attribuer des revenus aussi bien à la source média UA qu'à la source média de retargeting.

Vous ne recevrez des événements dupliqués que si vous avez activé ces deux options :

  • Événements in-app d'installation
  • événements in-app de retargeting

Les événements in-app attribués à la source média UA (événements in-app d'installation) dans le cadre d'une campagne de retargeting portent le champ is_primary_attribtuion=false.

 Exemple

  • Un utilisateur installe example_app, qui est attribuée à ua_network
  • Quelque temps plus tard, l'utilisateur se réengage dans la campagne de retargeting de example_app via retar_network , et effectue un achat.

L'événement d'achat in-app est envoyé deux fois avec les détails suivants :

Champs d'événements in-app de retargeting
Type d'événement Source média is_retargeting re_targeting conversion_type is_primary_
attribution 
Événement in-app d'installation ua_network true réengagement ou réattribution  Faux
Les événements in-app de retargeting retar_network true réengagement ou réattribution  true


Comment faire pour identifier les événements de retargeting en doublon ?

Le champ boolean is_primary_attribution identifie les sources média premières et secondaires dans les campagnes de retargeting :

  • False : indique la source média UA d'origine. Remarque : il s'agit du seul cas de figure où la valeur est false.
  • True : identifie la source média de réengagement 

La raison en est la suivante : si un utilisateur s'engage dans une campagne suite à une opération de retargeting, une fenêtre de réengagement s'ouvre. La source média de réengagement est considérée comme la source média première lorsque la fenêtre de réengagement est ouverte, la source UA quant à elle est secondaire. Une fois la fenêtre fermée, la source média UA d'origine est à nouveau vue comme la première.

La sélection des messages d'événement in-app est désactivée

InappSelectionDisabled_us-en.png

  • Les messages d'événement in-app peuvent être sélectionnés uniquement lorsqu'ils ont été enregistrés.
  • Utilisez un appareil de test pour générer un événement in-app ou utilisez l'API S2S pour le faire manuellement. 

Données Facebook manquantes

Par défaut, Facebook ne publie pas les données brutes de niveau utilisateur, à moins que vous n'acceptiez les Termes de service de Facebook.

Une fois que vous avez accepté les conditions, les données de niveau utilisateur provenant de Facebook et d'autres sources de données brutes sont envoyées via l'API Push.

Messages push et CloudFront manquants

Vous utilisez Amazon CloudFront comme point de terminaison ? Vérifiez si CloudFront rejette le message avec le code de rejet 421. Si tel est le cas, consultez Choisir comment CloudFront répond aux requêtes HTTPS

Restrictions et particularités

Particularités
Particularité Remarques 
Réseaux publicitaires Non utilisé pour les ad networks.
Agences Non utilisé pour les agences.
Fuseau horaire spécifique à l'app Prise en charge
Devise spécifique à l'app  Prise en charge
Limitations de taille Ne s'applique pas
Organique  Oui
Non organique Oui
Actualisation des données En continu 
Données historiques Non pris en charge. Les données d'événement seront envoyées après la configuration de l'API Push. Si vous avez besoin des données brutes historiques, utilisez l'API Pull.
Accès des membres de l'équipe Les membres d'équipe peuvent afficher les paramètres de l'API Push, mais ne peuvent pas y apporter de modifications.
Cet article vous a-t-il été utile ?