環境
・xcode Version 11.3.1 (11C504)
・swift Version 5.1.3
・MarketingCloudSDK iOS (v7.2.1)
・Mac OS 10.14.6(Mojave)
準備
1.MarketingCloudSDK iOSでシンプルなpush通知を送信する
2.[MarketingCloudSDK iOSでリッチPush通知を送信する]
(https://qiita.com/techman/items/06267ff52a2531264cac)
の続きとなります。
Firebaseをアプリに組み込む
-
firebaseのコンソールからプロジェクトを作成する
※googleAnalyticsの設定をONにする -
アプリをFirebaseに登録する
① Apple Developer Programにて登録したアプリのバンドルIDを入力。他は省略可能
② GoogleService-Info.plistをダウンロードし、AppDelegate.swiftなどと同じフォルダに追加する
③ podfileにFirebaseSDKの設定を追加し、pod install
する
※cocoapodsをインストールしていない場合はMarketingCloudSDK iOSでシンプルなpush通知を送信するのSDK追加
を参照してください
④ didFinishLaunchingWithOptionsメソッドに初期化コードを追加する
⑤ アプリを実行してインストールされたかを確認(かなり時間かかります)
カスタムキーの設定をアプリに追加
SMC側からカスタムキーと呼ばれるパラメータをpush通知と一緒に送信することができます。
※mobliePUsh > 管理 > 設定でカスタムキーを有効にする必要があります。
以下実装サンプルとなります
// このメソッドは、ユーザーがアプリケーションを開くか、通知を破棄するか、UNNotificationActionを選択することで通知に応答したときに、デリゲートで呼び出される
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
// tell the MarketingCloudSDK about the notification
MarketingCloudSDK.sharedInstance().sfmc_setNotificationRequest(response.notification.request)
// the dictionary containing custom keys
let userInfo = response.notification.request.content.userInfo
let someValue = userInfo["SMCで設定した任意のキー"] as? String
if someValue != nil {
Analytics.logEvent("イベントの名前を設定", parameters: [
"SMCで設定した任意のキー": someValue!
])
}
// application-specific usage follows
print(someValue ?? "someValue is nil")
completionHandler()
}
Analytics.logEvent("イベントの名前を設定", parameters: [
"SMCで設定した任意のキー": someValue!
])
上記部分でカスタムイベントの名前を設定し、SMC側で設定したキーと値をGAに送信します。
GA側で確認する
- 実機にビルドし、SMC側でカスタムキーとパラメータを送信し、デバイスに来たpush通知をタップする
- firabaseのダッシュボードから
Google アナリティクスでデータを確認する
をクリックする
- ホームのダッシュボードに反映されるまで24時間ほどかかるので、リアルタイムでデータを確認できる
DebugView
で確認する(今はなにも表示されてないですが、正しく送信されていればパラメータを確認できます)
参考リンク(公式)
https://salesforce-marketingcloud.github.io/MarketingCloudSDK-iOS/push-notifications/custom-keys.html
https://firebase.google.com/docs/analytics/android/events?hl=ja