Importation de données historiques dans Adapty

Après avoir installé le SDK Adapty et publié votre application, vous pouvez accéder à vos utilisateurs et abonnés dans la section Profiles. Mais que faire si vous disposez d’une infrastructure existante et devez migrer vers Adapty, ou si vous souhaitez simplement voir vos données actuelles dans Adapty ?

Note

L’importation de données n’est pas obligatoire

Adapty accordera automatiquement des niveaux d’accès aux utilisateurs historiques et restaurera leurs événements d’achat dès qu’ils ouvriront l’application avec le SDK Adapty intégré. Pour ce cas d’usage, l’importation de données historiques n’est pas nécessaire. Cependant, importer ces données garantit des analyses précises si vous avez un volume important de transactions historiques, bien que ce ne soit généralement pas indispensable pour la migration.

Une fois que le support importe le apple_original_transaction_id ou le google_purchase_token d’une transaction, Adapty associe automatiquement les futures notifications du serveur App Store et Play pour cette transaction au même profil — l’utilisateur n’a pas besoin d’ouvrir l’application au préalable.

Warning

Si un webhook ou une autre intégration accorde des récompenses (par exemple, de la monnaie virtuelle) lors d’un événement d’abonnement, activez Exclude Historical Events pour cette intégration dans les paramètres d’intégration avant de commencer l’import. Sans cela, les achats historiques importés déclenchent à nouveau les événements d’intégration, et un webhook qui accorde des récompenses les accorde une deuxième fois pour un achat que l’utilisateur possède déjà. Consultez Migrer les intégrations vers Adapty.

Pour importer des données dans Adapty :

  1. Exportez vos transactions dans un fichier CSV (des fichiers séparés doivent être fournis pour iOS, Android et Stripe). Consultez la section Format du fichier d’importation ci-dessous pour les exigences détaillées.
  2. Si un fichier dépasse 1 Go, préparez un échantillon de données d’environ 100 lignes.
  3. Uploadez tous les fichiers sur Google Drive (vous pouvez les compresser, mais gardez-les séparés).
  4. Pour les transactions iOS, assurez-vous que la section In-app purchase API dans les App settings est remplie avec l’Issuer ID, le Key ID et la Private key (fichier .P8), même si vous utilisez StoreKit 1. Consultez les sections Provide Issuer ID and Key ID et Upload In-App Purchase Key file pour des instructions détaillées.
  5. Partagez les liens avec notre équipe par e-mail ou via le chat en ligne dans l’Adapty Dashboard.

N’ayez crainte, l’importation de données historiques ne créera pas de doublons, même si ces données chevauchent des entrées existantes dans Adapty.

Limitations connues pour Android

  1. Seuls les abonnements actifs seront restaurés ; les transactions expirées ne le seront pas.
  2. Seul le dernier renouvellement d’un abonnement sera restauré ; la chaîne complète d’achats ne le sera pas.
  3. Si le prix du produit a changé depuis l’achat, le prix actuel sera utilisé, ce qui peut entraîner des erreurs de tarification.
Note

Si vous avez un grand volume de transactions Android, vous devrez peut-être demander une augmentation du quota de l’API Google Play Developer avant de démarrer l’importation, afin de ne pas dépasser la limite par défaut de l’API.

Format du fichier d’importation

Tip

Si vous migrez depuis RevenueCat, vous pouvez envoyer directement le fichier d’export RevenueCat — aucune conversion n’est nécessaire. Consultez la documentation de RevenueCat pour les instructions d’export.

Préparez vos données dans un ou plusieurs fichiers respectant les règles suivantes :

  • Le format de fichier est .CSV.
  • Des fichiers séparés pour les imports Android, iOS et Stripe.
  • Chaque fichier d’import contient toutes les colonnes requises.
  • Les colonnes des fichiers d’import ont des en-têtes.
  • Les en-têtes de colonnes sont exactement comme dans la colonne Column name du tableau ci-dessous. Vérifiez les fautes de frappe.
  • Les colonnes non requises peuvent être absentes du fichier. N’ajoutez pas de colonnes vides pour les données que vous n’avez pas.
  • Les fichiers d’import ne doivent pas contenir de colonnes supplémentaires non mentionnées dans le tableau. Si c’est le cas, supprimez-les.
  • Les valeurs sont séparées par des virgules.
  • Les valeurs ne sont pas entourées de guillemets.
  • Si un utilisateur possède plusieurs apple_original_transaction_id, ajoutez-les tous sur des lignes séparées pour chaque apple_original_transaction_id. Sinon, il se peut que nous ne puissions pas restaurer les achats consommables.

Please use the following files as samples for iOS and Android.

Colonnes disponibles dans le fichier d’importation

Nom de la colonnePrésenceDescription
user_idrequisID de votre utilisateur
apple_original_transaction_idrequis pour iOS

L’identifiant de transaction d’origine ou OTID (en savoir plus), utilisé dans le mécanisme d’import StoreKit 2. Un utilisateur pouvant avoir plusieurs OTID, il suffit d’en fournir au moins un pour réussir l’import.

