Измерение удалений

Обзор

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

  1. Creating a .p12 certificate and sending it to the marketer.
  2. Настройка SDK для измерения удалений.
  3. Тестирование измерения удалений.

Creating a .p12 certificate

To enable uninstall measurement, a .p12 certificate is required.

📘

Примечание

Currently, .p8 certificates are not supported.

To create a .p12 certificate:
Step 1: Create a Certificate Signing Request (CSR)
1.1. On your Mac, open Keychain Access. Go to Keychain Access > Certificate Assistant > Request a Certificate From a Certificate Authority.

1.2. Заполните форму. Выберите Saved to disk (Сохранено на диске) и нажмите Continue (Продолжить).

Шаг 2. Выберите идентификатор приложения
2.1. If your Apple App ID is already registered, locate it in Apple Developer Members Center and skip to step 2.8.

If you need to create a new Apple App ID, in the Apple Developer Members Center, Go to Identifiers and click +.

878

2.2. Choose App IDs and click continue

2.3. Choose App and click continue

2.4. Under Register an App ID, in the Description field, provide the description for your app.

2.5. In the Bundle ID field, enter the app Bundle ID.

2.6. Click Continue.

2.7. Under Edit your App ID Configuration, select Push Notifications and click Configure to continue with the setting. Once your done skip to Step 3: Upload CSR below.

2.8. In the Register an App ID view, under Capabilities, check Push Notifications and click Configure (Edit if it was previously configured). If the Configure/Edit button is not available, you might not have the required permissions.

Шаг 3: Загрузите CSR
3.1.Выберите, нужно ли создать рабочий сертификат SSL (Production) или для разработки (Development) (см. примечание) и нажмите Create Certificate (Создать сертификат).

📘

Примечание

Используйте Production SSL Certificate (рабочий сертификат SSL) для опубликованных приложений. Если ваше приложение не опубликовано и находится в активной разработке, вы можете использовать Development SSL Certificate (Сертификат SSL для разработки). Например, если ваше приложение еще не готово к публикации, сертификат SSL для разработки позволит протестировать функции, связанные с push-уведомлениями, в TestFlight.

3.2. Загрузите CSR, созданный на шаге 1, и нажмите Continue (Продолжить).

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

1006

Шаг 4: Создайте файл .p12 .
4.1. Open the .cer certificate. Opening the certificate will open Keychain Access.
4.2. In the Keychain Access, your certificate is shown under My Certificates. Select the certificate that was just added to Keychain Access.
4.3. Right-click on your certificate and select Export.

670

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

774

📘

Примечание

Если вы продлеваете срок действия SSL-сертификата службы push-уведомлений (для разработки или рабочем), следуйте шагам, описанным ранее. При этом отзывать предыдущий сертификат не нужно. Можно одновременно иметь два рабочих сертификата, что позволяет использовать старый сертификат, пока загружается новый.

Step 5: Upload .p12 to AppsFlyer
Send the .p12 certificate to the marketer to upload to AppsFlyer.

Настройка SDK

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

    	//add UserNotifications.framework
import UserNotifications
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        // ...
        application.registerForRemoteNotifications()        
        return true
      }
    
     // Called when the application sucessfuly registers for push notifications
      func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
        AppsFlyerLib.shared().registerUninstall(deviceToken)
      }
// AppDelegate.h
#import <AppsFlyerLib/AppsFlyerLib.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate, AppsFlyerLibDelegate>

// AppDelegate.m
- #import <UserNotifications/UserNotifications.h>
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        // The userNotificationTypes below is just an example and may be changed depending on the app
     UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
              center.delegate = self;
              [center requestAuthorizationWithOptions:(UNAuthorizationOptionSound | UNAuthorizationOptionAlert | UNAuthorizationOptionBadge) completionHandler:^(BOOL granted, NSError * _Nullable error) {
              }];
       [[UIApplication sharedApplication] registerForRemoteNotifications];
        // if you do not use push notificaiton in your app, uncomment the following line
        //application.applicationIconBadgeNumber = 0;
      }
      - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
        [[AppsFlyerLib shared] registerUninstall:deviceToken];
      }
}

Включение Push-уведомлений в фоновом режиме

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

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

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

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

  1. Установите приложение.
  2. Удалите приложение. Внимание! Приложение можно удалить сразу после установки. 

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

AppsFlyerLib.shared().useUninstallSandbox = true
[AppsFlyerLib shared].setUseUninstallSandbox = true;

📘

Примечание

setUseUninstallSandbox must be called before calling registerUninstall.

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

Удаления не отображаются на дэшборде AppsFlyer сразу же. Из-за службы Apple Push Notification:

  • В среднем данные об удалениях на iOS появляются в отчетах через 9 дней.
  • Чтобы в отчетах отразились удаления приложения на iOS, выполненные в безопасной среде («Песочнице»), может потребоваться более месяца.
  • Датой удаления считается дата, когда удаление зафиксировано в отчете. Например:
    • День 1. Пользователь устанавливает ваше приложение.
    • День 4. Пользователь удаляет ваше приложение.
    • День 12. Служба push-уведомлений Apple сообщает об удалении приложения через 8 дней с момента удаления.
    • День 13. Данные об удалении появляются на дэшборде AppsFlyer и в сырых данных.