Интеграция функции отслеживания удалений в приложение для iOS

Краткий обзор. Чтобы настроить отслеживание удалений в приложении для iOS, необходимо интегрировать в приложение службу push-уведомлений Apple (APN).

Измерение количества удалений для устройств на платформе iOS

Чтобы отслеживать удаления приложений для iOS, необходимо встроить APN в приложение.

Факторы, которые необходимо учитывать:

  • Служба APN сообщает в режиме реального времени, что пользователь удалил приложение, только если со времени установки прошло минимум восемь дней. Это значит, что сведения об удалении приложений для iOS доступны только через 8 дней.
  • Невозможно измерить количество удалений по тем пользователям, которые не разрешили отправку push-уведомлений.
  • Согласно заявлению Apple, начиная с iOS 15, «фоновые push-уведомления будут доставляться только в том случае, если приложение использовалось за последние несколько недель».

Требования к приложению iOS:

  • iOS 13+
  • AppsFlyer SDK 4.10.4+
  • Сертификат в формате p12. Файлы сертификатов в формате р8 не поддерживаются. 

Процедуры интеграции

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

Получение ID в Apple и настройка измерения удалений в AppsFlyer

  1. Чтобы найти идентификатор приложения:
    1. На портале Apple Developer Members Center в разделе iOS Apps (Приложения для iOS), выберите пункт Identifiers (Идентификаторы) и найдите в списке свое приложение. 

      iOS_Apps_1.png

    2.  Если вы еще не зарегистрировали идентификатор приложения, нажмите знак + и заполните форму.
    3. Установите флажок в пункте Push Notifications (Push-уведомления).

      iOS_U_T_2.png

    4.  При добавлении службы в приложение на экране появятся два параметра push-уведомлений со значками состояния желтого или зеленого цвета:
    5. Нажмите Settings (Настройки).
       Примечание. Если push-уведомления были настроены раньше, кнопка Settings (Настройки) может называться Edit (Изменить). Если кнопка Settings/Edit (Настройки/Изменить) недоступна, возможно, вы не являетесь ничленом группы, ни администратором. Аккаунт разработчика создается членом вашей группы, и именно члены группы выполняют остальные действия, описанные в этом разделе.
  2. Чтобы создать сертификат:

    1. В пункте Production Certificate (Рабочий сертификат) выберите опцию Apple Push Notification service SSL (Sandbox & Production) (SSL-сертификат службы push-уведомлений Apple (для разработки и рабочий)). Если вы используете VoIP для Push-уведомлений, выберите VoIP Services Certificate (Сертификат сервисов VoIP).

    2. Нажмите Create Certificate (Создать сертификат) под параметром Production SSL Certificate (Рабочий SSL-сертификат). 

    3. После нажатия Create Certificate (Создать сертификат) появится окно помощника Add iOS Certificate (Добавление сертификата iOS). Следуйте указаниям в окне помощника и затем нажмите кнопку Continue (Продолжить).

    4. Будет создан запрос на подписание сертификата. Используйте его для создания SSL-сертификата службы push-уведомлений Apple (APN).

    5. Когда в окне появится кнопка Download (Загрузить), сертификат можно загружать. Возможно, для ее отображения придется перезагрузить страницу. Загрузите созданный сертификат.

    6. Откройте сертификат. При открытии сертификата появится окно Keychain Access (Связка ключей). Чтобы найти в этом окне свой сертификат, выберите категорию My Certificates (Мои сертификаты). Если его там нет, попробуйте найти его в категории Certificates (Сертификаты).

      Примечание

      Добавлять на сервер и заменять файлы сертификатов формата р12 могут только администраторы аккаунтов.

      iOS_U_T_6.png

  3. Чтобы продлить срок действия сертификата
    Если речь идет о SSL-сертификате службы push-уведомлений (для разработки или рабочем), следуйте шагам, описанным ранее. При этом отзывать предыдущий сертификат не нужно. Можно одновременно иметь два рабочих сертификата, что позволяет использовать старый сертификат, пока загружается новый. Внимание! Не используйте в рабочей среде сертификаты для разработки. 
  4. Чтобы экспортировать файл P12:
    Последний шаг перед возвращением к дэшборду AppsFlyer — сохранение сертификата в виде файла .p12.
    1. Выберите сертификат, который только что был добавлен в окно Keychain Access (Связка ключей).

    2. Выберите File (Файл) > Export Items (Экспорт элементов).

    3. В меню Category (Категория) слева внизу выберите My Certificates (Мои сертификаты).

      Если пункт My Certificates (Мои сертификаты) не выделен, невозможно экспортировать сертификат в виде файла формата .p12.

      iOS_U_T_7.png

      При сохранении файла используйте формат Personal Information Exchange (.p12).

      Убедитесь, что окно выглядит, как показано ниже, и в нем есть строка Apple Push Services (Служба push-уведомлений Apple):

      Apple_Push_Services__1_.png

  5. Чтобы включить измерение количества удалений в AppsFlyer

    1. В AppsFlyer перейдите в раздел Configuration (Настройки) > App Settings (Настройки приложения).

    2. Прокрутите вниз до раздела Uninstall (Удаление).

    3. Включите измерение количества удалений.

      Uninstall_iOS_p2.png

    4. Щелкните значок загрузки и выберите файл P12 для загрузки.

    5. (необязательно) Если сертификат P12 защищен паролем, введите пароль в поле P12 certificate Password (Пароль сертификата P12). 

    6. Нажмите кнопку Validate (Проверить), чтобы отправить сертификат в AppsFlyer для проверки его действительности.

    7. Нажмите Save Settings (Сохранить настройки).

