Déchiffrer le Meta Install Referrer sur Android
Facebook et Instagram peuvent indiquer à votre app quelle campagne, quel ensemble de publicités et quelle publicité ont amené une installation, affichages compris. Les données sont chiffrées avec une clé que vous êtes seul à détenir.
Le Google Play Install Referrer ne transporte que les clics sur une publicité Meta suivis d’une installation dans la même session. Le Meta Install Referrer couvre tout le reste : les apps Facebook, Instagram et Facebook Lite gardent en mémoire la publicité que votre utilisateur a vue ou cliquée, et la transmettent à votre app.
Play Install Referrer
- Clics de la même session
- Données Meta chiffrées
- Transporte aussi les clics Google Ads
Meta Install Referrer
- Clics, affichages et sessions précédentes
- Même chiffrement, même clé
- Distingue clic et affichage
Avant de commencer
Une campagne d’installations d’app Android
Sur Facebook, Instagram ou Audience Network.
Votre Facebook App ID
Celui sous lequel tournent vos publicités.
La clé de déchiffrement
Meta for Developers › App settings › Basic › Android. Accès administrateur requis.
1. Le lire au premier lancement
AndroidManifest.xml
<queries>
<package android:name="com.facebook.katana" />
<package android:name="com.instagram.android" />
<package android:name="com.facebook.lite" />
</queries>Kotlin
val providers = listOf(
"com.facebook.katana.provider.InstallReferrerProvider",
"com.instagram.contentprovider.InstallReferrerProvider",
"com.facebook.lite.provider.InstallReferrerProvider",
)
fun readMetaReferrer(context: Context, facebookAppId: String): String? {
for (authority in providers) {
val uri = Uri.parse("content://$authority/$facebookAppId")
runCatching { context.contentResolver.query(uri, null, null, null, null) }
.getOrNull()?.use { cursor ->
if (cursor.moveToFirst()) {
return cursor.getString(cursor.getColumnIndexOrThrow("install_referrer"))
}
}
}
return null
}2. Le déchiffrer sur votre serveur
Ne livrez jamais la clé dans votre app. N’importe qui décompilant l’APK pourrait la lire.
Node.js
import crypto from 'node:crypto';
export function decryptMetaReferrer(installReferrer, keyHex) {
const {utm_content} = JSON.parse(installReferrer);
const {source} = typeof utm_content === 'string' ? JSON.parse(utm_content) : utm_content;
const sealed = Buffer.from(source.data, 'hex');
const decipher = crypto.createDecipheriv('aes-256-gcm', Buffer.from(keyHex, 'hex'), Buffer.from(source.nonce, 'hex'));
decipher.setAuthTag(sealed.subarray(-16));
return JSON.parse(Buffer.concat([decipher.update(sealed.subarray(0, -16)), decipher.final()]).toString());
}Des noms de champs décalés d’un cran
campaign_groupcampaignadgroup
campaign_group
Campagne
Ce que le Gestionnaire de publicités appelle la campagne.
campaign
Ensemble de publicités
Pas la campagne.
adgroup
Publicité
Le visuel que les gens ont vu.
Quand le résultat revient vide
Avec Appy, la clé se colle une fois
Sur l’offre Enterprise, vous ajoutez la clé dans le tableau de bord et votre App ID dans le SDK. Le déchiffrement se fait sur les serveurs d’Appy.
Premier lancement
Android, SDK Appy
- Clic sur votre lien AppyAttribuée au lien
- Publicité Meta, clic ou affichageCampagne, ensemble de publicités, publicité
- Clic Google AdsAttribuée à Google Ads
- Rien de tout celaOrganique
À lire ensuite
Questions
Où se trouve la clé de déchiffrement ?
Dans Meta for Developers, sous App settings › Basic, section Android.
Quel chiffrement Meta utilise-t-il ?
AES-256-GCM, avec une clé hexadécimale de 64 caractères.
Les installations view-through sont-elles incluses ?
Oui. La colonne is_ct vaut 0 pour un affichage et 1 pour un clic.
campaign_name désigne-t-il la campagne ?
Non, c’est l’ensemble de publicités. La campagne, c’est campaign_group_name.
Continuer à explorer
Deferred deep linking sans SDK : comment ça marche vraiment sous le capot
On peut transporter le contexte d’un lien à travers une installation sans embarquer de SDK d’attribution. Voici ce qui survit réellement à la frontière du store sur Android et iOS, ce qui casse, et le coût de chaque contournement en matière de vie privée.
Identifiez le lien derrière chaque installation : le SDK iOS et Android d’Appy
Appy suit désormais vos liens au-delà du store. Le nouveau SDK montre les installations, les événements in-app et les revenus de chaque lien, QR code et campagne, et ouvre l’app des nouveaux utilisateurs sur le bon écran.
Chrome dit à chaque serveur que votre téléphone tourne sous Android 10
Chrome sur Android annonce Android 10, modèle K, pour tous les téléphones. Ce que cela a cassé dans le matching des deferred deep links, pourquoi Critical-CH compterait chaque clic deux fois, et comment les Client Hints permettent de retrouver la vraie version et le vrai modèle.
Vous cherchez autre chose ? Parcourez tous les sujets sur le blog.
Vos installations Meta à côté de chaque lien et QR code
Collez votre clé une seule fois : Appy attribue les installations Facebook et Instagram à la campagne, à l’ensemble de publicités et à la publicité.