Remarque : Les identifiants de l’API d’achat intégré doivent être configurés dans votre Adapty Dashboard pour que cet import fonctionne. Découvrez comment procéder ici.

google_product_idrequis pour GoogleID du produit dans le Google Play Store.
google_purchase_tokenrequis pour GoogleIdentifiant unique représentant l’utilisateur et l’ID du produit pour l’achat intégré effectué
google_is_subscriptionrequis pour GoogleValeurs possibles : 1 | 0
stripe_tokenrequis pour StripeJeton d’un objet Stripe représentant un achat unique. Il peut s’agir d’un jeton d’abonnement Stripe (sub_...) ou d’une intention de paiement (pi_...).
subscription_expiration_dateoptionnelDate d’expiration de l’abonnement, c’est-à-dire la prochaine date de facturation, date et heure avec fuseau horaire (2020-12-31T23:59:59-06:00)
created_atoptionnelDate et heure de création du profil (2019-12-31 23:59:59-06:00)
birthdayoptionnelDate de naissance de l’utilisateur au format 2000-12-31
emailoptionnelL’e-mail de votre utilisateur
genderoptionnelLe genre de l’utilisateur
phone_numberoptionnelLe numéro de téléphone de votre utilisateur
countryoptionnelformat ISO 3166-1 alpha-2
first_nameoptionnelLe prénom de votre utilisateur
last_nameoptionnelLe nom de famille de votre utilisateur
last_seenoptionnelDate et heure avec fuseau horaire (2020-12-31T23:59:59-06:00)
idfaoptionnelL’identifiant publicitaire (IDFA) est un identifiant aléatoire attribué par Apple à l’appareil d’un utilisateur. Applicable uniquement aux applications iOS
idfvoptionnelL’identifiant fournisseur (IDFV) est un code unique attribué à toutes les applications développées par un même développeur, c’est-à-dire vos applications. Applicable uniquement aux applications iOS
advertising_idoptionnelL’Advertising ID est un code unique attribué par le système d’exploitation Android que les annonceurs peuvent utiliser pour identifier de manière unique l’appareil d’un utilisateur
amplitude_user_idoptionnelL’ID utilisateur issu d’Amplitude
amplitude_device_idoptionnelL’ID d’appareil issu d’Amplitude
mixpanel_user_idoptionnelID utilisateur issu de Mixpanel
appmetrica_profile_idoptionnelID de profil utilisateur issu d’AppMetrica
appmetrica_device_idoptionnelL’ID d’appareil issu d’AppMetrica
appsflyer_idoptionnelIdentifiant unique issu d’AppsFlyer
adjust_device_idoptionnelL’ID d’appareil issu d’Adjust
facebook_anonymous_idoptionnelIdentifiant unique généré par Facebook pour les utilisateurs qui interagissent avec votre application ou site web de manière anonyme, c’est-à-dire sans être connectés à Facebook
branch_idoptionnelIdentifiant unique issu de Branch
attribution_sourceoptionnelL’intégration source de l’attribution, par exemple appsflyer
attribution_statusoptionnelorganic
attribution_channeloptionnelLe canal d’attribution qui a apporté la transaction
attribution_campaignoptionnelLa campagne d’attribution qui a apporté la transaction
attribution_ad_groupoptionnelLe groupe d’annonces d’attribution qui a apporté la transaction
attribution_ad_setoptionnelL’ensemble d’annonces d’attribution qui a apporté la transaction
attribution_creativeoptionnelÉléments visuels ou textuels spécifiques utilisés dans une publicité ou une campagne marketing, suivis pour évaluer leur efficacité à générer des actions souhaitées telles que des clics, des conversions ou des installations
custom_attributesoptionnelDéfinissez jusqu’à 30 attributs personnalisés sous forme de dictionnaire JSON en format clé-valeur :
  • key : (string) Le nom de l’attribut personnalisé
  • value : (string, integer, float ou boolean) La valeur de l’attribut personnalisé.

Format : "{'string_value': 'some_value', 'float_value': 123.0, 'int_value': 456}".

Notez l’utilisation des guillemets doubles et simples dans le format. Gardez à l’esprit que les booléens et les entiers seront convertis en flottants.

Champs obligatoires

Il existe 2 groupes de champs obligatoires pour chaque plateforme : user_id et les données identifiant les achats spécifiques à la plateforme correspondante. Consultez le tableau ci-dessous pour connaître les champs obligatoires par plateforme.

PlateformeChamps obligatoires
iOS

user_id

apple_original_transaction_id

Android

user_id

google_product_id

google_purchase_token

google_is_subscription

Stripe

user_id

stripe_token

Sans ces champs, Adapty ne pourra pas récupérer les transactions.

Pour une analyse précise des cohortes, veuillez indiquer created_at. Si ce champ n’est pas renseigné, nous considérerons que la date d’installation est identique à la date du premier achat.

Importer des données dans Adapty

Veuillez nous contacter et partager vos fichiers d’importation via support@adapty.io ou via le chat en ligne dans l’Adapty Dashboard.