Начало работы с событиями в приложении (Android)

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

Прежде чем начать

Вам понадобятся:

Добавление событий в приложении

После интеграции Facebook SDK определенные события в приложении будут автоматически регистрироваться и собираться для Events Manager, если только вы не отключите эту функцию. Это можно изменить в коде вашего приложения или с помощью переключателя в разделе "События в приложении" на панели приложений или в Events Manager. Обратите внимание: при конфликте значений флага AutoLogAppEventsEnabled и переключателя будет учитываться значение в переключателе "Автоматическая регистрация событий для Facebook SDK". Подробнее о том, какая информация собирается и как отключить автоматическую регистрацию событий в приложении, см. в разделе Автоматическая регистрация событий в приложении.

Отслеживать события в приложении можно тремя способами:

Автоматическая регистрация событий

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

СобытиеСведения

Установка приложения

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

Запуск приложения

Когда пользователь запускает приложение, выполняются инициализация Facebook SDK и регистрация этого события. Однако если второй запуск приложения происходит в течение 60 секунд после первого, второй запуск не регистрируется.

В Facebook SDK для Android 4.18 и более ранних версиях инициализация SDK выполняется вручную. Этот процесс отличается от процесса регистрации событий вручную, который описан в этом документе. Чтобы добавить события вручную, установите последнюю версию SDK или прокрутите до раздела Инициализация в устаревших версиях SDK.

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

Завершение покупки через Google Play. При использовании других платежных платформ код события покупки необходимо добавить вручную.

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

SDK для Android в настоящее время поддерживает библиотеку Google Play Billing версий 2 и 3. Для библиотеки Google Play Billing версии 4 необходимо вводить события покупки в приложении вручную.

Отчет о сбоях Facebook SDK

(только для использования Facebook)

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

Отчет об ошибках ANR Facebook SDK

(только для использования на Facebook)

Если из-за Facebook SDK у вашего приложения возникает ошибка ANR (Приложение не отвечает), создается отчет, который затем отправляется в Facebook. Этот отчет не содержит пользовательских данных и помогает специалистам Facebook обеспечить качество и стабильность работы SDK. Чтобы не регистрировать это событие, отключите автоматическую регистрацию событий.

Отключение автоматической регистрации событий

Чтобы отключить автоматическую регистрацию событий, в файл AndroidManifest.xml добавьте следующее:

<application>
  ...
  <meta-data android:name="com.facebook.sdk.AutoLogAppEventsEnabled"
           android:value="false"/>
  ...
</application>

Иногда (например, чтобы получить согласие пользователя или обеспечить соблюдение требований законодательства) лучше просто отложить сбор данных об автоматически регистрируемых событиях, но не отключать его. В таком случае вызовите метод setAutoLogAppEventsEnabled() класса FacebookSDK и укажите значение true, чтобы вновь включить регистрацию событий после того, как пользователь предоставит согласие.

setAutoLogAppEventsEnabled(true);

Чтобы по той или иной причине вновь приостановить регистрацию событий, задайте для метода setAutoLogAppEventsEnabled() значение false.

setAutoLogAppEventsEnabled(false);

Автоматическую регистрацию событий покупок в приложении также можно отключить через панель приложений. Перейдите к карточке Android в разделе Основное > Настройки и установите переключатель в положение Нет.

Отключение автоматической инициализации SDK

Чтобы отключить автоматическую регистрацию SDK, в файл AndroidManifest.xml добавьте следующее:

<application>
  ...
  <meta-data android:name="com.facebook.sdk.AutoInitEnabled"
           android:value="false"/>
  ...
</application>

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

FacebookSdk.setAutoInitEnabled(true)
FacebookSdk.fullyInitialize()

Отключение сбора ID рекламодателей

Чтобы отключить сбор advertiser-id, в файл AndroidManifest.xml добавьте следующее:

<application>
  ...
  <meta-data android:name="com.facebook.sdk.AdvertiserIDCollectionEnabled"
           android:value="false"/>
  ...
</application>

