onAppOpenAttribution не вызывается для глубоких ссылок с AppsFlyer

Я интегрировал AppsFlyer SDK в свой проект. Мне удалось заставить работать глубокие ссылки. Любые ссылки, которые я делаю в OneLink, открывают приложение по желанию. Однако я не могу получить доступ к параметрам ссылки. Я реализовал все следующие методы делегата следующим образом:

func onAppOpenAttribution(_ attributionData: [AnyHashable : Any]!) {
    print("Test 1")
}

func onAppOpenAttributionFailure(_ error: Error!) {
    print("Test 2")
}

func onConversionDataReceived(_ installData: [AnyHashable : Any]!) {
    print("Test 3")
}

func onConversionDataRequestFailure(_ error: Error!) {
    print("Test 4")
}

Ни один из них не вызывается, когда мое приложение открыто по глубокой ссылке. Что мне здесь не хватает? В моем URL, который настроен в панели управления, у меня есть mycompany:// настроен как Mobile deeplink URL, Любые указатели на это было бы здорово. Спасибо!

2 ответа

Я просто должен был:

  1. Перезапустите мой Xcode

  2. Повторно загрузить профили обеспечения

3) Убедитесь, что вы находитесь на реальном устройстве с фоном проекта Xcode, когда нажимаете на ссылку.

  1. Удостовериться AppsFlyerTracker.shared().delegate = self находится в didFinishLaunchingWithOptions метод в файле AppDelegate.

Если вы еще этого не сделали, добавьте в ваш делегат следующий метод:

// Reports app open from a Universal Link for iOS 9
- (BOOL) application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray *_Nullable))restorationHandler {    
    [[AppsFlyerTracker sharedTracker] continueUserActivity:userActivity restorationHandler:restorationHandler];
    return YES;
}

Это передаст данные ссылки в AppsFlyer Tracker и onAppOpenAttribution должен быть вызван в результате.

Согласно документу AppsFlyer: при инициализации SDK необходимо проверить следующие условия:

  • Вызвать AppsFlyerTracker.shared.trackAppLaunch() когда UIApplication.didBecomeActiveNotification отправлено или в функции applicationDidBecomeActive(_:).
  • Задавать AppsFlyerTracker.shared.isStopTracking = false
  • Проходят userActivity к AppsFlyerManager.shared.continue(_) в application(_:continue:restorationHandler:) для универсальной ссылки (http:// или https://).
  • Передайте URL-адрес и параметры в AppsFlyerManager.shared.handleOpen(_:options:) в application(_:open:options:) для глубокой ссылки (настраиваемая схема).
  • Установить делегата трекера на AppsFlyerTracker.shared.delegate.

После звонка AppsFlyerTracker.shared.trackAppLaunch(), функция обратного вызова onAppOpenAttribution(_ attributionData:) делегата также передаст информацию о ссылке.

Другие вопросы по тегам