プッシュ通知の作成と送信

Experience Platform Mobile SDKとJourney Optimizerを使用して、モバイルアプリ用のプッシュ通知を作成する方法を説明します。

Journey Optimizerでは、ジャーニーを作成し、ターゲットとなるオーディエンスにメッセージを送信できます。 Journey Optimizerでプッシュ通知を送信する前に、適切な設定と統合が行われていることを確認する必要があります。 Journey Optimizerでのプッシュ通知のデータフローについては、 ドキュメントを参照してください。

アーキテクチャ {modal="regular"}

NOTE
このレッスンはオプションで、プッシュ通知の送信を検討しているJourney Optimizer ユーザーにのみ適用されます。

前提条件

  • SDK がインストールおよび設定された状態で、アプリケーションが正常に構築および実行されました。

  • Adobe Experience Platform用にアプリを設定します。

  • Journey Optimizerへのアクセスおよび 十分な権限。 また、次のJourney Optimizer機能に対する十分な権限も必要です。

    • プッシュ資格情報を作成します。
    • プッシュチャネル設定を作成します。
    • ジャーニーを作成します。
    • メッセージを作成します。
    • メッセージプリセットの作成。
  • iOS:証明書、識別子、キーを作成するための十分なアクセス権を持つ 有料のApple開発者アカウント

  • Androidの場合:証明書とキーを作成するための十分なアクセス権を持つGoogle開発者アカウント。

  • テスト用の物理的なiOSまたはAndroidのデバイスまたはシミュレータ。

学習目標

このレッスンでは、次の操作を行います

  • アプリ ID をApple Push Notification Service (APN)に登録します。
  • Journey Optimizerでチャネル設定を作成します。
  • プッシュメッセージフィールドを含めるようにスキーマを更新します。
  • Journey Optimizer タグ拡張機能をインストールして設定します。
  • アプリを更新して、Journey Optimizer タグ拡張機能を登録します。
  • Assuranceの設定を検証します。
  • Assuranceからのテストメッセージを送信
  • Journey Optimizerで独自のプッシュ通知イベント、ジャーニーおよびエクスペリエンスを定義します。
  • アプリ内から独自のプッシュ通知を送信します。

セットアップ

TIP
Journey Optimizerのアプリ内メッセージレッスンの一部として既に環境を設定している場合は、この設定の節の手順のいくつかが既に実行されている可能性があります。

プッシュ資格情報を作成

プッシュ通知の場合、最初にアプリをプッシュ通知用に登録する必要があります。

iOS

次の手順は、Adobe Experience Cloudに固有のものではなく、APN 設定の手順を示すように設計されています。

  1. Apple開発者ポータルで、「キー」に移動します。

  2. キーを作成するには、「+」を選択します。

    新しいキーを作成 {modal="regular"}

  3. キー名 を入力します。

  4. Apple プッシュ通知サービス ​ (APN)」を選択し、「設定」を選択します。

    1. キーを設定 画面で、環境 ドロップダウンメニューから サンドボックスと実稼動 を選択します。
    2. 保存」を選択します。
  5. 続行」を選択します。

    新しいキーを設定 {modal="regular"}

  6. 設定を確認し、「登録」を選択します。

  7. .p8 秘密鍵をダウンロードします。 次の演習では、Journey Optimizer プッシュ資格情報を設定する際に使用します。

  8. キー ID をメモします。 次の演習では、Journey Optimizer プッシュ資格情報を設定する際に使用します。

  9. チーム ID をメモします。 次の演習では、Journey Optimizer プッシュ資格情報を設定する際に使用します。 チーム ID は、画面右上のログイン名の横にあります。
    主な詳細 {modal="regular"}

その他のドキュメントについては こちらを参照してください。

Android

