# Attribution iOS : SKAdNetwork et Apple Ads

URL: https://traqio.app/fr/docs/concepts/ios-attribution
Last updated: 2026-10-22

Mesurer iOS sans l’IDFA : postbacks SKAdNetwork signés, décodés avec votre mapping de valeurs de conversion, et attribution Apple Ads via AdServices.

iOS n’a pas d’install referrer, et Traqio ne lit pas l’IDFA par défaut. Il mesure iOS via les deux canaux qu’Apple a conçus pour l’attribution sans suivi des utilisateurs : **SKAdNetwork** (SKAN), le framework d’attribution respectueux de la vie privée d’Apple, pour tous les réseaux publicitaires ; et le **jeton d’attribution Apple Ads**, pour les publicités d’Apple elle-même. Aucun des deux n’a besoin de la demande App Tracking Transparency.

## SKAdNetwork en un paragraphe

Quand une publicité d’un réseau publicitaire mène à une installation, iOS l’enregistre sur l’appareil. Après la fermeture de la fenêtre de conversion, plus un délai aléatoire d’au moins 24 heures, Apple envoie un **postback** — signé par Apple — au réseau publicitaire et, si l’app en déclare un, à l’endpoint du développeur. Le postback nomme la campagne (un identifiant de source) et porte la **valeur de conversion** de l’app. Il ne nomme jamais l’utilisateur ni l’appareil. La mesure SKAN est donc agrégée, grossière et tardive par conception : Traqio la présente par campagne, jamais par utilisateur.

## Recevoir les postbacks

Déclarez Traqio comme endpoint d’attribution de votre app, dans `Info.plist` :

```xml
<key>NSAdvertisingAttributionReportEndpoint</key>
<string>https://api.traqio.app</string>
```

