Настройка сбора статистики push-уведомлений

В AppMetrica можно настроить сбор статистики доставок и отклонений push-уведомлений для iOS 10 и выше.

Сбор статистики доставок

Чтобы собирать статистику доставок push-уведомлений, выполните следующее:

Шаг 1. Создайте расширение Notification Service Extension

  1. В Xcode выберите FileNewTarget.
  2. В разделе расширений iOS выберите из списка Notification Service Extension и нажмите Next.
  3. Введите название расширения в поле Product Name и нажмите Finish.

Шаг 2. Cоздайте общую группу App Groups

  1. В настройках проекта Xcode перейдите во вкладку Сapabilities.
  2. Включите App Groups для созданного расширения и для приложения. Чтобы переключиться между расширением и приложением, нажмите на панели настроек проекта кнопку или на выпадающий элемент .
  3. В разделе App Groups создайте группу с помощью кнопки +. Название группы понадобится при дальнейшей настройке.
  4. Выберите созданную группу для приложения и для созданного расширения.

Шаг 3. Внесите изменения в NotificationService

В файле NotificationService.m добавьте следующий код в соответствующий метод:

- (void)didReceiveNotificationRequest:(UNNotificationRequest *)request 
                   withContentHandler:(void (^)(UNNotificationContent * _Nonnull))contentHandler
{
    ...
    [YMPYandexMetricaPush setExtensionAppGroup:appGroup];
    ...
    [YMPYandexMetricaPush handleDidReceiveNotificationRequest:request];
    ...
}

В файле NotificationService.swift добавьте следующий код в соответствующий метод:

func didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) {
    ...
    
    if let bestAttemptContent = bestAttemptContent {
        ...
        YMPYandexMetricaPush.setExtensionAppGroup(appGroup)
        ...
        YMPYandexMetricaPush.handleDidReceive(request)
        ...
    }
}

appGroup — название общей группы App Groups.

Шаг 4. Настройте обработку push-уведомления

Добавьте следующий код в соответствующий метод реализации UIApplicationDelegate:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Activating AppMetrica.
    ...
    [YMPYandexMetricaPush setExtensionAppGroup:appGroup];
    ...
    [YMPYandexMetricaPush handleApplicationDidFinishLaunchingWithOptions:launchOptions];
    ...
}

Добавьте следующий код в соответствующий метод реализации AppDelegate:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey :Any]? = nil) -> Bool
{
    // Activating AppMetrica.
    ...
    YMPYandexMetricaPush.setExtensionAppGroup(appGroup)
    ...
    YMPYandexMetricaPush.handleApplicationDidFinishLaunching(options: launchOptions)
    ...
}

appGroup — название общей группы App Groups.

Cбор статистики отклонений

Чтобы собирать статистику отклонений push-уведомлений, задайте для категории уведомлений UNNotificationCategory следующую опцию:

options:UNNotificationCategoryOptionCustomDismissAction
options: UNNotificationCategory.customDismissAction

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

Написать в службу поддержки