次の手順は、Adobe Experience Cloudに固有のものではなく、Firebase の設定手順を示すように設計されています。

  1. Firebase コンソールにアクセスします。

  2. Firebase プロジェクトの作成 を選択します。

    1. プロジェクト名 を入力します。
    2. プロジェクトを作成 - プロジェクトの名前から始めましょう で「続行」を選択します。 例:Luma Android App.
    3. Firebase の Gemini」を無効にし、「プロジェクトを作成する- Firebase プロジェクトの AI アシスタンス」で「続行」を選択します。
    4. このプロジェクトの Google Analyticsを無効にしプロジェクトの作成 - Firebase プロジェクトのGoogle Analytics続行 を選択します。
    5. プロジェクトを作成 を選択します。
    6. プロジェクトの準備が整ったら、「続行」を選択します。
  3. Firebase コンソールに戻り、上部でプロジェクトが選択されていることを確認します。 例えば、Luma Android アプリ などです。

    Firebase コンソール {modal="regular"}

  4. 設定 /プロジェクト設定 を選択します。

  5. プロジェクト設定 で「アプリを追加」を選択します。

    1. アプリに Firebase を追加する で、プラットフォームとして Android を選択します。

    2. Android アプリに Firebase を追加する:

      1. 手順 1 の アプリを登録:

        1. アプリ ID と同様に、Android パッケージ名を入力します。 例:com.adobe.luma.tutorial.android
        2. オプションで アプリのニックネーム を入力します。
        3. アプリを登録 を選択します。
      2. 手順 2 の 設定ファイルをダウンロードして追加する

        1. Download Download google-services.json を選択します。 独自のバージョンのAndroid アプリケーションを作成する場合は、サンプル Android Studio プロジェクトの現在の google-services.json ファイルを、この新しいアプリケーション設定によって生成されたファイルのバージョンに置き換える必要があります。
          その他の手順は、サンプルアプリ内で既に処理されています。

    画面は次のようになります。

    Firebase コンソール {modal="regular"}

  6. プロジェクト設定 で「サービスアカウント」を選択します。

  7. 新しい秘密鍵を生成 を選択します。 luma-android-app-firebase-adminsdk-xxxx-xxxxxxxx.json ファイルが生成されます。 後で必要になるので、このファイルを安全な場所に保存します。

詳しくは、Firebase 開発者向けドキュメントを参照してください。

データ収集へのアプリのプッシュ資格情報の追加

次に、モバイルアプリケーションのプッシュ資格情報を追加して、自分の代わりにAdobeがプッシュ通知を送信することを承認する必要があります。 プッシュ資格情報は、データ収集またはJourney Optimizerのいずれかで追加できます。 このチュートリアルでは、データ収集インターフェイスを使用します。 プッシュ資格情報は、Journey Optimizerのチャネル設定にリンクされます。

  1. データ収集で、「アプリサーフェス」を選択します。

  2. アプリサーフェスを作成 を選択します。

  3. アプリサーフェスを作成 インターフェイスで、次の操作を行います。

    1. 名前 を入力します。

    2. iOSのプッシュ通知を送信する場合は ​Apple iOS} を選択します。

      1. アプリ ID (例:com.adobe.luma.tutorial.swiftui)を入力します。
      2. サンドボックスを選択します(オプション)。
      3. プッシュ資格情報 を有効にします。
      4. 保存した .p8 秘密鍵ファイルを ファイルをドラッグ&ドロップ にドロップします。
      5. キー ID を入力します。
      6. チーム ID を入力します。
    3. Androidのプッシュ通知を送信する場合は ​Android} を選択します。

      1. アプリ ID (例:com.adobe.luma.tutorial.android)を入力します。
      2. サンドボックスを選択します(オプション)。
      3. プッシュ資格情報 を有効にします。
      4. 保存した luma-android-app-firebase-adminsdk-xxxx-xxxxxxxx.json ファイルを ファイルにドラッグ&ドロップ します。

    Journey Optimizerで新しいプッシュ資格情報設定を作成 {modal="regular"}

  4. 保存」を選択します。すべての情報が正しい場合は、チャネル設定に関連付けるプッシュ認証情報を作成しています。

Journey Optimizerでプッシュのチャネル設定を作成します