Иногда (например, чтобы получить согласие пользователя или обеспечить соблюдение требований законодательства) лучше просто отложить сбор advertiser_id, но не отключать его. В этом случае вызовите метод setAdvertiserIDCollectionEnabled() класса FacebookSDK и задайте для него значение true, чтобы повторно включить сбор advertiser_id после того, как пользователь предоставит согласие.

setAdvertiserIDCollectionEnabled(true);

Чтобы по той или иной причине приостановить сбор, задайте для метода setAdvertiserIDCollectionEnabled() значение false.

setAdvertiserIDCollectionEnabled(false);

Регистрация событий вручную

Создайте объект AppEventsLogger с использованием методов помощника, чтобы зарегистрировать свои события, где this — это Activity, в котором используется ваш метод.

AppEventsLogger logger = AppEventsLogger.newLogger(this);

Затем вы можете зарегистрировать свое событие в объекте logger, где AppEventConstants.EVENT_NAME_X — это одна из констант, представленных в таблице стандартных событий, или из кода генератора кодов.

logger.logEvent(AppEventsConstants.EVENT_NAME_X);

Вы также можете задать набор параметров в объекте Bundle и свойство valueToSum, которое представляет собой произвольное значение (например, цену или количество). В отчете все значения свойств valueToSum суммируются. Например, если 10 человек купили один товар и каждый товар стоит 10 долларов (и эти данные были переданы свойству valueToSum), то в отчете будет показана общая сумма этих значений: 100 долларов.

Помните, что как valueToSum, так и parameters не являются обязательными.

Bundle params = new Bundle();
params.putString(AppEventsConstants.EVENT_PARAM_CURRENCY, "USD");
params.putString(AppEventsConstants.EVENT_PARAM_CONTENT_TYPE, "product");
params.putString(AppEventsConstants.EVENT_PARAM_CONTENT, "[{\"id\": \"1234\", \"quantity\": 2}, {\"id\": \"5678\", \"quantity\": 1}]");

logger.logEvent(AppEventsConstants.EVENT_NAME_PURCHASE,
                54.23,
                params);
Bundle params = new Bundle();
params.putString(AppEventsConstants.EVENT_PARAM_CURRENCY, "USD");
params.putString(AppEventsConstants.EVENT_PARAM_CONTENT_TYPE, "product");
params.putString(AppEventsConstants.EVENT_PARAM_CONTENT_ID, "HDFU-8452");

logger.logEvent(AppEventsConstants.EVENT_NAME_ADDED_TO_CART,
                54.23,
                params);

Чтобы зарегистрировать отдельное событие, просто укажите его имя в виде строки. Эта функция подразумевает, что регистратором является экземпляр AppEventsLogger, который был создан с использованием вызова AppEventsLogger.newLogger().

public void logBattleTheMonsterEvent () {
    logger.logEvent("BattleTheMonster");
}

Параметры событий

Каждое из этих событий можно зарегистрировать с использованием свойства valueToSum и набора из 25 параметров. Они передаются через объект Bundle, ключ которого содержит имя и значение параметра в виде либо String, либо int. Если вы предоставляете другой, несовместимый тип значения, например boolean, SDK регистрирует предупреждение в LogginBehavior.APP_EVENT.

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

Не используйте слово "событие" в качестве имени параметра. Собственные параметры с именем "событие" зарегистрированы не будут. Используйте другое имя или добавьте префикс или суффикс, например my_custom_event.

Тестирование регистрации событий

Помощник по рекламе приложений поможет убедиться, что приложение отправляет события на Facebook.

  1. Откройте Помощник по рекламе приложений.
  2. Выберите приложение в меню Выберите приложение и нажмите Отправить.
  3. Прокрутите страницу вниз и выберите Тестирование событий в приложении.
  4. Запустите приложение и отправьте событие. Оно появится на веб-странице.

Активация журналов отладки

Активируйте журналы отладки, чтобы проверить использование событий приложения на стороне клиента. Журналы отладки содержат подробные запросы и отклики в JSON. Чтобы активировать журналы отладки, добавьте следующий код после инициализации Facebook SDK для Android:

FacebookSdk.setIsDebugEnabled(true);
FacebookSdk.addLoggingBehavior(LoggingBehavior.APP_EVENTS);

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

Дополнительная информация

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

Примеры приложений

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