Атрибуция в AppsFlyer предварительных установок на фабрике с помощью манифеста (Android)

Краткий обзор. Атрибутируйте установки приложений к производителям устройств, если приложения были добавлены на устройства на фабрике. Примечание. Посмотрите все другие методы атрибуции предварительной загрузки.

pre-install-intro-breakdown.png

Введение

Что такое кампания по предустановке?

Кампании предустановки позволяют владельцам приложений охватить огромную аудиторию без проведения онлайн-кампаний.

В ходе кампаний предустановки изготовители устройств по просьбе владельцев приложений устанавливают эти приложения на устройства еще до продажи устройств.

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

 Важно!

AppsFlyer засчитывает установку, когда приложение запускается в первый раз. Таким образом, количество отображаемых предустановок — это количество пользователей, запустивших ваше приложение, а не количество устройств, на которых оно предустановлено.

Преимущества записи установок из кампаний по предустановке

Атрибутируя кампании по предустановке, вы можете измерить:

  • количество пользователей, запустивших ваше предустановленное приложение,
  • количество пользователей приложения, пришедших от каждого производителя,
  • LTV каждого пользователя, чтобы определить, какой производитель привлекает высокодоходных пользователей.

Как измерить кампании по предустановке?

Существует четыре способа измерения кампаний по предустановке. Дополнительные сведения см. в разделе "Настройка" этой статьи.

Просмотр данных по предустановке

Предварительные установки появляются на дэшборде AppsFlyer под атрибутированным медиа-источником, как и любое другое событие установки. Однако название их кампании всегда указано как Pre-install.

 Примечание

Вы можете указать разные имена кампаний для предварительных установок с помощью метода API в SDK.

 Примечание

Начиная с 24 мая 2022 года:

  • Match_type для кампаний по предустановке на заводе отображается как preload_conf в отчетах по сырым данным.
  • AppsFlyer отображает на дэшбордах рекламную сеть, которая обеспечила предварительную загрузку, и рекламные сети, которые способствовали первому запуску приложения. См. подробнее о кампаниях предварительной загрузки.

Настройка

Выберите один из следующих методов измерения кампаний предустановки.

Название метода Требуется несколько APK? Гарантирует атрибуцию предустановки? Требуются действия от медиа-источника или производителя?
Системные свойства Нет Да Да
SDK API Да Нет Нет
Имя в файле манифеста Да Нет Нет
Путь Нет Нет Да

Метод системных свойств (рекомендуется)

Используйте версию SDK V4.0+.

Этот метод рекомендуется, поскольку он является наиболее надежным из всех; однако учтите, что при всех последующих установках приложения всегда будет атрибутирован медиа-источник предустановки. Это не зависит от того, является ли установка новой или повторной.

Метод системных свойств требует действий как со стороны разработчика, так и со стороны производителя.

Разработчик

Вам необходимо предоставить APK производителю или медиа-источнику. Предоставляется APK по умолчанию. Этот метод не требует отдельного APK.

Создайте файл с именем pre_install.appsflyer. В файле добавьте пару ключ-значение:

=

Например:

com.appsflyer.sampleapp=huawei

Чтобы указать дополнительные параметры предустановки:

В файле pre_install.appsflyer передайте дополнительные параметры в формате JSON. Например:

com.appsflyer.sampleapp={"pid":"huawei", "c":"special_campaign","af_adset":"some_adset"}

 Важно!

При использовании этого варианта важно обратить внимание на следующее поведение:

  • В сырых данных он устанавливает значение канала (Channel) на "Pre-install" (Предустановка).
  • Если параметр pid отсутствует в JSON, медиа-источник (Media Source) в сырых данных отображается как "None" (Нет).
  • В конфигурации JSON, если параметр c отсутствует, название кампании устанавливается на "Pre-install" (Предустановка).
  • Если JSON неверно сформирован, переданная строка будет рассматриваться как имя медиа-источника.

Когда у вас будет файл pre_install.appsflyer, передайте его медиа-источнику или производителю вместе с APK.

Производитель

Производитель помещает файл pre_install.appsflyer в выбранный им путь к файлу. Разрешения файла pre_install.appsflyer должны быть установлены на 744.

Затем производитель редактирует файл с системными свойствами, чтобы указать на файл pre_install.appsflyer. Для этого производителю необходимо добавить пару ключ-значение в системные свойства.

 Примечание