プッシュ資格情報設定を作成したら、Journey Optimizerからプッシュ通知を送信できるように、設定を作成する必要があります。

  1. Journey Optimizerのインターフェイスで、チャンネル/一般設定/チャンネル設定 メニューを開き、「チャンネル設定を作成」を選択します。

    新しいチャネル設定の作成 {modal="regular"}

  2. 設定の名前と説明(オプション)を入力します。

    note note
    NOTE
    名前は、文字(A ~ Z)で始める必要があります。使用できるのは英数字のみです。アンダースコア(_)、ドット(.)、ハイフン(-)も使用できます。
  3. 設定にカスタムまたはコアのデータ使用ラベルを割り当てるには、「アクセスを管理」を選択します。詳しくは、オブジェクトレベルのアクセス制御(OLAC)を参照してください

  4. プッシュ チャネルを選択します。

  5. マーケティングアクション」を選択し、この設定を使用して同意ポリシーをメッセージに関連付けます。 マーケティングアクションに関連するすべての同意ポリシーは、顧客の環境設定に従って活用されます。 マーケティングアクションの詳細情報

  6. Platform を選択します。 チャネル設定には、iOSAndroid の両方を設定できます。

  7. プッシュ資格情報の定義に以前に使用した適切な アプリ ID を選択します。 例えば、iOSの場合は com.adobe.luma.tutorial.swiftui、Androidの場合は com.adobe.luma.tutorial.android です。 緑の CheckmarkCircle は、有効なプッシュ資格情報がチャネル設定に関連付けられていることを示します。

    プッシュチャネル設定 {modal="regular"}

  8. 送信」を選択して変更を保存します。

データストリーム設定を更新

モバイルアプリから Experience Edgeに送信されるデータが確実にEdge Networkに転送されるようにするには、Journey Optimizer設定を更新します。

  1. データ収集 UI で「データストリーム」を選択し、データストリームを選択します(例:Luma Mobile App)。

  2. 2Experience Platform の「詳細 」を選択し、コンテキストメニューから 編集 編集 を選択します。

  3. データストリーム/ フォルダー /Adobe Experience Platform 画面で、次の操作を行います。

    1. まだ選択していない場合は、{ プロファイルデータセット から 0}AJO プッシュプロファイルデータセット を選択します。 ​このプロファイルデータセットは、MobileCore.setPushIdentifier API 呼び出しを使用する場合に必要です( プッシュ通知用のデバイストークンの登録を参照)。 また、この選択により、プッシュ通知の一意の識別子(プッシュ識別子など)がユーザーのプロファイルの一部として保存されます。

    2. Adobe Journey Optimizer が選択されました。 詳しくは、Adobe Experience Platform 設定を参照してください。

    3. データストリーム設定を保存するには、「保存」を選択します。

    AEP データストリーム設定 {modal="regular"}

Journey Optimizer タグ拡張機能のインストール

