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 ?
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.
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 :
- 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.
- Si un fichier dépasse 1 Go, préparez un échantillon de données d’environ 100 lignes.
- Uploadez tous les fichiers sur Google Drive (vous pouvez les compresser, mais gardez-les séparés).
- 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.
- 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
- Seuls les abonnements actifs seront restaurés ; les transactions expirées ne le seront pas.
- Seul le dernier renouvellement d’un abonnement sera restauré ; la chaîne complète d’achats ne le sera pas.
- Si le prix du produit a changé depuis l’achat, le prix actuel sera utilisé, ce qui peut entraîner des erreurs de tarification.
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
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 colonne | Présence | Description |
|---|---|---|
| user_id | requis | ID de votre utilisateur |
| apple_original_transaction_id | requis 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_id | requis pour Google | ID du produit dans le Google Play Store. |
| google_purchase_token | requis pour Google | Identifiant unique représentant l’utilisateur et l’ID du produit pour l’achat intégré effectué |
| google_is_subscription | requis pour Google | Valeurs possibles : 1 | 0 |
| stripe_token | requis pour Stripe | Jeton 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_date | optionnel | Date 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_at | optionnel | Date et heure de création du profil (2019-12-31 23:59:59-06:00) |
| birthday | optionnel | Date de naissance de l’utilisateur au format 2000-12-31 |
| optionnel | L’e-mail de votre utilisateur | |
| gender | optionnel | Le genre de l’utilisateur |
| phone_number | optionnel | Le numéro de téléphone de votre utilisateur |
| country | optionnel | format ISO 3166-1 alpha-2 |
| first_name | optionnel | Le prénom de votre utilisateur |
| last_name | optionnel | Le nom de famille de votre utilisateur |
| last_seen | optionnel | Date et heure avec fuseau horaire (2020-12-31T23:59:59-06:00) |
| idfa | optionnel | L’identifiant publicitaire (IDFA) est un identifiant aléatoire attribué par Apple à l’appareil d’un utilisateur. Applicable uniquement aux applications iOS |
| idfv | optionnel | L’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_id | optionnel | L’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_id | optionnel | L’ID utilisateur issu d’Amplitude |
| amplitude_device_id | optionnel | L’ID d’appareil issu d’Amplitude |
| mixpanel_user_id | optionnel | ID utilisateur issu de Mixpanel |
| appmetrica_profile_id | optionnel | ID de profil utilisateur issu d’AppMetrica |
| appmetrica_device_id | optionnel | L’ID d’appareil issu d’AppMetrica |
| appsflyer_id | optionnel | Identifiant unique issu d’AppsFlyer |
| adjust_device_id | optionnel | L’ID d’appareil issu d’Adjust |
| facebook_anonymous_id | optionnel | Identifiant 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_id | optionnel | Identifiant unique issu de Branch |
| attribution_source | optionnel | L’intégration source de l’attribution, par exemple appsflyer |
| attribution_status | optionnel | organic |
| attribution_channel | optionnel | Le canal d’attribution qui a apporté la transaction |
| attribution_campaign | optionnel | La campagne d’attribution qui a apporté la transaction |
| attribution_ad_group | optionnel | Le groupe d’annonces d’attribution qui a apporté la transaction |
| attribution_ad_set | optionnel | L’ensemble d’annonces d’attribution qui a apporté la transaction |
| attribution_creative | optionnel | É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_attributes | optionnel | Définissez jusqu’à 30 attributs personnalisés sous forme de dictionnaire JSON en format clé-valeur :
Format : 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.
| Plateforme | Champs 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.