Для этого шага необходимы права root. Права root также требуются при тестировании конфигурации предустановки. Более подробную информацию см. в разделе «Тестирование».

Добавление пары ключ-значение в системные свойства Android:

adb shell su
setprop ro.appsflyer.preinstall.path /data/pre_install.appsflyer

Альтернативный способ — получить файл с системными свойствами из файловой системы android, отредактировать его и отправить обратно:

adb root
adb remount
adb pull /system/build.prop
echo ro.appsflyer.preinstall.path=/data/pre_install.appsflyer >> build.prop
adb push build.prop /system/build.prop
adb shell chmod 644 /system/build.prop
adb reboot

Преимущества

Нет необходимости поддерживать различные APK для каждого медиа-источника или производителя. Не нужно вносить изменения и добавлять пути к приложению в Google Play. Производители могут использовать собственные пути, а между несколькими предустановленными приложениями, запущенными на разных устройствах, не существует зависимостей.

Этот метод обеспечивает атрибуцию кампаний и медиа-источников предустановки. Даже если пользователь обновляет приложение перед запуском или устанавливает его после клика по рекламе, предустановка все равно атрибутируется медиа-источнику или производителю предустановки.

Недостатки

Часть ответственности перекладывается на медиа-источник или производителя. Разработчики должны быть уверены в том, что производитель или медиа-источник предпримет необходимые шаги. Кроме того, этот метод может быть немного сложнее для разработчика приложения при тестировании.

Метод API SDK

Метод API SDK предоставляет нативный способ указать производителя или имя медиа-источника, к которому атрибутирована предустановка.

Чтобы использовать этот метод, добавьте следующий вызов метода в класс AFApplication перед инициализацией SDK:

setPreinstallAttribution(String mediaSource, String campaign, String siteId)

При работе с медиа-источником

AppsFlyerLib.getInstance().setPreinstallAttribution("MEDIA_SOURCE_NAME", "CAMPAIGN_NAME", "123");
AppsFlyerLib.getInstance().init(AF_DEV_KEY , conversionListener , getApplicationContext());

При работе с производителем

AppsFlyerLib.getInstance().setPreinstallAttribution(android.os.Build.MANUFACTURER, "CAMPAIGN_NAME", "123");
AppsFlyerLib.getInstance().init(AF_DEV_KEY , conversionListener , getApplicationContext());

 Примечание

  • Параметр медиа-источника является обязательным.
  • Свойство android.os.Build.MANUFACTURER содержит имя производителя, настроенное операционной системой. Использование этого свойства не гарантирует, что вы получите имя производителя в том же формате на всех устройствах этого производителя. Убедитесь, что это свойство содержит имя производителя, как и ожидалось.
  • Параметры campaign и siteId являются необязательными, но требуются для метода setPreinstallAttribution. Если вы не хотите указывать campaign и siteId, передайте null в обоих случаях.

Преимущества

Метод API SDK позволяет получить название производителя программным путем. Независимо от производителя, метод SDK извлекает имя непосредственно из устройства. Это означает, что вы можете поддерживать один APK для всех производителей, с которыми сотрудничаете.

Метод setPreinstallAttribution позволяет указать название кампании. Вы можете разделить каждого производителя или медиа-источник по отдельным кампаниям, а не объединять их все в кампанию "Pre-install".

Недостатки

Если вы работаете напрямую с производителями, вам придется поддерживать две версии APK: одну для производителей, другую для Google Play. В любом случае требуется более одного APK.

Если вы работаете с несколькими медиа-источниками, которые взаимодействуют с производителем от вашего имени, вам нужно поддерживать отдельный APK для каждого медиа-источника.

В некоторых случаях установка может не быть атрибутирована к медиа-источнику предустановки:

  • Если пользователь нового устройства обновляет предустановленное приложение прямо из Google Play без предварительного запуска, такая установка считается органической.
  • Если пользователь нового устройства обновляет приложение из Google Play после нажатия на рекламу, установка атрибутируется к медиа-источнику, который показал рекламу.

 Совет

Вы можете реализовать логику в приложении, чтобы установка считалась предустановкой, даже если имеют место описанные выше сценарии. И APK для Play Store, и APK, предназначенный для предварительной установки, должны содержать эту логику.