アプリがJourney Optimizerと連携するには、タグプロパティを更新する必要があります。

  1. タグ/拡張機能/カタログ に移動します。

  2. プロパティを開きます(例:Luma Mobile App Tutorial)。

  3. カタログ を選択します。

  4. Adobe Journey Optimizer 拡張機能を検索します。

  5. 拡張機能をインストールします。

  6. 拡張機能をインストール ダイアログで、

    1. 環境(例:開発 を選択します。

    2. イベントデータセット リストから AJO プッシュトラッキングエクスペリエンスイベントデータセット データセットを選択します。

    3. ライブラリおよびビルドに保存 を選択します。

      AJO拡張機能 {modal="regular"}

NOTE
AJO プッシュトラッキングエクスペリエンスイベントデータセット がオプションとして表示されない場合は、カスタマーケアにお問い合わせください。

Assuranceでの設定の検証

  1. 設定手順の節を参照して、シミュレーターまたはデバイスをAssuranceに接続します。

  2. Assurance UI で、「設定」を選択します。
    設定クリック {modal="regular"}

  3. プッシュデバッグ の横にある プラス を選択します。

  4. 保存」を選択します。
    保存 {modal="regular"}

  5. 左側のナビゲーションから プッシュデバッグ を選択します。

  6. 設定を検証」タブを選択します。

  7. クライアント リストからお使いのデバイスを選択します。

  8. エラーがないことを確認します。
    validate {modal="regular"}

  9. テストプッシュを送信 タブを選択します。

  10. (オプション) タイトル および 本文 のデフォルトの詳細を変更し、アプリで想定するすべてのパラメーター(詳細/通知チャネル (Androidでは必須、例:LUMA_CHANNEL_ID)を指定していることを確認します。

  11. バグ テストプッシュ通知を送信 を選択します。

  12. テスト結果 を確認します。

    Assuranceからのプッシュ通知のテスト {modal="regular"}

  13. テストプッシュ通知がアプリに表示されます。

iOS
{width="300"}
Android
{width="300"}

署名

IMPORTANT
iOSでプッシュ通知を送信するには、iOS アプリに署名する必要があり、Apple開発者の有料アカウントが必要 す。 プッシュ通知を送信するためにAndroid アプリに署名する必要はありません。

アプリの署名を更新するには:

  1. Xcode でアプリに移動します。

  2. プロジェクト ナビゲータで [Luma] を選択します。

  3. Luma ターゲットを選択します。

  4. 署名と機能」タブを選択します。

  5. 自動管理の署名チーム、および バンドル ID を設定するか、特定のApple開発プロビジョニングの詳細を使用します。

    note important
    IMPORTANT
    各バンドル ID は一意である必要があるので、unique バンドル ID を使用し、com.adobe.luma.tutorial.swiftui バンドル ID を置き換えてください。 通常は、バンドル ID 文字列(com.organization.brand.uniqueidentifier など)に逆 DNS 形式を使用します。 たとえば、このチュートリアルの完成バージョンでは com.adobe.luma.tutorial.swiftui を使用します。

    Xcode 署名機能 {modal="regular"}

アプリへのプッシュ通知機能の追加

IMPORTANT
iOS アプリでプッシュ通知を実装してテストするには、有料 Apple開発者アカウントが必要です。
iOS
  1. Xcode で、「Luma TARGETS 」リストから「」を選択し、「署名と機能」タブを選択します。次に、「+機能」ボタンを選択し、「プッシュ通知」を選択します。 これを選択すると、アプリがプッシュ通知を受信できるようになります。

  2. 次に、通知拡張機能をアプリに追加する必要があります。 「General」タブに戻り、「TARGETS」セクションの下部にある + アイコンを選択します。

  3. 新しいターゲットのテンプレートを選択するよう求められます。 通知サービス拡張機能 を選択してから、「次へ」を選択します。

  4. 次のウィンドウで、拡張機能の名前として NotificationExtension を使用し、「完了」ボタンをクリックします。

以下の画面のように、プッシュ通知拡張機能がアプリに追加されました。

Pusn notifications 拡張機能 {modal="regular"}

Android

Android Studio プロジェクトは、プッシュ通知用に既に設定されています。 プッシュ通知用に Luma アプリのAndroid バージョンを有効にするために追加の手順を実行する必要はありません。 詳しくは、 通知についてを参照してください。

Androidのプッシュ通知では、アプリ内とプッシュ通知の送信時の両方で通知チャネル id を定義する必要があります。 Android Luma アプリで使用されるチャネル通知 ID は LUMA_CHANNEL ID です。

アプリへのJourney Optimizerの実装

前のレッスンで説明したように、モバイルタグ拡張機能をインストールしても、設定のみが提供されます。 次に、Messaging SDKをインストールして登録します。 これらの手順が明確でない場合は、「SDK のインストール の節を参照しください。

NOTE
SDK のインストールの節を完了した場合、SDKは既にインストールされているので、この手順をスキップできます。
iOS
  1. Xcode で、AEP Messaging がパッケージの依存関係のパッケージの一覧に追加されていることを確認します。 Swift パッケージマネージャーを参照してください。

  2. Xcode プロジェクトナビゲーターで Luma/Luma/AppDelegate に移動します。

  3. AEPMessaging が読み込みのリストに含まれていることを確認します。

    import AEPMessaging

  4. 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
  1. Android Studio で、aepsdk-messing-androidAndroid:app ChevronDown ​Gradle Scripts の build.gradle.kts (Module の依存関係に含まれていることを確認します。 Gradle を参照。

  2. Android Studio プロジェクトナビゲーターで Android ChevronDown /app/kotlin+java/com.adobe.luma.tutorial.android/LumaApplication に移動します。

  3. com.adobe.marketing.mobile.Messaging が読み込みのリストに含まれていることを確認します。

    import import com.adobe.marketing.mobile.Messaging

  4. 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
    )
    

プッシュ通知用のデバイストークンの登録

プッシュ通知用のデバイストークンを登録する必要があります。

iOS
  1. Xcode プロジェクトナビゲーターで Luma/Luma/AppDelegate に移動します。

  2. MobileCore.setPushIdentifier API を func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) 関数に追加します。

    code language-swift
    // Send push token to Mobile SDK
    MobileCore.setPushIdentifier(deviceToken)
    

    この関数は、アプリがインストールされているデバイスに固有のデバイストークンを取得します。 次に、設定した設定を使用して、プッシュ通知配信のトークンを設定します。この設定は、Appleのプッシュ通知サービス(APN)に依存しています。

Android
  1. Android Studio プロジェクトナビゲーターで Android ChevronDown /app/kotlin+java/com.adobe.luma.tutorial.android/LumaApplication に移動します。

  2. MobileCore.setPushIdentifier API を override fun onCreate()class LumaAplication : Application 関数に FirebaseMessaging.getInstance().token.addOnCompleteListener で追加します。

    code language-kotlin
    // Send push token to Mobile SDK
    MobileCore.setPushIdentifier(token)
    

    この関数は、アプリがインストールされているデバイスに固有のデバイストークンを取得します。 次に、設定した設定と、Firebase Cloud Messaging (FCM)に基づく設定を使用して、プッシュ通知配信用のトークンを設定します。

IMPORTANT
iOSのみ:この MobileCore.updateConfigurationWith(configDict: ["messaging.useSandbox": true]) 定により、プッシュ通知で APN サンドボックスまたは実稼動サーバーを使用してプッシュ通知を送信するかどうかが決まります。 シミュレーターまたはデバイスでアプリをテストする場合は、プッシュ通知を受信できるように、messaging.useSandboxtrue に設定されていることを確認します。 Appleの Testflight を使用してテストするために実稼動用にアプリをデプロイする場合は、messaging.useSandboxfalse に設定します。そうしないと、実稼動アプリはプッシュ通知を受信できません。


​>Firebase Cloud Messaging (FCM)では、プッシュ通知用のサンドボックスの概念をサポート していません

独自のプッシュ通知を作成

独自のプッシュ通知を作成するには、プッシュ通知の送信を処理するジャーニーをトリガーにするイベントをJourney Optimizerで定義する必要があります。

スキーマを更新

スキーマで定義されたイベントのリストの一部としてまだ使用できない新しいイベントタイプを定義しようとしています。 このイベントタイプは、後でプッシュ通知をトリガーするときに使用します。

  1. Journey Optimizer UI の左パネルで「スキーマ」をクリックします。

  2. タブバーの 参照 を選択します。

  3. スキーマ(例:Luma Mobile App Event Schema)を選択して開きます。

  4. スキーマエディターで、次の手順を実行します。

    1. eventType フィールドを選択します。

    2. フィールドプロパティ ペインで、下にスクロールして、イベントタイプに指定可能な値のリストを表示します。 行を追加 を選択し、application.testVALUE として を追加し、Test event for push notification として DISPLAY NAME を追加します。

    3. 適用」を選択します。

    4. 保存」を選択します。

      イベントタイプへの値の追加 {modal="regular"}

イベントを定義

Journey Optimizerのイベントを使用すると、プッシュ通知などのメッセージを送信するジャーニーをトリガーに設定できます。 詳しくは、 イベントについてを参照してください。

  1. Journey Optimizer UI の左パネルで「設定」をクリックします。

  2. ダッシュボード 画面で、イベント タイルの 管理 ボタンを選択します。

  3. イベント 画面で、「イベントを作成」を選択します。

  4. event1 を編集 パネルで、次の操作を行います。

    1. イベントの LumaTestEvent 名前 として を入力します。

    2. 説明 を入力します(例:Test event to trigger push notifications in Luma app)。

    3. XDM スキーマの作成で前に作成したモバイルアプリエクスペリエンスイベントスキーマを スキーマ リストから選択します(例:Luma Mobile App Event Schema v.1)。

    4. フィールド リストの横にある「編集 を選択します。

      イベントを編集ステップ 1 {modal="regular"}

      フィールド ダイアログで、(常に選択されるデフォルトフィールド(_idid および timestamp)に加えて)次のフィールドが選択されていることを確認します。 ドロップダウンリストを使用して、「選択済み 、「すべて、{4 プライマリ を切り替えたり 検索 」フィールドを使用したりできます。

      • アプリケーションが識別されました(ID)
      • イベントタイプ (eventType)
      • プライマリ(プライマリ)

      イベントフィールドを編集 {modal="regular"}

      次に、「OK」を選択します。

    5. イベント ID 条件 フィールドの横にある 編集 を選択します。

      1. イベント ID 条件を追加 ダイアログで、イベントタイプ (eventType)ここに要素をドラッグ&ドロップ にドラッグ&ドロップします。

      2. ポップオーバーで、下までスクロールして「application.test」を選択します(これは、 スキーマを更新の一部としてイベントタイプのリストに以前に追加したイベントタイプです)。 次に、上までスクロールして、「OK」を選択します。

      3. OK」を選択して、条件を保存します。

        イベント条件を編集 {modal="regular"}

    6. 名前空間 リストから ECID (ECID) を選択します。 プロファイル識別子 フィールドには、マップ identityMap のキー ECID の最初の要素の ID が自動的に入力されます。

    7. 保存」を選択します。
      イベントを編集ステップ 2 {modal="regular"}

先ほど、このチュートリアルの一部として前に作成したモバイルアプリエクスペリエンスイベントスキーマに基づくイベント設定を作成しました。 このイベント設定は、特定のイベントタイプ(application.test)を使用して受信エクスペリエンスイベントをフィルタリングするので、モバイルアプリから開始された、特定のタイプを持つイベントのみが、次の手順で作成するジャーニーをトリガーします。 実際のシナリオでは、外部サービスからプッシュ通知を送信する必要がある場合があります。 ただし、同じコンセプトが適用されます。外部アプリケーションから、特定のフィールドを持つExperience Platformにエクスペリエンスイベントを送信し、これらのイベントがジャーニーをトリガーする前に条件を適用できます。

ジャーニーの作成

次の手順では、適切なイベントを受け取ったときにプッシュ通知の送信をトリガーにするジャーニーを作成します。

  1. Journey Optimizer UI の左パネルから 0}ジャーニー} を選択します。

  2. ジャーニーを作成 を選択します。

  3. ジャーニーのプロパティ パネルで、次の操作を行います。

    1. ジャーニーの 名前 を入力します(例:Luma - Test Push Notification Journey)。

    2. ジャーニーの 説明 を入力します(例:Journey for test push notifications in Luma mobile app)。

    3. 再エントリを許可 が選択されていることを確認し、再エントリ待機期間30 に設定します。

    4. OK」を選択します。

      ジャーニーのプロパティ {modal="regular"}

  4. ジャーニーキャンバスに戻り、イベント から、 イベント LumaTestEvent をキャンバスの エントリイベントまたはオーディエンスを読み取りアクティビティを選択 にドラッグ&ドロップします。

    • Events:LumaTestEvent パネルに Label (例:Luma Test Event)を入力します。
  5. アクション」ドロップダウンから、 アクティビティの右側に表示される 追加 の上に プッシュ プッシュ LumaTestEvent プッシュをドラッグ&ドロップします。 アクション:プッシュ パネルで、

    1. ラベル、例えば Luma Test Push Notification を入力し、説明、例えば Test push notification for Luma mobile app を入力して、カテゴリ リストから トランザクション を選択し、Luma プッシュサーフェス から を選択します。

    2. 実際のプッシュ通知の編集を開始するには、「 編集 コンテンツを編集」を選択します。

      プッシュプロパティ {modal="regular"}

      プッシュ通知 エディターで以下を行います。

      1. タイトル を入力して(例:Luma Test Push Notification)、本文 を入力して(例:Test push notification for Luma mobile app)。

      2. オプションで、「メディアを追加 に画像へのリンク(.png または.jpg を入力できます。 その場合、画像はプッシュ通知の一部になります。 その場合、モバイルアプリで画像を適切に処理する必要があります。

      3. エディターを保存して終了するには、「 左に山形記号 」を選択します。

        プッシュエディター {modal="regular"}

    3. プッシュ通知の定義を保存して終了するには、「OK」を選択します。

  6. ジャーニーは次のようになります。 「公開」を選択して、ジャーニーを公開およびアクティブ化します。
    ジャーニーの完了 {modal="regular"}

プッシュ通知をトリガー

プッシュ通知を送信するためにすべての材料が用意されていること。 残っているのは、このプッシュ通知のトリガー方法です。 本質的には、以前に見たものと同じです。適切なペイロードでエクスペリエンスイベントを送信するだけです(Events など)。

今回は、送信しようとしているエクスペリエンスイベントは、単純な XDM ディクショナリを構築して構築されていません。 プッシュ通知ペイロードを表す struct を使用します。 専用のデータタイプを定義することは、アプリケーションでエクスペリエンスイベントペイロードの構築を実装する方法の代替方法です。

なお、説明の目的でのみ、アプリ内からプッシュ通知を送信することに注意してください。 より典型的なシナリオは、別のアプリケーションまたはサービスからエクスペリエンスイベント(プッシュ通知ジャーニーをトリガーにする)を送信する場合です。

iOS
  1. 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
       ]
    }
    
  2. 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() ?? [:]
        )
    }
    

    このコードは、関数(testPushPayload および applicationId)に提供されたパラメーターを使用して eventType インスタンスを作成し、ペイロードをディクショナリに変換する際に sendExperienceEvent を呼び出します。 また、このコードでは、awaitasync に基づく Swift の同時実行モデルを使用して、Adobe Experience Platform SDKの呼び出しの非同期側面を考慮に入れています。

  3. 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
  1. Android Studio ナビゲーターで Android ChevronDown /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
       ]
    }
    
  2. Android Studio ナビゲーターで Android ChevronDown /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())
    

    このコードは、関数(testPushPayload および applicationId)に提供されたパラメーターを使用して eventType インスタンスを作成し、ペイロードをマップに変換しながら sendExperienceEvent を呼び出します。

  3. Android Studio ナビゲーターで、Android ChevronDown /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
          )
    }
    

