Amplitude
Amplitude est un puissant service d’analyse mobile. Avec Adapty, vous pouvez facilement envoyer des événements à Amplitude, observer le comportement de vos utilisateurs et prendre des décisions éclairées.
Adapty fournit un ensemble complet de données qui vous permet de suivre les événements d’abonnement depuis les stores en un seul endroit et de les envoyer à votre compte Amplitude. Cela vous permet de relier le comportement de vos utilisateurs à leur historique de paiement dans Amplitude, et d’orienter vos décisions produit.
Comment configurer l’intégration Amplitude
Dans Adapty, vous pouvez configurer des flows distincts pour les événements de production et les événements de test provenant de l’environnement sandbox d’Apple ou Stripe, ou d’un compte de test Google.
- Pour les événements de production, saisissez les clés API de Production depuis le tableau de bord Amplitude, avec une clé API unique pour chaque plateforme : iOS, Android et Stripe.
- Pour les événements de test, utilisez les champs Sandbox selon vos besoins.
Pour configurer l’intégration Amplitude :
- Ouvrez Integrations -> Amplitude dans votre Adapty Dashboard.
-
Activez Amplitude integration pour l’activer.
-
Remplissez les champs de l’intégration :
Field Description Amplitude iOS/ Android/ Stripe API key Saisissez la Clé API Amplitude pour iOS/ Android/ Stripe dans Adapty. Vous la trouverez sous Project settings dans Amplitude. Pour obtenir de l’aide, consultez la documentation Amplitude. Commencez avec les clés Sandbox pour les tests, puis passez aux clés de Production après des tests réussis.
-
Paramètres optionnels pour une personnalisation supplémentaire :
| Paramètre | Description |
|---|---|
| How the revenue data should be sent | Choisissez d’envoyer le chiffre d’affaires brut ou le chiffre d’affaires après taxes et commissions. Consultez Commissions du store et taxes pour plus de détails. |
| Exclude historical events | Choisissez d’exclure les événements antérieurs à l’installation du SDK Adapty, afin d’éviter les doublons. Par exemple, si un utilisateur s’est abonné le 10 janvier mais a installé le SDK Adapty le 6 mars, Adapty n’enverra que les événements à partir du 6 mars. |
| Send User Attributes | Sélectionnez cette option pour envoyer des attributs propres à l’utilisateur, comme les préférences de langue. |
| Always populate user_id | Adapty envoie automatiquement device_id en tant qu’amplitudeDeviceId. Pour user_id, ce paramètre définit le comportement :
|
-
Choisissez les événements que vous souhaitez recevoir et associez leurs noms.
-
Cliquez sur Save pour confirmer vos modifications.
Une fois que vous avez cliqué sur Save, Adapty commencera à envoyer des événements à Amplitude.
En plus des événements, Adapty envoie le statut d’abonnement et l’ID du produit d’abonnement aux propriétés utilisateur Amplitude.
Événements et tags
Sous les identifiants, trois groupes d’événements peuvent être envoyés à Amplitude depuis Adapty. Activez simplement ceux dont vous avez besoin. Consultez la liste complète des événements proposés par Adapty ici.
Nous recommandons d’utiliser les noms d’événements par défaut fournis par Adapty. Vous pouvez toutefois les modifier selon vos besoins. Adapty enverra les événements d’abonnement à Amplitude via une intégration serveur à serveur, ce qui vous permettra de consulter tous les événements d’abonnement dans votre tableau de bord Amplitude.
Configuration du SDK
Utilisez la méthode setIntegrationIdentifier() pour définir le paramètre amplitude_device_id. C’est indispensable pour configurer l’intégration.
Si vous gérez l’inscription des utilisateurs, vous pouvez également passer amplitude_user_id.
Les SDK tiers génèrent des identifiants utilisateur de manière asynchrone. L’identifiant peut ne pas être disponible au moment où Adapty.activate() s’exécute. Si votre Customer User ID provient de l’un de ces SDK, appelez Adapty.activate() sans lui. Dès que l’identifiant est disponible, appelez setIntegrationIdentifier(), puis identify() avec le CUID.
Structure des événements Amplitude
Adapty envoie les événements à Amplitude via l’API HTTP v2. Chaque événement est structuré comme suit :
{
"api_key": "your_amplitude_api_key",
"events": [
{
"partner_id": "adapty",
"event_type": "subscription_renewed",
"time": 1709294400000,
"insert_id": "123e4567-e89b-12d3-a456-426614174000",
"user_id": "user_12345",
"device_id": "device_12345",
"platform": "iOS",
"os_name": "iOS",
"productId": "yearly.premium.6999",
"revenue": 9.99,
"event_properties": {
"vendor_product_id": "yearly.premium.6999",
"original_transaction_id": "GPA.3383...",
"currency": "USD",
"environment": "Production",
"store": "app_store"
},
"user_properties": {
"subscription_state": "subscribed",
"subscription_product": "yearly.premium.6999"
}
}
]
}
Where:
| Paramètre | Type | Description |
|---|---|---|
api_key | String | Votre clé API Amplitude. |
events | Array | Liste d’objets événement (Adapty en envoie un à la fois). |
events[].partner_id | String | Toujours “adapty”. |
events[].event_type | String | Le nom de l’événement (mappé depuis l’événement Adapty). |
events[].time | Long | Horodatage de l’événement en millisecondes. |
events[].insert_id | String | Identifiant unique de l’événement (UUID). |
events[].user_id | String | ID utilisateur Amplitude ou ID utilisateur client. |
events[].device_id | String | ID d’appareil Amplitude. |
events[].platform | String | Plateforme (ex. : “iOS”, “Android”). |
events[].os_name | String | Nom du système d’exploitation. |
events[].productId | String | L’ID du produit dans le store. |
events[].revenue | Float | Montant du revenu. |
events[].event_properties | Object | Attributs détaillés de l’événement (contient tous les champs d’événement disponibles). |
events[].user_properties | Object | Attributs utilisateur tels que l’état de l’abonnement. |
Résolution des problèmes
access_level_updated apparaît comme échoué dans le journal d’événements
access_level_updated est un événement réservé aux webhooks. Adapty ne l’envoie jamais à cette intégration. Mais Adapty enregistre un résultat pour chaque intégration activée, et un événement non pris en charge est affiché comme un échec.