L’origine seulement — Apple ajoute son propre chemin. Les apps Expo le définissent dans `app.json` ([voir Expo](https://traqio.app/fr/docs/sdks/expo#app-json)). Sans cela, Traqio ne voit que ce que les réseaux veulent bien rapporter sur eux-mêmes.

Ce que Traqio fait de chaque postback :

- **Il vérifie la signature d’Apple** — SKAdNetwork 2.1, 2.2, 3.0 et 4.0. Un postback dont la vérification échoue n’est ni stocké ni compté. Les versions 1.0 et 2.0, issues de versions d’iOS qui ne portent plus de trafic publicitaire, sont refusées.
- **Il écarte les doublons** sur l’identifiant de transaction d’Apple, et conserve l’original signé intact, pour que tout décodage puisse être revérifié plus tard.
- **Il compte une installation** uniquement pour un postback *gagnant* de la *première* fenêtre — jusqu’à trois postbacks arrivent par installation.

> **La valeur de conversion n’est pas signée** Apple laisse la valeur de conversion en dehors des champs signés. On lui fait confiance dans la limite de votre mapping, et jamais comme preuve de revenus.

## Votre mapping de valeurs de conversion

Six bits signifient ce que vous décidez. Dans la console (votre produit → Intégrations → Configuration SKAN), vous publiez un **mapping** dans l’un de deux modes :

| Mode | La valeur fine (0–63) est… | Elle se décode en |
| --- | --- | --- |
| Revenus | un index dans des tranches de revenus croissantes | la borne inférieure de la tranche — « au moins X » |
| Événements | un masque de bits sur jusqu’à six étapes nommées | les étapes que l’utilisateur a atteintes |

Ajoutez des **valeurs grossières** (low, medium, high) pour SKAN 4 : Apple envoie la valeur grossière à la place de la valeur fine dans ses niveaux de confidentialité les plus bas *et* dans les deuxième et troisième fenêtres, si bien que sans elles la plupart des postbacks ne se décodent en rien. Chaque seuil grossier doit être l’une de vos tranches de revenus — sinon un postback SKAN 3 et un postback SKAN 4 pour la même installation se décoderaient en deux revenus différents ; la console le refuse.

Un mapping est **publié, jamais modifié sur place** : un postback de troisième fenêtre peut arriver 35 jours après l’installation, donc modifier un mapping crée une nouvelle version, et chaque postback enregistre la version avec laquelle il a été décodé. Publiez-en un avant votre première campagne iOS — sans mapping, les installations sont enregistrées mais les postbacks n’ont rien à décoder.

### Les trois fenêtres de conversion

| Fenêtre | Heures après l’installation | Porte |
| --- | --- | --- |
| 1 | 0 – 48 | la valeur fine (ou la grossière dans les niveaux bas) |
| 2 | 48 – 168 | la valeur grossière uniquement |
| 3 | 168 – 840 | la valeur grossière uniquement |

Vous pouvez **verrouiller** une fenêtre plus tôt — après un certain nombre d’heures, ou à la prochaine mise à jour — pour que son postback arrive plus vite. Le prix, c’est tout ce que cette fenêtre aurait mesuré après le verrouillage ; la console affiche cet écart avant l’enregistrement. Le calendrier fait partie du mapping : le modifier ne demande donc aucune nouvelle version de l’app.

### Sur l’appareil

Le SDK récupère le mapping publié, cumule les revenus d’un lancement à l’autre et définit la valeur : chaque valeur suivie — achats et revenus publicitaires AdMob — la fait évoluer, et elle ne fait que monter, comme l’exige SKAN. C’est complet dans les SDK [React Native](https://traqio.app/fr/docs/sdks/react-native) / [Expo](https://traqio.app/fr/docs/sdks/expo) et [iOS natif](https://traqio.app/fr/docs/sdks/ios) ; les autres enregistrent l’installation auprès de SKAdNetwork sans définir de valeurs ([matrice](https://traqio.app/fr/docs/sdks#capabilities)).

## Comment SKAN apparaît dans les rapports

- Les installations SKAN et leurs revenus décodés sont présentés par campagne, à part des revenus mesurés et du ROAS.
- Les postbacks qui ne portaient aucune valeur exploitable — le seuil de confidentialité d’Apple — sont comptés comme masqués, pas écartés.
- Le flag de retéléchargement d’Apple est présenté dans sa propre colonne.
- Chaque postback reçu peut être inspecté tel que reçu, pour votre propre vérification.

## Apple Ads

Apple Ads (anciennement Search Ads) attribue ses propres installations via le framework **AdServices**, disponible à partir d’iOS 14.3. Le SDK demande à AdServices un **jeton d’attribution** — un ticket opaque valable 24 heures, qui ne dit rien de l’utilisateur — et l’envoie à Traqio. Traqio le résout auprès d’Apple, en réessayant tant qu’Apple ne l’a pas encore enregistré, et attribue l’installation à la campagne, au groupe d’annonces et au mot-clé Apple Ads quand Apple le confirme.

Apple décide du niveau de détail de sa réponse selon le statut ATT que l’utilisateur a déjà choisi pour votre app. La plupart des installations ne viennent pas d’Apple Ads ; pour celles-là, Apple répond qu’il n’y a rien à attribuer et l’installation reste telle quelle. Les installations Apple Ads apparaissent comme **Auto-attribué**.

## Ce que Traqio n’utilise pas

- L’IDFA, par défaut — le SDK n’affiche jamais d’invite ATT, et ne lit l’IDFA que si vous activez `collectAdvertisingId` et que l’utilisateur a déjà autorisé le suivi (utile pour Unity Ads et AppLovin).
- Le presse-papiers — le lire affiche la bannière de collage d’iOS et ne couvre que Safari.
- Le fingerprinting d’appareil, par défaut. Si vous activez le [rapprochement probabiliste web vers app](https://traqio.app/fr/docs/concepts/attribution#probabilistic), ne remontez le consentement qu’après que l’utilisateur a autorisé App Tracking Transparency.

## Questions fréquentes

**Qu’est-ce qu’une valeur de conversion SKAdNetwork ?**
Un nombre de 0 à 63 (six bits) que l’app définit sur l’appareil après l’installation, et qu’Apple renvoie dans le postback SKAdNetwork. Sa signification dépend de l’annonceur : dans Traqio, soit une tranche de revenus, soit un ensemble de jusqu’à six étapes in-app, selon le mapping que vous publiez. SKAdNetwork 4 ajoute une valeur grossière — low, medium ou high — qu’Apple envoie à la place de la valeur fine dans ses niveaux de confidentialité les plus bas et dans les deuxième et troisième fenêtres.

**Pourquoi certaines campagnes iOS n’ont-elles pas de valeur de conversion ?**
Apple retient la valeur de conversion — et parfois davantage — quand une campagne a trop peu d’installations pour atteindre son seuil d’anonymat (crowd anonymity). Traqio compte ces postbacks et indique combien ont été masqués, au lieu de les cacher ou d’inventer une valeur.

**Traqio affiche-t-il la demande App Tracking Transparency ?**
Non, et il n’en a pas besoin. SKAdNetwork et le jeton d’attribution Apple Ads fonctionnent tous deux sans ATT. Traqio ne lit l’IDFA que si vous l’activez et que votre app a déjà l’ATT : pour la plupart des installations, les résultats iOS sont donc au niveau de la campagne pour SKAdNetwork, et au niveau de l’installation uniquement pour Apple Ads.
