Intégrations de services de messagerie
L’acquisition n’est ni facile ni bon marché dans un marché mobile en pleine croissance. Traiter intelligemment les utilisateurs acquis améliore donc votre économie unitaire, surtout dans les niches très concurrentielles.
Adapty fournit des informations en temps réel sur les principales actions de paiement de vos utilisateurs. Nous savons quand un client a commencé un essai, s’il a rencontré des problèmes de paiement, ou s’il a souscrit un abonnement avant de décider d’annuler. Tous ces événements, et d’autres encore, reflètent un changement d’état du client. C’est le moment idéal pour réagir : envoyer une offre, un cadeau personnalisé, ou tout autre moyen de fidélisation.
Les plateformes de notifications push permettent de décrire un utilisateur à l’aide de tags standard et personnalisés afin de mettre en place un système de rétention automatique efficace. Pour que ce système fonctionne, il suffit de déclencher des événements qui indiquent au système qu’il est temps d’envoyer un message. Ces événements seront transmis à la plateforme push depuis Adapty via l’intégration configurée.
Choisissez ci-dessous le service à intégrer et suivez les instructions :
Votre fournisseur d’attribution n’apparaît pas dans la liste ?
Faites-le nous savoir ! Créez une demande de fonctionnalité et nous l’examinerons.
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 | ID utilisateur Adapty. |
| currency | str | Devise locale (USD par défaut). |
| price_usd | float | Prix du produit avant la commission Apple/Google. Revenu. |
| proceeds_usd | float | Prix du produit après la commission Apple/Google. Revenu net. |
| net_revenue_usd | float | Revenu net (revenu après commission Apple/Google et taxes) en USD. Peut être vide. |
| price_local | float | Prix du produit avant la commission Apple/Google en devise locale. Revenu. |
| proceeds_local | float | Prix du produit après la commission Apple/Google en devise locale. Revenu net. |
| transaction_id | str | Identifiant unique d’une transaction, comme un achat ou un renouvellement. |
| original_transaction_id | str | Identifiant de la transaction d’achat d’origine. |
| purchase_date | ISO 8601 date | Date et heure d’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 dans l’Apple App Store, le Google Play Store ou Stripe. Pour un engagement de 12 mois, la valeur est <product_id>:monthly. |
| base_plan_id | str | ID du plan de base dans le Google Play Store ou ID de prix dans 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. Peut être 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 pendant lesquelles l’utilisateur est abonné sans interruption. Inclut la période en cours. |
| rate_after_first_year | bool | Booléen indiquant que l’abonnement est éligible à un taux de commission réduit (généralement 15 %) après un an de renouvellement continu. Les taux de commission 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 Produit 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 d’où provient la transaction. Pour un flow, l’ID de l’écran du paywall (scr_...). |
| paywall_revision | int | Révision du paywall d’où provient la transaction. La valeur est définie à 1. |
| developer_id | str | ID développeur (SDK) du placement d’où provient la transaction. |
| ab_test_name | str | Nom du test A/B d’où provient la transaction. Pour un test A/B multi-placement, le nom du test sur un placement (<test name> child-N). Pour regrouper un test multi-placement par placements, utilisez ab_test_id. |
| ab_test_revision | int | Révision du test A/B d’où provient la transaction. La valeur est définie à 1. |
| ab_test_id | uuid | ID du test A/B d’où provient la transaction. Pour un test A/B multi-placement, identique sur chaque placement. |
| ab_test_parent_name | str | Nom du test A/B multi-placement. Présent uniquement pour les tests A/B multi-placement. |
| ab_test_variant_id | uuid | ID de la variante du test A/B d’où provient la transaction. Utilisez-le pour répartir les transactions par variante de test. |
| ab_test_variant_name | str | Nom de la variante du test A/B. |
| flow_id | uuid | ID du flow d’où provient la transaction. |
| flow_name | str | Nom du flow d’où provient la transaction. |
| flow_variation_id | uuid | ID de la variante du flow sur ce placement, identique à flow.variationId dans le SDK. |
| cohort_name | str | Nom de l’audience à laquelle appartient le profil. |
| profile_event_id | uuid | ID d’événement unique pouvant être utilisé pour la déduplication. |
| store_country | str | Pays transmis par le store. |
| profile_ip_address | str | IP du profil (peut être IPv4 ou IPv6, avec IPv4 préféré si disponible). Mise à jour à chaque changement d’adresse IP de l’appareil. |
| profile_country | str | Déterminé par Adapty, d’après l’IP du profil. |
| profile_total_revenue_usd | float | Revenu total du profil, remboursements inclus. |
| variation_id | uuid | ID unique du paywall où l’achat a été effectué. Pour un flow, l’ID de l’écran du paywall dans le flow, et non l’ID de la variante du test A/B. |
| 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 est 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 démarre pour l’utilisateur. |
| renewed_at | ISO 8601 date | Date et heure du début de la période en cours du niveau d’accès payant. Avant le premier renouvellement, correspond à activated_at. |
| expires_at | ISO 8601 date | Date et heure d’expiration de l’accès payant. |
| activated_at | ISO 8601 date | Date et heure d’activation de l’accès payant. |
| 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 disposent de propriétés supplémentaires. Pour les événements subscription_refunded et non_subscription_purchase_refunded, il est obligatoire de fournir les valeurs de price_usd et proceeds_usd en tant que propriétés supplémentaires.
| Event Name | Properties |
|---|---|
| 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 des événements à votre serveur et aux systèmes d’analyse tiers.
La propriété profile_ip_address est synchronisée avec l’adresse IP de l’appareil actuel. Chaque fois que les serveurs Adapty reçoivent des informations du SDK, l’adresse IP est mise à jour si elle diffère de celle enregistrée.