プッシュ通知の計測
概要
このガイドでは、受信プッシュ通知を処理し、抽出されたアトリビューションデータをAppsFlyerに送信するためのiOS SDKの実装内容について説明します。
実装には次の2つの方法があります:
- プッシュペイロードでOneLinkを利用する(推奨方法)
ステップ 3 は、このソリューションを実装する場合にのみ必要です。 - プッシュペイロードでプレーンなJSONを使用する(旧来の方法)
マーケティング担当者がプッシュ通知をどのように設定するかに基づいて、適切な方法を選択してください。
AppsFlyerとiOSプッシュ通知の連携
AppsFlyerとiOSプッシュ通知の連携は、次の要素で構成されます:
- AppsFlyer SDKの設定
- Configuring a
UNUserNotificationCenter
delegate.
Prerequisites
続行する前に、次を確認してください:
- プッシュ通知が有効 なiOSアプリ
- AppsFlyer SDKが実装されていること
- 推奨される OneLink ベースのソリューションを実装する場合は、OneLink (アプリのマーケティング担当者によって提供される) を含むプッシュ通知ペイロード内のキーの名前が必要です。
Steps
-
Configure the app to use the
UNUserNotificationCenter
delegate:if #available(iOS 10.0, *) { // For iOS 10 display notification (sent via APNS) UNUserNotificationCenter.current().delegate = self let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound] UNUserNotificationCenter.current().requestAuthorization( options: authOptions, completionHandler: { _, _ in } ) } else { let settings: UIUserNotificationSettings = UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil) application.registerUserNotificationSettings(settings) } application.registerForRemoteNotifications() }
-
Implement the
UNUserNotificationCenter
delegate. In thedidReceive
method, callhandlePushNotification
:@available(iOS 10, *) extension AppDelegate: UNUserNotificationCenterDelegate { func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) { let userInfo = response.notification.request.content.userInfo print(userInfo) completionHandler() AppsFlyerLib.shared().handlePushNotification(userInfo) } // Receive displayed notifications for iOS 10 devices. func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) { let userInfo = notification.request.content.userInfo print(userInfo) // Change this to your preferred presentation option completionHandler([[.alert, .sound]]) } }
-
This step is required only if you're implementing the recommended OneLink-based solution.
IndidFinishLaunchingWithOptions
, calladdPushNotificationDeepLinkPath
before callingstart
:AppsFlyerLib.shared().addPushNotificationDeepLinkPath(["af_push_link"])
In this example, the SDK is configured to look for the
af_push_link
key in the push notification payload.
When callingaddPushNotificationDeepLinkPath
the SDK verifies that:- 必要なキーがペイロード内に存在しているか
- そのキーに有効なOneLink URLが含まれているか
注意
addPushNotificationDeepLinkPath
accepts an array of strings too, to allow you to extract the relevant key from nested JSON structures. For more information, seeaddPushNotificationDeepLinkPath
.
更新済 11か月前