Этот документ обновлен.
Перевод (Русский) еще не готов.
Последнее обновление (английский): 19 авг

Начало работы с событиями в приложении на платформе iOS

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

В Facebook SDK для iOS внесены изменения. Рекомендуем обновить Facebook SDK для iOS до новой версии. Дополнительные сведения об этом изменении см. в разделе Согласие от устройства.

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

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

Шаг 1. Настройка приложения Facebook

Если у вас ещё нет приложения, перейдите на Панель приложений, нажмите Мои приложения и создайте новое. Откройте Настройки > Основное, чтобы просмотреть панель подробной информации о приложении, в которой можно найти ID приложения, его секрет и другие данные.

Прокрутите до конца страницы и нажмите Добавить платформу. Выберите iOS, добавьте сведения о своем приложении и сохраните изменения.

Чтобы настроить приложение для показа рекламы, укажите следующие данные:

  • Домены приложения — URL приложения в магазине Apple App Store.
  • URL политики конфиденциальности — ссылка на страницу с политикой конфиденциальности. Это обязательно для перевода приложения в рабочий режим.
  • URL пользовательского соглашения — ссылка на пользовательское соглашение.
  • Платформа — прокрутите страницу с настройками вниз и добавьте платформу iOS.

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

Шаг 2. Связывание рекламного и бизнес-портфолио

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

  1. На панели приложений нажмите Настройки > Дополнительно.
  2. В поле Идентификаторы авторизованных рекламных аккаунтов добавьте ID рекламных аккаунтов. Их можно получить в Ads Manager.
  3. На панели Рекламные аккаунты нажмите Начать и подключите приложение к компании, следуя инструкциям.

Шаг 3. Настройка среды разработки

В описанной ниже процедуре используется Swift Package Manager для настройки среды разработки в Xcode.

  1. Откройте Xcode и нажмите File > Add Packages... (Файл > Добавить пакеты...).
  2. В открывшемся поле поиска введите URL репозитория: https://github.com/facebook/facebook-ios-sdk.
  3. В разделе Dependency Rule (Правило зависимости) выберите Up to Next Major Version (До следующей главной версии) и введите последнюю версию. Самая актуальная версия указана на сайте https://github.com/facebook/facebook-ios-sdk/releases/
  4. Выберите библиотеки, которые планируете использовать, и целевые объекты, к которым хотите добавить эти библиотеки.
  5. Нажмите Add Package (Добавить пакет) для завершения настройки.

Шаг 4. Регистрация и настройка приложения для работы с Facebook

Добавьте идентификатор пакета и включите для приложения единый вход.

Идентификатор пакета (ID пакета) должен отображаться в поле ниже. Если идентификатор не отображается, найдите его в цели приложения для iOS проекта Xcode и вставьте в поле ниже.
ID пакета
В будущем вы можете изменить ID пакета в разделе iOS на странице настроек.
Включение единого входа
Чтобы включить единый вход для своего приложения, установите для параметра "Единый вход" ниже значение "Да".
Единый вход Запуск будет выполняться из уведомлений на iOS

Шаг 5. Настройка проекта

Настройте файл (Info.plist) с помощью сниппета XML, содержащего информацию о вашем приложении.

After you integrate Facebook Login, certain App Events are automatically logged and collected for Events Manager, unless you disable Automatic App Event Logging. In particular, when launching an app in Korea, please note that Automatic App Event Logging can be disabled. For details about what information is collected and how to disable automatic app event logging, see Automatic App Event Logging.

  1. Нажмите правой кнопкой мыши Info.plist и выберите Open As ▸ Source Code (Открыть как исходный код).
  2. Скопируйте и вставьте приведенный ниже фрагмент XML-кода в тело файла (<dict>...</dict>).
    <key>CFBundleURLTypes</key>
    <array>
      <dict>
      <key>CFBundleURLSchemes</key>
      <array>
        <string>fbAPP-ID</string>
      </array>
      </dict>
    </array>
    <key>FacebookAppID</key>
    <string>APP-ID</string>
    <key>FacebookClientToken</key>
    <string>CLIENT-TOKEN</string>
    <key>FacebookDisplayName</key>
    <string>APP-NAME</string>
  3. В <array><string>, содержащемся в ключе [CFBundleURLSchemes], замените APP-ID на ID своего приложения.
  4. В <string>, содержащемся в ключе FacebookAppID, замените APP-ID на ID своего приложения.
  5. В <string>, содержащемся в ключе FacebookClientToken, замените CLIENT-TOKEN на значение из раздела Настройки > Расширенные > Маркер клиента на Панели приложений.
  6. В <string>, содержащемся в ключе FacebookDisplayName, замените APP-NAME на название своего приложения.
  7. Чтобы использовать диалоги Facebook (например "Вход", "Поделиться", "Приглашения в приложения" и т. д.), которые могут переключать пользователя на приложения Facebook, файл Info.plist вашего приложения также должен содержать следующий код:
    <key>LSApplicationQueriesSchemes</key>
    <array>
      <string>fbapi</string>
      <string>fb-messenger-share-api</string>
    </array>

