Cómo descifrar el Meta Install Referrer en Android
Facebook e Instagram pueden decirle a tu app qué campaña, conjunto de anuncios y anuncio trajeron una instalación, visualizaciones incluidas. Los datos van cifrados con una clave que solo tienes tú.
El Google Play Install Referrer solo trae los toques en anuncios de Meta que acaban en instalación en la misma sesión. El Meta Install Referrer cubre el resto: las apps de Facebook, Instagram y Facebook Lite guardan el anuncio que tu usuario vio o tocó y se lo pasan a tu app.
Play Install Referrer
- Toques en la misma sesión
- Datos de Meta cifrados
- También trae clics de Google Ads
Meta Install Referrer
- Toques, visualizaciones y sesiones anteriores
- Mismo cifrado, misma clave
- Distingue toque de visualización
Antes de empezar
Una campaña de instalaciones en Android
En Facebook, Instagram o Audience Network.
Tu Facebook App ID
El de la app con la que publicas tus anuncios.
La clave de descifrado
Meta for Developers › App settings › Basic › Android. Necesitas acceso de administrador.
1. Léelo en la primera apertura
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. Descífralo en tu servidor
Nunca metas la clave en tu app. Cualquiera que desempaquete el APK podría leerla.
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());
}Los nombres de campo están un nivel desplazados
campaign_groupcampaignadgroup
campaign_group
Campaña
Lo que el Administrador de anuncios llama campaña.
campaign
Conjunto de anuncios
No es la campaña.
adgroup
Anuncio
La creatividad que vio la gente.
Cuando llega vacío
Con Appy, pegas la clave una vez
En el plan Enterprise añades la clave en el panel y tu App ID en el SDK. El descifrado se hace en los servidores de Appy.
Primera apertura
Android, SDK de Appy
- Tocó tu enlace de AppySe atribuye al enlace
- Anuncio de Meta, toque o vistaCampaña, conjunto, anuncio
- Clic en Google AdsSe atribuye a Google Ads
- Nada de estoOrgánica
Sigue leyendo
Preguntas
¿Dónde está la clave de descifrado?
En Meta for Developers, App settings › Basic, en la sección de Android.
¿Qué cifrado usa Meta?
AES-256-GCM con una clave hexadecimal de 64 caracteres.
¿Incluye las instalaciones view-through?
Sí. La columna is_ct vale 0 para una visualización y 1 para un toque.
¿campaign_name es la campaña?
No, es el conjunto de anuncios. La campaña es campaign_group_name.
Seguir explorando
Deferred deep linking sin SDK: cómo funciona realmente por dentro
Puedes llevar el contexto de un enlace a través de una instalación sin incrustar un SDK de atribución. Esto es lo que sobrevive a la frontera de la tienda en Android e iOS, lo que se rompe y el coste en privacidad de cada alternativa.
Descubre qué enlace trajo cada instalación: el SDK de Appy para iOS y Android
Appy ahora sigue tus enlaces más allá de la tienda de apps. El nuevo SDK te muestra instalaciones, eventos in-app e ingresos de cada enlace, código QR y campaña, y abre la pantalla correcta a los nuevos usuarios.
Chrome le dice a cada servidor que tu teléfono usa Android 10
Chrome en Android dice que todos los teléfonos son Android 10, modelo K. Qué supuso eso para el matching de deferred deep links, por qué Critical-CH contaría cada clic dos veces y cómo los Client Hints recuperan la versión y el modelo reales.
¿Buscas otra cosa? Explora todos los temas en el blog.
Las instalaciones de Meta junto a cada enlace y código QR
Pega tu clave una vez y Appy atribuye las instalaciones de Facebook e Instagram a su campaña, conjunto de anuncios y anuncio.