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

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の場合、証明書、ID、およびキーを作成するのに十分なアクセス権を持つ​ 有料Apple開発者アカウント ​です。

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

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

学習目標

このレッスンでは、次のことをおこないます

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

セットアップ

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

プッシュ資格情報の作成

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

iOS

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

  1. Apple デベロッパーポータルで、Keys​に移動します。

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

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

  3. キー名​を入力してください。

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

    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. Setting > Project Settings​を選択します。

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

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

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

      1. 手順1では、アプリを登録​します。

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

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

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

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

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

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

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

データ収集にアプリのプッシュ資格情報を追加する

次に、モバイルアプリケーションのプッシュ資格情報を追加して、Adobeがプッシュ通知を送信することを承認する必要があります。 プッシュ資格情報は、Data Collectionまたは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
    名前は、文字(A ~ Z)で始める必要があります。 使用できるのは英数字のみです。 アンダースコア(_)、ドット(.)、ハイフン(-)も使用できます。
  3. 設定にカスタムまたはコアのデータ使用ラベルを割り当てるには、「アクセスを管理」を選択します。 詳しくは、オブジェクトレベルのアクセス制御(OLAC)を参照してください。

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

  5. マーケティングアクション​を選択して、この設定を使用するメッセージに同意ポリシーを関連付けます。 マーケティング活動に関連するあらゆる同意ポリシーを活用して、顧客の嗜好を尊重します。 ​ マーケティングアクションの詳細。

  6. Platform​を選択します。 チャネル設定に​ iOS ​と​ Android ​の両方を設定できます。

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

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

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

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

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

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

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

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

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

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

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

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

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

アプリが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で、Configure​を選択します。
    ​ クリックの設定 {modal="regular"}

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

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

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

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

  7. 「クライアント」リストからデバイスを選択します。

  8. エラーが発生していないことを確認します。
    検証 {modal="regular"}

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

  10. (オプション) タイトル​と​ 本文 ​のデフォルトの詳細を変更し、詳細 > 通知チャネル​など、アプリが期待するすべてのパラメーターを指定するようにします(例:LUMA_CHANNEL_ID、Androidに必要)。

  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. 自動管理の署名、Team​および​ バンドル識別子 ​を設定するか、特定のApple開発プロビジョニングの詳細を使用します。

    note important
    IMPORTANT
    各バンドル識別子は一意である必要があるため、一意の バンドル識別子を使用し、com.adobe.luma.tutorial.swiftui バンドル識別子を置き換えることを確認してください。 通常、com.organization.brand.uniqueidentifierのようなバンドル ID文字列には逆引きDNS形式を使用します。 このチュートリアルの「完了」バージョンでは、例えばcom.adobe.luma.tutorial.swiftuiが使用されます。

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

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

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

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

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

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

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

​ プッシュ通知拡張機能 {modal="regular"}

Android

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

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

アプリでのJourney Optimizerの実装

前のレッスンで説明したように、モバイルタグ拡張機能をインストールすると、設定のみが提供されます。 次に、Messaging SDKをインストールして登録する必要があります。 これらの手順が明確でない場合は、SDKのインストール ​ セクションを確認してください。

NOTE
Install SDKs セクションを完了した場合、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-messaing-androidが​Android ChevronDown Gradle Scripts​の​ build.gradle.kts (モジュール :app) ​の依存関係の一部であることを確認します。 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を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)に依存する設定を使用して、プッシュ通知配信のトークンを設定します。

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


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

プッシュ通知の作成

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

スキーマの更新

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

  1. Journey Optimizer UIで、左側のパネルから「スキーマ」を選択します。

  2. タブバーで「参照」を選択します。

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

  4. スキーマエディターで、次の操作を行います。

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

    2. フィールドプロパティ ペインで、下にスクロールして、イベントタイプに使用できる値のリストを表示します。 行​を追加し、application.testを​ 値 ​として、Test event for push notificationをDISPLAY NAMEとして追加します。

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

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

      ​ イベントタイプに値を追加 {modal="regular"}

イベントの定義

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

  1. Journey Optimizer UIで、左側のパネルから「設定」を選択します。

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

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

  4. イベント イベントを編集1 ペインで、次の操作を行います。

    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"}

      フィールド ダイアログで、次のフィールドが選択されていることを確認します(常に選択されているデフォルトのフィールド(_id、id、タイムスタンプ)の上)。 ドロップダウンリストを使用して、選択済み、すべて、プライマリ​の間で切り替えるか、 検索 フィールドを使用できます。

      • 特定アプリケーション (id),
      • イベントタイプ (eventType),
      • プライマリ(プライマリ)。

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

      次に、Ok​を選択します。

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

      1. イベント ID条件を追加 ダイアログで、イベントタイプ (eventType)​を​ ここに要素をドラッグ&ドロップ ​します。
      2. ポップオーバーで、一番下までスクロールし、application.test (​ スキーマの更新の一環としてイベントタイプのリストに以前に追加したイベントタイプ)を選択します。 次に、一番上までスクロールし、OK​を選択します。
      3. 条件を保存するには、Ok​を選択します。
        ​ イベント条件を編集 {modal="regular"}
    6. 名前空間 リストから​ ECID (ECID) ​を選択します。 自動的に​プロファイル ID フィールドに​ マップ IDMap ​のキーECIDの最初の要素のIDが入力されます。

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

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

カスタマージャーニーの構築

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

  1. Journey Optimizer UIで、左側のパネルから「ジャーニー」を選択します。

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

    • イベント:LumaTestEvent パネルに、ラベル​を入力します(例: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. エディターを保存して終了するには、 Chevron leftを選択します。

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

    3. プッシュ通知定義を保存して完了するには、Ok​を選択します。

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

プッシュ通知をトリガー

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

今回、送信しようとしているエクスペリエンスイベントは、単純な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() ?? [:]
        )
    }
    

    このコードは、関数(applicationIdおよびeventType)に指定されたパラメーターを使用してtestPushPayload インスタンスを作成し、ペイロードを辞書に変換する際にsendExperienceEventを呼び出します。 このコードでは、awaitとasyncに基づいて、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())
    

    このコードは、関数(applicationIdおよびeventType)に指定されたパラメーターを使用してtestPushPayload インスタンスを作成し、ペイロードをマップに変換する際に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. Playを使用して、シミュレーターまたはXcodeの物理デバイスでアプリを再構築して実行します。

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

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

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

    {width="300"}

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

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

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

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

    {width="300"}

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

次の手順

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

SUCCESS
これで、Journey Optimizerを使用したプッシュ通知のアプリと、Experience Platform Mobile SDKのJourney Optimizer拡張機能が有効になりました。
Adobe Experience Platform Mobile SDKについて学ぶために時間を割いていただきありがとうございます。 ご質問がある場合、一般的なフィードバックを共有したい場合、または今後のコンテンツに関する提案がある場合は、このExperience League コミュニティのディスカッション投稿で共有してください。

次:アプリ内メッセージの作成と送信

recommendation-more-help
platform-learn-help-tutorial-mobile-sdk