# Événements et revenus

URL: https://traqio.app/fr/docs/concepts/events-and-revenue
Last updated: 2026-10-14

Les noms d’événements sur lesquels Meta et TikTok optimisent, comment les revenus arrivent (SDK, RevenueCat, AdMob) et comment le ROAS est calculé.

Un **événement** est une action de l’utilisateur dans votre app après son installation — inscription, début d’essai, achat. Les événements portent une **valeur** et une **devise** optionnelles ; ceux qui ont une valeur sont des revenus. Traqio rattache chaque événement à l’installation qui l’a généré, et c’est ce rattachement qui transforme une campagne en retour sur dépenses publicitaires.

## Noms d’événements

Meta et TikTok optimisent les campagnes sur leurs propres événements standard. Quand Traqio transmet un événement, il traduit les noms ci-dessous en nom standard de chaque réseau ; la correspondance ignore la casse et les espaces en début et fin.

| Envoyé | Reçu par Meta | Reçu par TikTok |
| --- | --- | --- |
| purchase | fb_mobile_purchase | CompletePayment |
| signup | fb_mobile_complete_registration | CompleteRegistration |
| registration | fb_mobile_complete_registration | CompleteRegistration |
| subscribe | Subscribe | Subscribe |
| trial | StartTrial | StartTrial |
| add_to_cart | fb_mobile_add_to_cart | AddToCart |
| checkout | fb_mobile_initiated_checkout | InitiateCheckout |
| add_payment_info | fb_mobile_add_payment_info | tel quel |
| search | fb_mobile_search | tel quel |
| content_view | fb_mobile_content_view | tel quel |
| level_achieved | fb_mobile_level_achieved | tel quel |
| tutorial_complete | fb_mobile_tutorial_completion | tel quel |

> **N’envoyez pas votre catalogue analytics** Un nom absent de cette liste est stocké et affiché dans vos rapports, et arrive chez les réseaux comme un événement personnalisé sur lequel aucune campagne ne peut enchérir. Faites correspondre vos noms internes (offer_purchased, pack_opened) à ce vocabulaire au moment de l’appel, et envoyez à Traqio les événements sur lesquels une campagne doit optimiser.

## D’où viennent les revenus

| Source | De quoi il s’agit | Vérifié ? |
| --- | --- | --- |
| Le SDK — track("purchase", { value, currency }) | le montant que déclare votre app | non : le SDK ne lit aucun reçu |
| Webhook RevenueCat | abonnements et achats in-app, renouvellements et remboursements, de serveur à serveur | oui : par le store, via RevenueCat |
| AdMob | revenus publicitaires par impression, depuis le callback d’événement payé d’AdMob | estimé par AdMob |

Les apps qui vendent via RevenueCat devraient quand même suivre l’achat depuis le SDK quand c’est possible : sur iOS, c’est ce qui fait évoluer la valeur de conversion SKAdNetwork, qui doit être définie sur l’appareil avant la fermeture de la fenêtre d’Apple — un webhook serveur arrive trop tard pour cela.

## Compter un achat une seule fois

Un achat que votre app remonte *et* que RevenueCat remonte, c’est le même argent. Pour le compter une seule fois, passez l’identifiant de l’achat attribué par le store — le `transactionId` de StoreKit, l’`orderId` de Google Play — en tant que `transactionId`. Traqio classe alors l’événement sous la même clé que celle que la livraison de RevenueCat dérive pour cette transaction, et c’est le montant vérifié qui l’emporte.

```ts
Traqio.track("purchase", {
  value: 9.99,
  currency: "EUR",
  transactionId: purchase.transactionId, // StoreKit transactionId / Play orderId
});
```

Sans lui, les deux ne peuvent pas être rapprochés et l’achat est compté deux fois ; la console le signale. Le champ `transactionId` est disponible dans les SDK React Native, Expo et Capacitor ; sur les autres, remontez les achats uniquement via RevenueCat.

## Remboursements, sandbox et trafic de test

- Les **remboursements** reçus de RevenueCat sont enregistrés comme des revenus négatifs sur la même installation, si bien que chaque total les déduit. Un remboursement n’est pas une conversion et n’est jamais transmis aux réseaux.
- Les **achats sandbox** et les **impressions de test AdMob** sont affichés dans la console, pour que vous voyiez que le branchement fonctionne, et ne sont jamais comptés ni transmis.

## Comment le ROAS est calculé

Le **ROAS** (retour sur dépenses publicitaires) correspond aux revenus attribués divisés par les dépenses publicitaires, pour la même campagne, le même ensemble de publicités ou la même publicité, sur les mêmes jours. Les dépenses sont récupérées chaque jour depuis les comptes publicitaires Meta et TikTok connectés ; les revenus sont ce qu’ont rapporté les installations générées par chaque campagne. Le ROAS est calculé dès la première installation — il n’y a pas de volume minimal.

### Jours et devise

- Chaque produit a un **fuseau horaire** et une **devise de reporting** — UTC et dollar américain sauf réglage contraire. Chaque jour de chaque rapport est découpé dans ce fuseau ; le changer redécoupe l’historique à la lecture, rien n’est réécrit.
- Les montants sont convertis dans la devise de reporting au taux de change de leur propre jour. Un montant dont le jour n’a pas de taux est affiché dans sa propre devise et jamais additionné à un autre — un vide se rattrape, un chiffre faux mais plausible, non.
- Les revenus SKAdNetwork sont modélisés à partir d’une valeur de conversion sur six bits et présentés à part ; ils n’entrent jamais dans les revenus mesurés ni dans le ROAS.

Les rapports de cohorte comptent à partir du jour 0, le jour même de l’installation. Certains éditeurs commencent au jour 1 ; Traqio indique la convention qu’il utilise plutôt que de vous laisser comparer deux chiffres construits différemment.

## Questions fréquentes

**Puis-je envoyer n’importe quel nom d’événement à Traqio ?**
Oui — chaque nom est stocké et présenté dans les rapports. Mais seuls les noms du vocabulaire de Traqio (purchase, signup, subscribe, trial, add_to_cart, checkout et quelques autres) sont traduits en événements standard de Meta et TikTok. Tout autre nom arrive chez les réseaux comme un événement personnalisé, sur lequel aucune campagne ne peut optimiser.

**Comment Traqio calcule-t-il le ROAS ?**
Le ROAS correspond aux revenus attribués divisés par les dépenses publicitaires, pour la même campagne, le même ensemble de publicités ou la même publicité, et les mêmes jours. Les revenus sont ce qu’ont rapporté les installations générées par une campagne — achats depuis le SDK et depuis RevenueCat, revenus publicitaires AdMob — en brut, dans la devise de reporting de l’app. Les dépenses sont récupérées chaque jour depuis les API marketing de Meta et TikTok.

**Les revenus sont-ils bruts ou nets des frais de store ?**
Bruts : ce que l’acheteur a payé, avant la commission de l’App Store ou de Google Play et avant taxes. Les pourcentages de commission et de taxes reçus de RevenueCat sont conservés mais jamais appliqués, car les paliers de commission des stores varient selon le programme, la région et l’ancienneté de l’abonnement, et un net estimé serait faux d’une manière que personne ne pourrait voir.