アプリを使用した検証

プッシュ通知イベントとジャーニーを検証するには:

iOS
  1. 再生 を使用して、シミュレータまたは Xcode の物理デバイスでアプリを再構築して実行します。

  2. 設定」タブに移動します。

  3. プッシュ通知 をタップします。

    アプリの上部にプッシュ通知が表示されます。

    {width="300"}

Android
  1. 再生 を使用して、シミュレーターまたはAndroid Studio の物理デバイスでアプリを再構築して実行します。

  2. 設定」タブに移動します。

  3. プッシュ通知 をタップします。

    アプリの上部にプッシュ通知が表示されます。

    {width="300"}

アプリ自体でプッシュ通知を処理して表示する方法については、この節のトピックを超えています。 各プラットフォームは、処理を実装し、特定の方法で通知を表示します。 詳しくは、を参照してください。

次の手順

これで、アプリでプッシュ通知を処理するためのすべてのツールが用意できました。 例えば、Journey Optimizerで、アプリのユーザーがログインしたときにウェルカムプッシュ通知を送信するジャーニーを作成できます。 または、ユーザーがアプリで製品を購入したときの確認プッシュ通知。 または、場所のジオフェンスに入ります(「場所 レッスンで確認できように)。

SUCCESS
これで、Journey Optimizerと、Experience Platform Mobile SDK用のJourney Optimizer拡張機能を使用して、アプリにプッシュ通知を有効にしました。
Adobe Experience Platform Mobile SDKの学習にご協力いただき、ありがとうございます。 ご不明な点がある場合や、一般的なフィードバックをお寄せになる場合、または今後のコンテンツに関するご提案がある場合は、この Experience League Community Discussion の投稿でお知らせください。

次のトピック:アプリ内メッセージの作成および送信

recommendation-more-help
9fed61f5-c338-47ad-8005-0b89a5f4af8b