Intégrations analytiques
Adapty envoie tous les événements d’abonnement aux services d’analyse, tels qu’Amplitude, Mixpanel et AppMetrica. Vous pouvez également recevoir ces événements sur votre serveur via l’intégration webhook. Le mieux dans tout ça, c’est que vous n’avez rien à faire : nous nous chargeons d’envoyer les événements à votre place. Configurez simplement l’intégration dans l’Adapty Dashboard.
Adapty prend en charge l’intégration avec les services d’analyse tiers suivants :
Votre outil d’analyse n’est pas dans la liste ?
Faites-le nous savoir ! Soumettez une demande de fonctionnalité et nous étudierons son ajout.
Propriétés des événements
Les événements webhook sont envoyés au format JSON. Tous les événements suivent la même structure, mais leurs champs varient selon le type d’événement, le store et votre configuration spécifique.
Adapty convertit les autres devises en USD au taux de change de currencylayer.com (actualisé toutes les 8 heures). Le taux est fixé au moment de la transaction — les variations ultérieures n’affectent pas le résultat de la conversion.
| Propriété | Type | Description |
|---|---|---|
| profile_id | uuid | Identifiant utilisateur Adapty. |
| currency | str | Devise locale (USD par défaut). |
| price_usd | float | Prix du produit avant commission Apple/Google. Chiffre d’affaires brut. |
| proceeds_usd | float | Prix du produit après commission Apple/Google. Chiffre d’affaires net. |
| net_revenue_usd | float | Revenu net (après commission Apple/Google et taxes) en USD. Peut être vide. |
| price_local | float | Prix du produit avant commission Apple/Google en devise locale. Chiffre d’affaires brut. |
| proceeds_local | float | Prix du produit après commission Apple/Google en devise locale. Chiffre d’affaires net. |
| transaction_id | str | Identifiant unique d’une transaction, comme un achat ou un renouvellement. |
| original_transaction_id | str | Identifiant de transaction de l’achat d’origine. |
| purchase_date | ISO 8601 date | Date et heure de l’achat du produit. |
| original_purchase_date | ISO 8601 date | Date et heure de l’achat d’origine. |
| environment | str | Peut être Sandbox ou Production. |
| vendor_product_id | str | ID du produit sur l’Apple App Store, le Google Play Store ou Stripe. |
| base_plan_id | str | ID du plan de base sur le Google Play Store ou ID de prix sur Stripe. |
| event_datetime | ISO 8601 date | Date et heure de l’événement. |
| store | str | Peut être app_store ou play_store. |
| trial_duration | str | Durée de la période d’essai en jours. Envoyée au format « days », par exemple « 7 days ». |
| cancellation_reason | str | Raison pour laquelle l’utilisateur a annulé un abonnement. Valeurs possibles : iOS & Android voluntarily_cancelled, billing_error, refund iOS price_increase, product_was_not_available, unknown Android new_subscription_replace, cancelled_by_developer |
| subscription_expires_at | ISO 8601 date | Date d’expiration de l’abonnement. Généralement dans le futur. |
| consecutive_payments | int | Nombre de périodes consécutives pendant lesquelles l’utilisateur est abonné sans interruption. Inclut la période actuelle. |
| rate_after_first_year | bool | Booléen indiquant que l’abonnement bénéficie d’un taux de commission réduit (généralement 15 %) après un an de renouvellement continu. Les taux varient selon l’éligibilité au programme et le pays. Voir Commission du store et taxes pour plus de détails. |
| promotional_offer_id | str | ID de l’offre promotionnelle, tel qu’indiqué dans la section Produits de l’Adapty Dashboard. |
| store_offer_category | str | Peut être introductory ou promotional. |
| store_offer_discount_type | str | Peut être free_trial, pay_as_you_go ou pay_up_front. |
| paywall_name | str | Nom du paywall depuis lequel la transaction a été initiée. |
| paywall_revision | int | Révision du paywall depuis lequel la transaction a été initiée. La valeur est définie à 1. |
| developer_id | str | ID développeur (SDK) du placement depuis lequel la transaction a été initiée. |
| ab_test_name | str | Nom du test A/B depuis lequel la transaction a été initiée. |
| ab_test_revision | int | Révision du test A/B depuis lequel la transaction a été initiée. La valeur est définie à 1. |
| cohort_name | str | Nom de l’audience à laquelle appartient le profil. |
| profile_event_id | uuid | Identifiant unique de l’événement, utilisable pour la déduplication. |
| store_country | str | Pays transmis par le store. |
| profile_ip_address | str | Adresse IP du profil (IPv4 ou IPv6, avec préférence pour IPv4 si disponible). Mise à jour à chaque changement d’IP de l’appareil. |
| profile_country | str | Déterminé par Adapty, à partir de l’IP du profil. |
| profile_total_revenue_usd | float | Revenu total du profil, remboursements inclus. |
| variation_id | uuid | Identifiant unique du paywall sur lequel l’achat a été effectué. |
| access_level_id | str | ID du niveau d’accès payant. |
| is_active | bool | Booléen indiquant si le niveau d’accès payant est actif pour le profil. |
| will_renew | bool | Booléen indiquant si le niveau d’accès payant sera renouvelé. |
| is_refund | bool | Booléen indiquant si la transaction a été remboursée. |
| is_lifetime | bool | Booléen indiquant si le niveau d’accès payant est à vie. |
| is_in_grace_period | bool | Booléen indiquant si le profil est en délai de grâce. |
| starts_at | ISO 8601 date | Date et heure auxquelles le niveau d’accès payant commence pour l’utilisateur. |
| renewed_at | ISO 8601 date | Date et heure auxquelles le niveau d’accès payant sera renouvelé. |
| expires_at | ISO 8601 date | Date et heure auxquelles le niveau d’accès payant expirera. |
| activated_at | ISO 8601 date | Date et heure auxquelles le niveau d’accès payant a été activé. |
| billing_issue_detected_at | ISO 8601 date | Date et heure du problème de facturation. |
| profile_has_access_level | Bool | Booléen indiquant si le profil dispose d’un niveau d’accès actif (webhook uniquement). |
Chaque événement possède les propriétés suivantes :
transaction_id, original_transaction_id, purchase_date, original_purchase_date, environment, vendor_product_id, event_datetime, store.
En outre, certains événements ont des propriétés supplémentaires. Pour les événements subscription_refunded et non_subscription_purchase_refunded, les valeurs de price_usd et proceeds_usd doivent obligatoirement être fournies en tant que propriétés supplémentaires.
| Nom de l’événement | Propriétés |
|---|---|
| subscription_initial_purchase | price_usd, proceeds_usd, subscription_expires_at, consecutive_payments, rate_after_first_year, trial_duration |
| subscription_renewed | price_usd, proceeds_usd, subscription_expires_at, consecutive_payments, rate_after_first_year, trial_duration |
| subscription_cancelled | cancellation_reason, trial_duration |
| trial_started | subscription_expires_at, trial_duration |
| trial_converted | price_usd, proceeds_usd, subscription_expires_at, consecutive_payments, rate_after_first_year, trial_duration |
| trial_cancelled | cancellation_reason, trial_duration |
| non_subscription_purchase | price_usd, proceeds_usd |
| billing_issue_detected | subscription_expires_at, trial_duration |
| entered_grace_period | subscription_expires_at, trial_duration |
Exemple d’événement
{
"price_usd": 9.99,
"proceeds_usd": 6.99,
"transaction_id": "1000000628581600",
"original_transaction_id": "1000000628581600",
"purchase_date": "2020-02-18T18:40:22.000000+0000",
"original_purchase_date": "2020-02-18T18:40:22.000000+0000",
"environment": "Sandbox",
"vendor_product_id": "premium",
"event_datetime": "2020-02-18T18:40:22.000000+0000",
"store": "app_store"
}
Adapty envoie les événements à votre serveur et aux systèmes d’analyse tiers.
La propriété profile_ip_address est synchronisée avec l’IP actuelle de l’appareil. À chaque fois que les serveurs Adapty reçoivent des informations du SDK, l’IP est mise à jour si elle diffère de celle enregistrée.
Définir l’identifiant du profil
- Définissez l’identifiant du profil pour l’outil d’analyse sélectionné en utilisant les instructions pour instructions pour définir les attributs utilisateur dans votre application iOS, Android, React Native, Flutter et Unity .
Éviter les doublons
N’oubliez pas de désactiver l’envoi d’événements d’abonnement depuis les appareils et votre serveur pour éviter les doublons.
Désactiver l’analyse externe pour un client spécifique
Vous pouvez vouloir arrêter d’envoyer des événements analytiques pour un client spécifique. C’est utile si votre application propose une option de désactivation des services d’analyse.
Pour désactiver l’analyse externe pour un client, utilisez la méthode updateProfile(). Créez un objet AdaptyProfileParameters.Builder et définissez la valeur correspondante.
Lorsque l’analyse externe est bloquée, Adapty n’envoie plus aucun événement à aucune intégration pour cet utilisateur. Si vous souhaitez désactiver une intégration pour tous les utilisateurs de votre application, désactivez-la simplement dans l’Adapty Dashboard.