Intégrations
Intégration RevenueCat
Envoyez le webhook RevenueCat à Traqio : achats, renouvellements et remboursements rejoignent l’installation qui les a générés : le ROAS sans republier l’app.
RevenueCat gère les abonnements et les achats in-app, et signale chaque transaction par un webhook. Envoyé à Traqio, ce webhook apporte des revenus vérifiés — premiers achats, renouvellements, remboursements — sur l’installation qui les a générés, de serveur à serveur : des renouvellements des mois plus tard continuent de compter pour la campagne qui a amené l’utilisateur, sans nouvelle version de l’app.
Mise en place#
Définissez le même identifiant utilisateur dans les deux SDK#
await Purchases.logIn(user.id); // RevenueCat — becomes app_user_id Traqio.setUserId(user.id); // Traqio — the SAME valueTraqio retrouve l’installation d’un achat par
(app, app_user_id). Un identifiant différent de chaque côté, ce sont des revenus enregistrés mais jamais attribués. Voir Identité.Copiez l’URL du webhook et l’en-tête#
Dans la console : votre produit → Intégrations → Revenus → RevenueCat. Copiez l’URL du webhook (
https://api.traqio.app/webhooks/revenuecat) et la valeur de l’En-tête Authorization (Bearer …) qu’affiche Générer un secret. Il n’est affiché qu’une fois : Traqio n’en garde qu’une empreinte, donc un secret perdu se remplace (générez-en un nouveau, puis révoquez l’ancien) mais ne se réaffiche jamais. Chaque produit a son propre secret.Ajoutez le webhook dans RevenueCat#
Tableau de bord RevenueCat → votre projet → Integrations → Webhooks → Add. Collez l’URL et l’en-tête, choisissez l’app, et envoyez sandbox, production ou les deux.
L’en-tête est un secret — et ce n’est pas votre clé SDK
Il authentifie les appels de RevenueCat ; gardez-le hors de votre app et de votre dépôt. La clé SDK à sa place est rejetée avec401 invalid webhook secret.Envoyez un webhook de test#
Le Send test webhook de RevenueCat arrive comme une livraison
TEST: journalisée, jamais comptée. Ensuite, un achat sandbox depuis un build de debug apparaît comme Sandbox — branchement vérifié, avec le prix que Traqio a lu. Ce sont les achats de production qui sont comptés.
Ce que fait chaque événement RevenueCat#
| Type RevenueCat | Dans Traqio |
|---|---|
| INITIAL_PURCHASE, RENEWAL, NON_RENEWING_PURCHASE, UNCANCELLATION | un achat — des revenus, transmis à Meta et TikTok |
| CANCELLATION avec un prix négatif | un remboursement — revenu négatif, jamais transmis, jamais facturé |
| CANCELLATION sans prix ou à prix nul | journalisé uniquement : une résiliation ne fait bouger aucun argent |
| REFUND_REVERSED | revenu positif : le remboursement a été annulé |
| EXPIRATION | journalisé uniquement |
| TEST et tout le reste | journalisé uniquement |
- Les achats sandbox sont listés dans la console et ne sont jamais comptés ni transmis — les transmettre apprendrait aux réseaux à enchérir pour des achats qui n’ont jamais eu lieu.
- Les montants sont bruts : ce que l’acheteur a payé, dans la devise de l’achat, avant commission du store et taxes. Les pourcentages de commission et de taxes de RevenueCat sont stockés mais pas appliqués.
- Les informations d’essai (type de période, conversion de l’essai) sont conservées, pour pouvoir répondre à la question « de l’essai au payant ».
Si les achats sont aussi suivis dans l’app#
Les achats sont indexés sur l’identifiant de transaction du store. Si votre app suit aussi l’achat avec son transactionId, les deux arrivent sur la même clé et comptent une seule fois — avec le montant vérifié de RevenueCat. Voir Compter un achat une seule fois.
Questions fréquentes#
- L’en-tête Authorization de RevenueCat est-il ma clé SDK ?
- Non. La clé SDK est publique — elle est embarquée dans votre app. L’en-tête du webhook porte un secret distinct qui authentifie les appels de serveur à serveur de RevenueCat et ne doit jamais se trouver dans l’app. Coller la clé SDK fait échouer chaque livraison avec 401 invalid webhook secret.
- Que se passe-t-il si un achat arrive avant que Traqio ait vu l’installation ?
- Les revenus sont quand même enregistrés, mais non attribués : ils apparaissent comme non rapprochés dans le rapport des revenus. Ils sont rapprochés quand l’identifiant utilisateur dont Traqio dispose pour l’installation est le même que l’app_user_id de RevenueCat — c’est pourquoi l’identifiant utilisateur doit être défini des deux côtés.
- Les remboursements RevenueCat sont-ils déduits ?
- Oui. Une CANCELLATION RevenueCat avec un prix négatif est un remboursement : Traqio l’enregistre comme un revenu négatif, si bien que chaque total le déduit. Il n’est jamais facturé comme une conversion ni transmis à Meta ou TikTok. Une CANCELLATION sans prix négatif est une simple résiliation d’abonnement et ne fait bouger aucun argent.