Интегрируйте с SDK

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

Добавьте в файл AppDelegate такой код:
SwiftObjective-C

	//add UserNotifications.framework
	import UserNotifications
	func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    //...
    // iOS 10 support
    if #available(iOS 10, *) {
      UNUserNotificationCenter.current().requestAuthorization(options:[.badge, .alert, .sound]){ (granted, error) in }
      application.registerForRemoteNotifications()
    }
    // iOS 9 and iOS 8 support
    else if #available(iOS 8, *), #available(iOS 9, *) {
      UIApplication.shared.registerUserNotificationSettings(UIUserNotificationSettings(types: [.badge, .sound, .alert], categories: nil))
      UIApplication.shared.registerForRemoteNotifications()
    }

    // iOS 7 support
    else {
      application.registerForRemoteNotifications(matching: [.badge, .sound, .alert])
    }
    
    return true
  }

 // Called when the application sucessfuly registers for push notifications
  func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
    AppsFlyerLib.shared().registerUninstall(deviceToken)
  }

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

Разрешение от пользователя на отправку Push-уведомлений в фоновом режиме

Если вы используете только бесшумные Push-уведомления, включите функцию Remote Notifications ("Удаленные уведомления") в разделе Background Modes ("Фоновые режимы") на вкладке Capabilities ("Возможности"):

  1. Выберите свой проект в XCode.
  2. Выберите цель.
  3. Перейдите на вкладку Capabilities (Возможности).
  4. Включите Background Modes (Фоновые режимы)
  5. Установите флажок Remote notifications (Удаленные уведомления).

    remote_notifications_xcode.png

Push-уведомления

На вкладке "Capabilities" (Возможности) своего проекта в XCode обязательно добавьте возможность Push-уведомлений. Без этого получить токен устройства будет невозможно.

capabilities_ios_uninstall.png

Тестирование удалений для iOS

Чтобы протестировать измерение количества удалений для устройств на iOS:
  1. Установите приложение.
  2. Удалите приложение. Внимание! Приложение можно удалить сразу после установки.

При тестировании удаления  из Xcode или TestFlight важно, чтобы наш SDK знал, что токен сгенерирован в «песочнице». Используйте следующие API:

SwiftObjective-C
AppsFlyerLib.shared().setUseUninstallSandbox = true

Важно! Удаления не отображаются на дэшборде AppsFlyer сразу же.

  • В среднем данные об удалениях появляются в отчетах через 9 дней
  • Чтобы отчетах отразились удаления приложения, выполненные в безопасной среде («Песочнице»), может потребоваться более месяца

Кроме того, датой удаления считается дата, когда удаление зафиксировано в отчете. Дополнительные сведения см. в следующем разделе.

Просмотр данных об удалениях на дэшборде AppsFlyer

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

В результате последних изменений в службе Push-уведомлений Apple данные об удалениях появляются на панели управления не раньше чем через 9 дней. AppsFlyer обновляет показатели удалений в сводной таблице каждые 24 часа.

 Пример

  • День 1. Пользователь устанавливает ваше приложение.
  • День 4. Пользователь удаляет ваше приложение.
  • День 12. Служба push-уведомлений Apple сообщает об удалении приложения через 8 дней с момента удаления.
  • День 13. Данные об удалении появляются на дэшборде AppsFlyer и в сырых данных.

Uninstall_measurement_a.png

Подробные сведения см. в «Руководстве по интеграции SDK», раздел «Измерение количества удалений для устройств на платформе iOS».

Была ли эта статья полезной?