Appy
← Назад в блог
Гайд

Как расшифровать Meta Install Referrer на Android

Facebook и Instagram могут сообщить приложению, какая кампания, группа объявлений и объявление принесли установку, включая показы. Данные зашифрованы ключом, который есть только у вас.

15 октября 2026•4 минуты

Google Play Install Referrer передаёт только клики по рекламе Meta, после которых установка прошла в той же сессии. Остальное закрывает Meta Install Referrer: приложения Facebook, Instagram и Facebook Lite запоминают объявление, которое пользователь видел или нажал, и отдают его вашему приложению.

Play Install Referrer

  • Клики в той же сессии
  • Зашифрованные данные Meta
  • Ещё и клики Google Ads

Meta Install Referrer

  • Клики, показы и прошлые сессии
  • То же шифрование, тот же ключ
  • Отличает клик от показа

Что нужно заранее

01

Кампания на установки Android-приложения

В Facebook, Instagram или Audience Network.

02

Ваш Facebook App ID

Тот, от имени которого крутится реклама.

03

Ключ расшифровки

Meta for Developers › App settings › Basic › Android. Нужны права администратора.

1. Прочитайте его при первом запуске

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
}
Без блока queries Android 11 и новее ничего не вернёт.

2. Расшифруйте на сервере

Никогда не кладите ключ в приложение. Его прочитает любой, кто распакует APK.

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());
}
AES-256-GCM, data и nonce в hex, 16-байтовый тег в конце, ключ из 64 символов.

Названия полей съехали на уровень

campaign_groupcampaignadgroup

  1. campaign_group

    Кампания

    То, что в Ads Manager называется кампанией.

  2. campaign

    Группа объявлений

    Не кампания.

  3. adgroup

    Объявление

    Креатив, который видели люди.

Adjust и AppsFlyer сопоставляют поля так же.

Когда ответ пустой

Нет queries в манифесте
Что происходитПустой результат
Что делатьДобавьте три пакета
Не тот App ID
Что происходитПустой результат
Что делатьВозьмите App ID рекламы
В ключе не 64 символа
Что происходитНичего не расшифровывается
Что делатьСкопируйте заново
Старое приложение Meta
Что происходитНет провайдера
Что делатьFacebook 428, Instagram 296+
Только Android. На iOS у Meta нет referrer по каждой установке.

В Appy ключ вставляется один раз

На тарифе Enterprise вы добавляете ключ в дашборд, а App ID в SDK. Расшифровка идёт на серверах Appy.

Первый запуск

Android, SDK Appy

  • Нажал на ссылку AppyЗасчитано ссылке
  • Реклама Meta, клик или показКампания, группа, объявление
  • Клик в Google AdsЗасчитано Google Ads
  • Ничего из этогоОрганика
Ключ хранится в зашифрованном виде и больше нигде не показывается.

Читайте также

Вопросы

Где найти ключ расшифровки?

В Meta for Developers: App settings › Basic, раздел Android.

Какое шифрование использует Meta?

AES-256-GCM с ключом из 64 hex-символов.

Попадают ли сюда view-through установки?

Да. Колонка is_ct равна 0 для показа и 1 для клика.

campaign_name — это кампания?

Нет, это группа объявлений. Кампания лежит в campaign_group_name.

Продолжить изучение

Гайд
14 авг. 2026 г.
11 мин чтения

Deferred deep linking без SDK: как это на самом деле устроено под капотом

Контекст ссылки можно пронести через установку приложения, не встраивая SDK атрибуции. Разбираем, что реально переживает границу стора на Android и iOS, что ломается и во что каждый обходной путь обходится приватности.

deferred deep linking
install referrer
ios
android
Читать статью
Продукт
1 окт. 2026 г.
8 мин чтения

Узнайте, какая ссылка принесла каждую установку: SDK Appy для iOS и Android

Appy теперь видит, что происходит с вашими ссылками после стора. Новый SDK показывает установки, события в приложении и выручку по каждой ссылке, QR-коду и кампании и открывает новым пользователям нужный экран.

install attribution
deferred deep linking
install referrer
mobile attribution
Читать статью
Гайд
1 окт. 2026 г.
7 мин чтения

Chrome сообщает каждому серверу, что ваш телефон работает на Android 10

Chrome на Android выдаёт любой телефон за Android 10, модель K. Что это сломало в сопоставлении отложенных диплинков, почему Critical-CH посчитал бы каждый клик дважды и как Client Hints возвращают настоящие версию и модель.

android
user agent
client hints
deferred deep linking
Читать статью

Ищете другое? Посмотрите все темы в блоге.

Установки из Meta рядом со всеми ссылками и QR-кодами

Вставьте ключ один раз, и Appy засчитает установки из Facebook и Instagram кампании, группе объявлений и объявлению.