Пример:

  • Вы знаете, что приложения предустановлены на устройствах определенного производителя и модели. Эти устройства также работают с определенным оператором связи.
  • При запуске приложения вы можете проверить наличие этих условий. Если эти условия соблюдены, установка атрибутируется как предварительная. Поскольку эта логика также есть в APK Play Store, установка записывается как предустановка, даже если пользователь обновляет приложение перед его запуском.

Метод имени в файле манифеста

Метод имени в манифесте требует добавления тега метаданных в файл manifest приложения. Этот шаг нужно повторить для каждого медиа-источника или производителя, с которым вы сотрудничаете.

Добавьте тег метаданных перед закрывающим тегом приложения:

...
    <meta-data android:name="AF_PRE_INSTALL_NAME" android:value="market_name"/>
  </application>
</manifest>

Когда приложение запускается в первый раз, AppsFlyer SDK обнаруживает этот тег метаданных в файле манифеста и соответствующим образом атрибутирует установку.

Преимущества

Метод имени в манифесте считается простым способом атрибутирования кампаний предустановки. В манифест нужно добавить только один тег. Кроме того, медиа-источнику или производителю не нужно ничего делать для того, чтобы включить измерение кампании.

Недостатки

Поскольку в теге метаданных указывается имя медиа-источника или производителя, вам нужно поддерживать разные наборы APK, по одному для каждого медиа-источника или производителя.

В некоторых случаях установка может не быть атрибутирована к медиа-источнику предустановки:

  • Если пользователь нового устройства обновляет предустановленное приложение прямо из Google Play без предварительного запуска, такая установка считается органической.
  • Если пользователь нового устройства устанавливает приложение из Google Play после нажатия на рекламу, установка атрибутируется к медиа-источнику, который показал рекламу.

Метод пути

 Примечание

Поддерживается в SDK версии 4.5.0 или более поздней.

Этот метод требует от разработчика и производителя выполнения некоторых действий со своей стороны.

Разработчик

Метод пути позволяет указать путь к файлу, содержащему имя медиа-источника или производителя. Вам необходимо выполнить три шага:

  1. Создайте файл, содержащий пару ключ-значение. Файл должен называться pre_install.appsflyer. В файле укажите пару ключ-значение в формате <ИМЯ_ПАКЕТА>=<МЕДИА_ИСТОЧНИК> Например, com.appsflyer.sampleapp=my_media_source.

    Передача дополнительных параметров предустановки

    В файле можно указать дополнительные параметры предустановки, используя JSON. Например, вы можете добавить следующую пару ключ-значение в файл pre_install.appsflyer:

    com.appsflyer.sampleapp={"pid":"huawei", "c":"special_campaign","af_adset":"some_adset"}
    

     Важно!

    При использовании этой опции важно обратить внимание на следующие особенности поведения:

    1. Устанавливается «Pre-install» в качестве af_channel
    2. Если pid не присутствует в JSON, медиа-источник отображается как «None».
    3. В конфигурации JSON, если «c» не присутствует, имя кампании устанавливается на «Pre-install».
    4. Если JSON неверно сформирован, переданная строка будет рассматриваться как имя медиа-источника.

    Когда у вас будет файл pre_install.appsflyer, передайте его медиа-источнику или производителю вместе с APK.

  2. Поговорите с представителем медиа-источника или производителя и согласуйте с ними путь, по которому они будут размещать файл. Рекомендуемый путь: «/data/local/tmp/pre_install.appsflyer».
  3. Как только путь будет согласован, укажите его в файле манифеста. Поместите следующий фрагмент перед закрывающим тегом приложения:
    <meta-data android:name="AF_PRE_INSTALL_PATH" 
          android:value="/data/local/temp/pre_install.appsflyer" />
    

Производитель

Производитель должен поместить файл по согласованному пути. Разрешения файла pre_install.appsflyer должны быть установлены на 744.

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

Преимущества

AppsFlyer ищет файл pre_install.appsflyer по двум путям по умолчанию:

/data/local/tmp/pre_install.appsflyer
OR 
/etc/pre_install.appsflyer

Некоторые производители предпочитают размещать файл не по пути, указанному по умолчанию. В этом случае вы можете указать этот путь не по умолчанию в файле манифеста.

 Важно!

Для пути не по умолчанию требуется SDK версии 4.8 или более поздней.

Хотя пути не по умолчанию допускаются, мы рекомендуем использовать вместо них метод системных свойств.

Недостатки

