プッシュ通知の作成と送信
Experience Platform Mobile SDKとJourney Optimizerを使用して、モバイルアプリ向けのプッシュ通知を作成する方法について説明します。
Journey Optimizerを活用すると、ジャーニーを作成し、ターゲットオーディエンスにメッセージを送信できます。 Journey Optimizerでプッシュ通知を送信する前に、適切な設定と統合が整っていることを確認する必要があります。 Journey Optimizerのプッシュ通知データフローについて詳しくは、 ドキュメント を参照してください。
前提条件
-
SDKがインストールされ、設定されたアプリが正常に構築され、実行されました。
-
Adobe Experience Platform用アプリを設定します。
-
Journey Optimizerおよび十分な権限へのアクセス権があります。 また、次のJourney Optimizer機能に対する十分な権限が必要です。
- プッシュ資格情報の作成。
- プッシュチャネル設定の作成。
- ジャーニーを作成します。
- メッセージの作成:
- メッセージプリセットの作成。
-
IOSの場合、証明書、ID、およびキーを作成するのに十分なアクセス権を持つ 有料Apple開発者アカウント です。
-
Androidの場合、証明書とキーを作成するための十分なアクセス権を持つGoogle開発者アカウント。
-
テスト用の物理的なiOSまたはAndroidデバイスまたはシミュレータ。
学習目標
このレッスンでは、次のことをおこないます
- Apple プッシュ通知サービス(APN)にアプリ IDを登録します。
- Journey Optimizerでチャネル設定を作成します。
- プッシュメッセージフィールドを含めるようにスキーマを更新します。
- Journey Optimizer タグ拡張機能をインストールして設定します。
- アプリを更新して、Journey Optimizer タグ拡張機能を登録します。
- Assuranceで設定を検証します。
- Assuranceからテストメッセージを送信する
- Journey Optimizerを使用して、独自のプッシュ通知イベント、ジャーニー、エクスペリエンスを定義できます。
- アプリ内から独自のプッシュ通知を送信できます。
セットアップ
プッシュ資格情報の作成
プッシュ通知の場合は、まずアプリをプッシュ通知用に登録する必要があります。
次の手順は、Adobe Experience Cloud固有のものではなく、APNの設定をガイドするように設計されています。
-
Apple デベロッパーポータルで、Keysに移動します。
-
キーを作成するには、+を選択します。
{modal="regular"}
-
キー名を入力してください。
-
Apple プッシュ通知サービス (APN)を選択し、Configureを選択します。
- キーの設定画面で、環境 ドロップダウンメニューから サンドボックスと実稼動 を選択します。
- 「保存」を選択します。
-
続行を選択します。
{modal="regular"}
-
設定を確認し、登録を選択します。
-
.p8秘密鍵をダウンロードします。 これは、Journey Optimizer プッシュ資格情報を設定する際の次の演習で使用されます。 -
キーIDをメモします。 これは、Journey Optimizer プッシュ資格情報を設定する際の次の演習で使用されます。
-
チーム IDをメモします。 これは、Journey Optimizer プッシュ資格情報を設定する際の次の演習で使用されます。 チーム IDは、画面の右上、ログイン名の横にあります。
{modal="regular"}
追加のドキュメントはこちらにあります。
次の手順は、Adobe Experience Cloud固有のものではなく、Firebaseの設定をガイドするように設計されています。
-
Firebase コンソールにアクセスします。
-
Firebase プロジェクトを作成を選択します。
- プロジェクト名を入力します。
- 「プロジェクトを作成 - で続行を選択します。プロジェクトの名前から始めましょう。 例:
Luma Android App. - Firebase で Geminiを無効にし、で続行を選択してプロジェクトを作成 - Firebase プロジェクトのAI支援を行います。
- このプロジェクト の Google Analyticsを無効にし、プロジェクトの作成 - Firebase プロジェクトのGoogle Analyticsで 続行 を選択します。
- 「プロジェクトを作成」を選択します。
- プロジェクトの準備が整ったら、続行を選択します。
-
Firebase コンソールに戻り、上部でプロジェクトが選択されていることを確認します。 例えば、Luma Android アプリとします。
{modal="regular"}
-
> Project Settingsを選択します。 -
プロジェクト設定で、アプリを追加を選択します。
-
アプリにFirebaseを追加するで、Androidをプラットフォームとして選択します。
-
Android アプリにFirebaseを追加:
-
手順1では、アプリを登録します。
- アプリのIDと同様に、Android パッケージ名を入力します。 例:
com.adobe.luma.tutorial.android。 - オプションの アプリのニックネーム を入力します。
- 「アプリを登録」を選択します。
- アプリのIDと同様に、Android パッケージ名を入力します。 例:
-
手順2では、設定ファイルをダウンロードして追加します。
- 「
google-services.jsonをダウンロード」を選択します。 独自のバージョンのAndroid アプリを構築する場合は、サンプルのAndroid Studio プロジェクトの現在のgoogle-services.jsonファイルを、この新しいアプリ設定によって生成されたファイルのバージョンに置き換える必要があります。
他の手順は、サンプルアプリ内ですでに処理されます。
- 「
-
画面は次のようになります。
{modal="regular"}
-
-
プロジェクト設定で、サービスアカウントを選択します。
-
新しい秘密鍵を生成を選択します。
luma-android-app-firebase-adminsdk-xxxx-xxxxxxxx.jsonファイルが生成されます。 後の段階でファイルが必要になるので、このファイルを安全な場所に保存します。
詳しくは、Firebase開発者ドキュメント を参照してください。
データ収集にアプリのプッシュ資格情報を追加する
次に、モバイルアプリケーションのプッシュ資格情報を追加して、Adobeがプッシュ通知を送信することを承認する必要があります。 プッシュ資格情報は、Data CollectionまたはJourney Optimizerで追加できます。 このチュートリアルでは、データ収集インターフェイスを使用します。 プッシュ資格情報は、Journey Optimizerのチャネル設定にリンクされます。
-
データ収集で、アプリサーフェスを選択します。
-
「アプリサーフェスを作成」を選択します。
-
アプリサーフェスを作成 インターフェイスで:
-
名前を入力します。
-
IOSにプッシュ通知を送信する場合は、Apple iOSを選択します。
- アプリ IDを入力します(例:
com.adobe.luma.tutorial.swiftui)。 - サンドボックスを選択します(オプション)。
- プッシュ資格情報を有効にします。
- 保存した
.p8個の秘密鍵ファイルを ファイルをドラッグ&ドロップ します。 - キーIDを入力します。
- チーム IDを入力します。
- アプリ IDを入力します(例:
-
Androidにプッシュ通知を送信する場合は、Androidを選択します。
- アプリ IDを入力します(例:
com.adobe.luma.tutorial.android)。 - サンドボックスを選択します(オプション)。
- プッシュ資格情報を有効にします。
- 保存した
luma-android-app-firebase-adminsdk-xxxx-xxxxxxxx.jsonファイルをファイルにドロップし、ファイルをドラッグ&ドロップします。
- アプリ IDを入力します(例:
{modal="regular"}
-
-
「保存」を選択します。 すべての情報が正しい場合は、チャネル設定に関連付けるプッシュ資格情報を作成しています。
Journey Optimizerでのプッシュのチャネル設定の作成
プッシュ資格情報設定を作成したら、Journey Optimizerからプッシュ通知を送信できるようにするための設定を作成する必要があります。
-
Journey Optimizer インターフェイスで、チャネル > 一般設定 > チャネル設定 メニューを開き、チャネル設定の作成を選択します。
{modal="regular"}
-
設定の名前と説明(オプション)を入力します。
note NOTE 名前は、文字(A ~ Z)で始める必要があります。 使用できるのは英数字のみです。 アンダースコア( _)、ドット(.)、ハイフン(-)も使用できます。 -
設定にカスタムまたはコアのデータ使用ラベルを割り当てるには、「アクセスを管理」を選択します。 詳しくは、オブジェクトレベルのアクセス制御(OLAC)を参照してください。
-
「プッシュ」チャネルを選択します。
-
マーケティングアクションを選択して、この設定を使用するメッセージに同意ポリシーを関連付けます。 マーケティング活動に関連するあらゆる同意ポリシーを活用して、顧客の嗜好を尊重します。 マーケティングアクションの詳細。
-
Platformを選択します。 チャネル設定に iOS と Android の両方を設定できます。
-
プッシュ資格情報の定義に先ほど使用した適切な アプリ ID を選択します。 例えば、com.adobe.luma.tutorial.swiftuiはiOS用、com.adobe.luma.tutorial.androidはAndroid用です。 緑の
は、有効なプッシュ資格情報がチャネル設定に関連付けられていることを示します。 {modal="regular"}
-
送信を選択して変更を保存します。
データストリーム設定の更新
モバイルアプリからEdge Networkへのデータ送信がJourney Optimizerに確実に転送されるようにするには、Experience Edge設定を更新します。
-
データ収集UIで、データストリームを選択し、データストリーム(例:Luma Mobile App)を選択します。
-
Experience Platformの
を選択し、コンテキストメニューから
編集を選択します。
-
データストリーム >
> Adobe Experience Platform画面で、次の操作を行います。
-
まだ選択していない場合は、プロファイルデータセットから AJO プッシュプロファイルデータセット を選択します。 このプロファイルデータセットは、
MobileCore.setPushIdentifierAPI呼び出しを使用する場合に必要です( プッシュ通知にデバイストークンを登録を参照)。 この選択により、プッシュ通知の一意の識別子(別名プッシュ識別子)が、ユーザーのプロファイルの一部として保存されます。 -
Adobe Journey Optimizerが選択されています。 詳しくは、Adobe Experience Platform settingsを参照してください。
-
データストリーム設定を保存するには、保存を選択します。
{modal="regular"}
-
Journey Optimizer tags拡張機能のインストール
アプリがJourney Optimizerで動作するには、タグプロパティを更新する必要があります。
-
タグ > 拡張機能 > カタログに移動します。
-
プロパティ (例:Luma Mobile App Tutorial)を開きます。
-
カタログを選択します。
-
Adobe Journey Optimizer拡張機能を検索します。
-
拡張機能をインストールします。
-
拡張機能のインストール ダイアログで
- 環境(例:開発)を選択します。
- 「イベントデータセット」リストから「AJO プッシュトラッキングエクスペリエンスイベントデータセット」データセットを選択します。
- 「ライブラリに保存してビルド」を選択します。
{modal="regular"}
Assuranceでの設定の検証
-
シミュレーターまたはデバイスをAssuranceに接続するには、設定の手順 セクションを確認してください。
-
Assurance UIで、Configureを選択します。
{modal="regular"}
-
「プッシュデバッグ」の横にある「
」を選択します。
-
「保存」を選択します。
{modal="regular"}
-
左側のナビゲーションから「プッシュデバッグ」を選択します。
-
「設定を検証」タブを選択します。
-
「クライアント」リストからデバイスを選択します。
-
エラーが発生していないことを確認します。
{modal="regular"}
-
「テストプッシュを送信」タブを選択します。
-
(オプション) タイトルと 本文 のデフォルトの詳細を変更し、詳細 > 通知チャネルなど、アプリが期待するすべてのパラメーターを指定するようにします(例:
LUMA_CHANNEL_ID、Androidに必要)。 -
テストプッシュ通知を送信を選択します。
-
テスト結果を確認してください。
{modal="regular"}
-
アプリにテストプッシュ通知が表示されます。
署名
アプリの署名を更新するには:
-
Xcodeでアプリにアクセスします。
-
プロジェクトナビゲーターで「Luma」を選択します。
-
Luma ターゲットを選択します。
-
「署名と機能」タブを選択します。
-
自動管理の署名、Teamおよび バンドル識別子 を設定するか、特定のApple開発プロビジョニングの詳細を使用します。
note important IMPORTANT 各バンドル識別子は一意である必要があるため、一意の バンドル識別子を使用し、 com.adobe.luma.tutorial.swiftuiバンドル識別子を置き換えることを確認してください。 通常、com.organization.brand.uniqueidentifierのようなバンドル ID文字列には逆引きDNS形式を使用します。 このチュートリアルの「完了」バージョンでは、例えばcom.adobe.luma.tutorial.swiftuiが使用されます。 {modal="regular"}
アプリへのプッシュ通知機能の追加
-
Xcodeで、ターゲット リストから Luma を選択し、署名と機能 タブを選択し、+機能 ボタンを選択してから、プッシュ通知を選択します。 この選択により、アプリはプッシュ通知を受信できるようになります。
-
次に、アプリに通知拡張機能を追加する必要があります。 General タブに戻り、ターゲット セクションの下部にある+ アイコンを選択します。
-
新しいターゲットのテンプレートを選択するよう求められます。 通知サービス拡張機能を選択し、次へを選択します。
-
次のウィンドウで、拡張機能の名前として
NotificationExtensionを使用し、「終了」ボタンをクリックします。
次の画面のように、プッシュ通知の拡張機能がアプリに追加されます。
Android Studio プロジェクトは、すでにプッシュ通知用に設定されています。 プッシュ通知用のLuma アプリのAndroid バージョンを有効にするために、追加の手順を実行する必要はありません。 詳しくは、通知についてを参照してください。
Android プッシュ通知では、アプリ内およびプッシュ通知の送信時に、通知チャネル idを定義する必要があります。 Android Luma アプリで使用されるチャネル通知IDはLUMA_CHANNEL IDです。
アプリでのJourney Optimizerの実装
前のレッスンで説明したように、モバイルタグ拡張機能をインストールすると、設定のみが提供されます。 次に、Messaging SDKをインストールして登録する必要があります。 これらの手順が明確でない場合は、SDKのインストール セクションを確認してください。
-
Xcodeで、AEP Messagingがパッケージ依存関係のパッケージのリストに追加されていることを確認します。 Swift パッケージマネージャーを参照してください。
-
Xcode プロジェクトナビゲーターでLuma > Luma > AppDelegateに移動します。
-
AEPMessagingがインポートのリストに含まれていることを確認してください。import AEPMessaging -
Messaging.selfが登録中の拡張機能の配列の一部であることを確認してください。code language-swift let extensions = [ AEPIdentity.Identity.self, Lifecycle.self, Signal.self, Edge.self, AEPEdgeIdentity.Identity.self, Consent.self, UserProfile.self, Places.self, Messaging.self, Optimize.self, Assurance.self ]
-
Android Studioで、aepsdk-messaing-androidがAndroid
Gradle Scriptsの build.gradle.kts (モジュール :app) の依存関係の一部であることを確認します。 Gradleを参照してください。 -
Android Studio プロジェクトナビゲーターで、Android
> app > kotlin+java > com.adobe.luma.tutorial.android > LumaApplicationに移動します。 -
com.adobe.marketing.mobile.Messagingがインポートのリストに含まれていることを確認してください。import import com.adobe.marketing.mobile.Messaging -
Messaging.EXTENSIONが登録中の拡張機能の配列の一部であることを確認してください。code language-kotlin val extensions = listOf( Identity.EXTENSION, Lifecycle.EXTENSION, Signal.EXTENSION, Edge.EXTENSION, Consent.EXTENSION, UserProfile.EXTENSION, Places.EXTENSION, Messaging.EXTENSION, Optimize.EXTENSION, Assurance.EXTENSION )
プッシュ通知用デバイストークンを登録する
プッシュ通知にデバイストークンを登録する必要があります。
-
Xcode プロジェクトナビゲーターでLuma > Luma > AppDelegateに移動します。
-
MobileCore.setPushIdentifierAPIをfunc application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data)関数に追加します。code language-swift // Send push token to Mobile SDK MobileCore.setPushIdentifier(deviceToken)この関数は、アプリがインストールされているデバイスに固有のデバイストークンを取得します。 次に、Appleのプッシュ通知サービス(APN)に依存して設定した設定を使用して、プッシュ通知配信のトークンを設定します。
-
Android Studio プロジェクトナビゲーターで、Android
> app > kotlin+java > com.adobe.luma.tutorial.android > LumaApplicationに移動します。 -
MobileCore.setPushIdentifierAPIをFirebaseMessaging.getInstance().token.addOnCompleteListenerのclass LumaAplication : Applicationのoverride fun onCreate()関数に追加します。code language-kotlin // Send push token to Mobile SDK MobileCore.setPushIdentifier(token)この関数は、アプリがインストールされているデバイスに固有のデバイストークンを取得します。 次に、設定した設定と、Firebase Cloud Messaging (FCM)に依存する設定を使用して、プッシュ通知配信のトークンを設定します。
MobileCore.updateConfigurationWith(configDict: ["messaging.useSandbox": true])は、プッシュ通知がプッシュ通知の送信にAPNs サンドボックスまたは実稼動サーバーを使用しているかどうかを判断します。 シミュレーターまたはデバイスでアプリをテストする場合は、messaging.useSandboxがtrueに設定されていることを確認して、プッシュ通知を受信します。 AppleのTestflightを使用して実稼動用アプリをテスト用にデプロイする場合は、messaging.useSandboxをfalseに設定します。設定しない場合、実稼動用アプリはプッシュ通知を受信できません。Firebase Cloud Messaging (FCM)では、notはプッシュ通知のサンドボックスの概念をサポートしていません。
プッシュ通知の作成
独自のプッシュ通知を作成するには、プッシュ通知の送信を処理するジャーニーをトリガーするイベントをJourney Optimizerで定義する必要があります。
スキーマの更新
スキーマで定義されているイベントのリストの一部としてまだ使用できない新しいイベントタイプを定義します。 このイベントタイプは、後でプッシュ通知をトリガーする際に使用します。
-
Journey Optimizer UIで、左側のパネルから「スキーマ」を選択します。
-
タブバーで「参照」を選択します。
-
スキーマ (例:Luma Mobile App Event Schema)を選択して開きます。
-
スキーマエディターで、次の操作を行います。
-
「eventType」フィールドを選択します。
-
フィールドプロパティ ペインで、下にスクロールして、イベントタイプに使用できる値のリストを表示します。 行を追加し、
application.testを 値 として、Test event for push notificationをDISPLAY NAMEとして追加します。 -
「適用」を選択します。
-
「保存」を選択します。
{modal="regular"}
-
イベントの定義
Journey Optimizerのイベントを使用すると、メッセージを送信するジャーニー(プッシュ通知など)をトリガーできます。 詳しくは、 イベントについてを参照してください。
-
Journey Optimizer UIで、左側のパネルから「設定」を選択します。
-
ダッシュボード画面で、イベント タイルの管理 ボタンを選択します。
-
イベント画面で、「イベントを作成」を選択します。
-
イベント イベントを編集1 ペインで、次の操作を行います。
-
LumaTestEventをイベントの 名前 として入力します。 -
説明を入力します(例:
Test event to trigger push notifications in Luma app)。 -
で以前に作成したモバイルアプリエクスペリエンスイベントスキーマを選択します。スキーマ リストからXDM スキーマ を作成します(例:Luma Mobile App Event Schema v.1)。
-
「フィールド」リストの横にある「
」を選択します。
{modal="regular"}
フィールド ダイアログで、次のフィールドが選択されていることを確認します(常に選択されているデフォルトのフィールド(_id、id、タイムスタンプ)の上)。 ドロップダウンリストを使用して、選択済み、すべて、プライマリの間で切り替えるか、
フィールドを使用できます。
- 特定アプリケーション (id),
- イベントタイプ (eventType),
- プライマリ(プライマリ)。
{modal="regular"}
次に、Okを選択します。
-
「イベント ID条件」フィールドの横にある「
」を選択します。
- イベント ID条件を追加 ダイアログで、イベントタイプ (eventType)を ここに要素をドラッグ&ドロップ します。
- ポップオーバーで、一番下までスクロールし、application.test ( スキーマの更新の一環としてイベントタイプのリストに以前に追加したイベントタイプ)を選択します。 次に、一番上までスクロールし、OKを選択します。
- 条件を保存するには、Okを選択します。
{modal="regular"}
-
名前空間 リストから ECID (ECID) を選択します。 自動的にプロファイル ID フィールドに マップ IDMap のキーECIDの最初の要素のIDが入力されます。
-
「保存」を選択します。
{modal="regular"}
-
このチュートリアルの一部として、先ほど作成したモバイルアプリエクスペリエンスイベントスキーマに基づくイベント設定を作成しました。 このイベント設定は、特定のイベントタイプ (application.test)を使用して受信するエクスペリエンスイベントをフィルタリングするため、次のステップで構築するジャーニーは、その特定のタイプのイベントのみがモバイルアプリから開始されます。 実際のシナリオでは、外部サービスからプッシュ通知を送信する場合があります。 ただし、同じ概念が適用されます。外部アプリケーションからエクスペリエンスイベントをExperience Platformに送信します。このエクスペリエンスイベントには、ジャーニーをトリガーする前に条件を適用するために使用できる特定のフィールドがあります。
カスタマージャーニーの構築
次のステップは、適切なイベントを受け取ったときにプッシュ通知の送信をトリガーするジャーニーを作成することです。
-
Journey Optimizer UIで、左側のパネルから「ジャーニー」を選択します。
-
「ジャーニーを作成」を選択します。
-
ジャーニーのプロパティ パネルで、次の操作を行います。
- ジャーニーの 名前 を入力します(例:
Luma - Test Push Notification Journey)。 - ジャーニーの 説明 を入力します(例:
Journey for test push notifications in Luma mobile app)。 - 再入場を許可が選択されていることを確認し、再入場待機期間を30 秒に設定します。
- 「OK」を選択します。
{modal="regular"}
- ジャーニーの 名前 を入力します(例:
-
ジャーニーキャンバスに戻り、EVENTSから、
LumaTestEventをキャンバスにドラッグ&ドロップし、エントリイベントまたはオーディエンスアクティビティの読み取りを選択します。
- イベント:LumaTestEvent パネルに、ラベルを入力します(例:
Luma Test Event)。
- イベント:LumaTestEvent パネルに、ラベルを入力します(例:
-
アクション ドロップダウンから、LumaTestEvent アクティビティの右側に表示される
に
プッシュをドラッグ&ドロップします。 アクション:プッシュ ペイン:
-
ラベル (例:
Luma Test Push Notification)を指定し、説明 (例:Test push notification for Luma mobile app)を指定し、カテゴリ リストから トランザクション を選択し、プッシュサーフェスから Luma を選択します。 -
実際のプッシュ通知の編集を開始するには、
コンテンツの編集を選択します。
{modal="regular"}
プッシュ通知 エディターで、次の操作を行います。
-
タイトル (例:
Luma Test Push Notification)を入力し、本文 (例:Test push notification for Luma mobile app)を入力します。 -
オプションで、メディアを追加に画像(.pngまたは.jpg)へのリンクを入力できます。 そうすると、画像はプッシュ通知の一部になります。 その場合は、モバイルアプリで画像を適切に処理するように注意する必要があります。
-
エディターを保存して終了するには、
を選択します。
{modal="regular"}
-
-
プッシュ通知定義を保存して完了するには、Okを選択します。
-
-
ジャーニーは次のようになります。 「公開」を選択して、ジャーニーを公開およびアクティブ化します。
{modal="regular"}
プッシュ通知をトリガー
プッシュ通知を送信するための材料がすべて揃っています。 このプッシュ通知をトリガーする方法が残っています。 本質的には、以前に見たものと同じです。適切なペイロードを使用してエクスペリエンスイベントを送信するだけです( イベント のように)。
今回、送信しようとしているエクスペリエンスイベントは、単純なXDM ディクショナリを構築するように構築されていません。 プッシュ通知ペイロードを表すstructを使用します。 専用のデータタイプを定義することは、エクスペリエンスイベントペイロードの作成をアプリケーションに実装する別の方法です。
イラスト用にのみアプリ内からプッシュ通知を送信することに注意してください。 より典型的なシナリオは、別のアプリケーションまたはサービスからエクスペリエンスイベント(プッシュ通知ジャーニーをトリガーする)を送信することです。
-
Xcode プロジェクトナビゲーターでLuma > Luma > モデル > XDM > TestPushPayloadに移動し、コードを調べます。
code language-swift import Foundation // MARK: - TestPush struct TestPushPayload: Codable { let application: Application let eventType: String } // MARK: - Application struct Application: Codable { let id: String }このコードは、テストプッシュ通知ジャーニーをトリガーに送信する次の単純なペイロードを表しています。
code language-json { "eventType": string, "application" : [ "id": string ] } -
Xcode プロジェクトナビゲーターでLuma > Luma > Utils > MobileSDKに移動し、次のコードを
func sendTestPushEvent(applicationId: String, eventType: String)に追加します。code language-swift // Create payload and send experience event Task { let testPushPayload = TestPushPayload( application: Application( id: applicationId ), eventType: eventType ) // send the final experience event await sendExperienceEvent( xdm: testPushPayload.asDictionary() ?? [:] ) }このコードは、関数(
applicationIdおよびeventType)に指定されたパラメーターを使用してtestPushPayloadインスタンスを作成し、ペイロードを辞書に変換する際にsendExperienceEventを呼び出します。 このコードでは、awaitとasyncに基づいて、Swiftの同時実行モデルを使用して、Adobe Experience Platform SDKを呼び出す非同期機能も考慮しています。 -
Xcode プロジェクトナビゲーターでLuma > Luma > Views > General > ConfigViewに移動します。 プッシュ通知ボタンの定義で、次のコードを追加して、そのボタンをタップするたびにテストのプッシュ通知エクスペリエンスイベント ペイロードをトリガーに送信します。
code language-swift // Setting parameters and calling function to send push notification Task { let eventType = testPushEventType let applicationId = Bundle.main.bundleIdentifier ?? "No bundle id found" await MobileSDK.shared.sendTestPushEvent(applicationId: applicationId, eventType: eventType) }
-
Android Studio ナビゲーターでAndroid
> app > kotlin+java > com.adobe.luma.tutorial.android > xdm > TestPushPayload.ktに移動し、コードを調べます。code language-kotlin import com.google.gson.annotations.SerializedName data class TestPushPayload( @SerializedName("application") val application: Application, @SerializedName("eventType") val eventType: String ) { fun asMap(): Map<String, Any> { return mapOf( "application" to application.asMap(), "eventType" to eventType ) } } data class Application( @SerializedName("id") val id: String ) { fun asMap(): Map<String, Any> { return mapOf( "id" to id ) } }このコードは、テストプッシュ通知ジャーニーをトリガーに送信する次の単純なペイロードを表しています。
code language-json { "eventType": string, "application" : [ "id": string ] } -
Android Studio ナビゲーターでAndroid
> app > kotlin+java > com.adobe.luma.tutorial.android > models > MobileSDKに移動し、次のコードをfunc sendTestPushEvent(applicationId: String, eventType: String)に追加します。code language-kotlin // Create payload and send experience event val testPushPayload = TestPushPayload( Application(applicationId), eventType ) sendExperienceEvent(testPushPayload.asMap())このコードは、関数(
applicationIdおよびeventType)に指定されたパラメーターを使用してtestPushPayloadインスタンスを作成し、ペイロードをマップに変換する際にsendExperienceEventを呼び出します。 -
Android Studio ナビゲーターのAndroid
> app > kotlin+java > com.adobe.luma.android.tutorial > views > ConfigView.ktに移動します。 プッシュ通知ボタンの定義で、次のコードを追加して、そのボタンをタップするたびにテストのプッシュ通知エクスペリエンスイベント ペイロードをトリガーに送信します。code language-kotlin // Setting parameters and calling function to send push notification val eventType = testPushEventType val applicationId = context.packageName scope.launch { MobileSDK.shared.sendTestPushEvent( applicationId, eventType ) }
アプリを使用して検証
プッシュ通知イベントとジャーニーを検証するには:
-
を使用して、シミュレーターまたはXcodeの物理デバイスでアプリを再構築して実行します。
-
「設定」タブに移動します。
-
「プッシュ通知」をタップします。
プッシュ通知がアプリの上部に表示されます。
{width="300"}
-
を使用して、シミュレーターまたはAndroid Studioの物理デバイスでアプリを再構築して実行します。
-
「設定」タブに移動します。
-
「プッシュ通知」をタップします。
プッシュ通知がアプリの上部に表示されます。
{width="300"}
アプリ自体でプッシュ通知を処理して表示する方法は、この節のトピックを超えています。 各プラットフォームは、処理を実装し、特定の方法で通知を表示します。 詳しくは、以下を参照してください。
- IOSの場合: ユーザー通知
- Androidの場合:Cloud Messaging
次の手順
これで、アプリでプッシュ通知を処理するためのすべてのツールが揃いました。 例えば、アプリのユーザーがログインしたときにウェルカムプッシュ通知を送信するジャーニーをJourney Optimizerで作成できます。 または、ユーザーがアプリで製品を購入した際の確認プッシュ通知。 または、場所のジオフェンスを入力します(Places レッスンで見たように)。