Вы можете напрямую установить для автоматической регистрации событий в приложении значения "true" или "false", если добавите FacebookAutoLogAppEventsEnabled в качестве ключа в Info.plist.

Чтобы вход правильно работал в приложениях Mac Catalyst, в проект необходимо добавить функцию Keychain Sharing.
  1. При настройке цели приложения нажмите кнопку + Capability (Добавить функцию) на вкладке Signing & Capabilities (Подписи и функции).
  2. Найдите и выберите функцию Keychain Sharing.
  3. Убедитесь, что Keychain Sharing для цели задана.

Шаг 6. Подключение делегата приложения и делегата сцены

Замените код в AppDelegate.swift методе следующим кодом. Он инициализирует SDK при запуске приложения и позволяет SDK обрабатывать данные, полученные из нативного приложения Facebook при входе или публикации. В противном случае пользователю нужно быть авторизованным в Facebook, чтобы войти с помощью браузера в приложении.
    
// AppDelegate.swift
import UIKit
import FacebookCore

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {    
    func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
    ) -> Bool {          
        ApplicationDelegate.shared.application(
            application,
            didFinishLaunchingWithOptions: launchOptions
        )

        return true
    }
          
    func application(
        _ app: UIApplication,
        open url: URL,
        options: [UIApplication.OpenURLOptionsKey : Any] = [:]
    ) -> Bool {
        ApplicationDelegate.shared.application(
            app,
            open: url,
            sourceApplication: options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String,
            annotation: options[UIApplication.OpenURLOptionsKey.annotation]
        )
    }  
}

В iOS 13 функция открытия URL перенесена в SceneDelegate. Если вы используете iOS 13, добавьте следующий метод в SceneDelegate для правильной работы таких функций, как вход и публикация:
// SceneDelegate.swift
import FacebookCore
  ...
func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) {
    guard let url = URLContexts.first?.url else {
        return
    }

    ApplicationDelegate.shared.application(
        UIApplication.shared,
        open: url,
        sourceApplication: nil,
        annotation: [UIApplication.OpenURLOptionsKey.annotation]
    )
}

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

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

App Store Connect для iOS 14

Возможно, в опроснике App Store Connect потребуется раскрыть типы данных событий, которые ваше приложение собирает и отправляет в Facebook. Убедитесь, что это отражено в политике конфиденциальности вашего приложения. Больше информации о типах данных, которые необходимо раскрыть, см. в стать с подробностями е о конфиденциальности Apple App Store.

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

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

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

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

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

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

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

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

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

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

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

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

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

Получение согласия от устройства

Начиная с iOS 14.5 необходимо устанавливать флажок isAdvertiserTrackingEnabled и регистрировать каждый раз, когда вы предоставляете устройству разрешение отправлять данные на Facebook.

Если устройство предоставит согласие, установите Settings.shared.isAdvertiserTrackingEnabled = true.

Если устройство не позволяет вам отслеживать события, установите Settings.shared.isAdvertiserTrackingEnabled = false.

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

Чтобы отключить автоматическую регистрацию событий, откройте файл Info.plist приложения как код в Xcode и добавьте в словарь свойств следующий код XML:

<key>FacebookAutoLogAppEventsEnabled</key>
<false/>

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

Чтобы по той или иной причине вновь приостановить сбор, установите Settings.shared.isAutoLogAppEventsEnabled = false.

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

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

Чтобы отключить сбор advertiser-id, откройте файл .plist приложения как код в Xcode и добавьте в словарь свойств следующий код XML:

<key>FacebookAdvertiserIDCollectionEnabled</key>
<false/>

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

Чтобы по той или иной причине приостановить сбор, установите Settings.shared.isAdvertiserIDCollectionEnabled = false.

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

Чтобы регистрировать специально настроенное событие, просто передайте его название как AppEvents.Name:

AppEvents.shared.logEvent(AppEvents.Name("battledAnOrc"))

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

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

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

Параметры передаются через словарь, в котором содержится имя параметра в виде AppEvents.ParameterName, а значение должно представлять собой String или номер (Int, Double и т. д.).

Шаг 8. Тестирование событий

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

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

Если вы планируете оптимизировать или отслеживать свои события в кампаниях SKAdNetwork, вам также необходимо правильно настроить приоритетность событий (это также называется ценностью конверсии), чтобы Facebook правильно принимал конверсии. Подробная информация доступна здесь.

Статьи по теме

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

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