Вам необходимо поддерживать отдельные файлы pre_install.appsflyer для разных медиа-источников или производителей.

Возможно, производитель захочет поместить файл pre_install.appsflyer не в пути по умолчанию. В этом случае необходимо поддерживать отдельные APK для каждого пути не по умолчанию.

Если используется путь не по умолчанию, установка может быть атрибутирована не к медиа-источнику предустановки:

  • Если пользователь нового устройства обновляет предустановленное приложение прямо из Google Play без предварительного запуска, такая установка считается органической.
  • Если пользователь нового устройства устанавливает приложение из Google Play после нажатия на рекламу, установка атрибутируется к медиа-источнику, который показал рекламу.

Тестирование конфигурации предустановки

В этом разделе показано, как протестировать и проверить конфигурацию предустановки.

 Важно!

Перед началом тестирования обязательно внесите в список разрешенных устройства, которые вы используете для тестирования.
Также не забудьте установить значение true для журнала отладки в классе AFApplication.

AppsFlyerLib.getInstance().setDebugLog(true);

Проверка конфигурации в приложении

 Совет

Чтобы избежать проблем с кэшированием и добиться наилучших результатов, рекомендуется очищать проект перед его сборкой. В Android Studio нажмите на кнопку Сборка в контекстном меню и выберите Очистить проект.

Создайте приложение в Android Studio и установите его на тестовое устройство. Когда приложение запустится, откройте Logcat в Android studio и отфильтруйте его по «AppsFlyer». Вы должны увидеть атрибутированную установку со всеми деталями. Для наглядности смотрите скриншоты ниже:

pre_install_logcat.png

pre_install_logcat_2.png

Проверка конфигурации на дэшборде AppsFlyer

Если настройка прошла успешно, на дэшборде появляется неорганическая установка, атрибутированная к производителю или медиа-источнику. Событие установки также указано в кампании «Предустановка».

Зайдите в свой аккаунт AppsFlyer и откройте дэшборд для приложения, которое вы тестируете. Выполните следующие действия:

  1. На странице обзора отфильтруйте медиа-источники и выберите медиа-источник:

    choose_media_source.png

  2. На диаграмме Разбивка по кампаниям видно, что установка, атрибутированная к «моему медиа-источнику», происходит из кампании предустановки:


    Вы также можете убедиться, что установка атрибутирована правильно, просмотрев Агрегированный отчет об эффективности. В нем вы можете увидеть медиа-источник и кампанию. На скриншоте ниже в строке «My Media Source» указан медиа-источник, а кампания — Pre-install:

  3. Повторите этот процесс для всех производителей или медиа-источников, с которыми вы сотрудничаете в рамках кампаний по предустановке.

Особые случаи

Несколько предустановленных приложений на одном устройстве

Если у вас есть кампании для нескольких приложений, установленных на одном устройстве, вы можете измерить атрибуцию с помощью каждого из четырех методов:

  • Метод имени в манифесте — для каждого приложения укажите медиа-источник или производителя в файле Manifest.xml каждого приложения.
  • Метод SDK API — для каждого приложения укажите медиа-источник или производителя в методе SDK API для предустановки.
  • Для методов системных свойств или пути — можно указать приложения и соответствующий медиа-источник в файле pre_install.appsflyer. Информация о каждом приложении должна быть добавлена в файл в новой строке. Например:
    com.appsflyer.tester=market_name
    com.newapp.newapp=market_name
    com.game.king=market_name

Отправка постбэков об установке

Если медиа-источник или производитель, с которым вы сотрудничаете, является партнером AppsFlyer, вы можете включить постбэки по установкам.

Для этого убедитесь, что имя медиа-источника эквивалентно параметру pid для медиа-источника, как он настроен в AppsFlyer.

Например, если вы сотрудничаете с market_name, его pid будет market_name_int. Вы можете увидеть pid, изучив ссылку атрибуции интегрированного партнера.

Агентства

В настоящее время агентствам нельзя атрибутировать предварительные установки. 

Если af_prt (параметр для названия агентства) является частью данных о предустановке, и пользователь запускает предустановленное приложение:

  • Пользователь атрибутируется к медиа-источнику, используемому агентством (pid=).
  • Клиент может получить доступ к полным данным на уровне пользователя.
  • Пользователь НЕ атрибутируется к агентству.
  • Агентство не может получить доступ к данным на уровне пользователя.