開発者向けの基本を学ぶ get-started-developers

このページ: アプリケーションをAdobe Journey Optimizerに接続するSDK、イベントストリーミング、カスタムアクションエンドポイント、およびAPIを実装して、ライブデータでジャーニーを実行できるようにします。

開発者​は、Adobe Journey Optimizer をアプリケーションやシステムに実装し、統合する責任を負います。 システム管理者データエンジニアからアクセス権を付与され、環境の準備ができたら、Adobe Journey Optimizer での作業を開始できます。

NOTE
実装指示: 管理者​ データエンジニア ​ →現在地:開発者​ マーケター
モバイルとwebの統合を実装する前に、​ データスキーマとイベント ​が設定されていることを確認してください。

Journey Optimizer エコシステムでの役割

他のチームメンバーがユーザーインターフェイスを通じて Journey Optimizer を設定している間、以下に焦点を当てます。

  • モバイルアプリケーションと web アプリケーションでの SDK の実装
  • ジャーニーをトリガーするためのアプリケーションからの​イベントの送信
  • カスタムアクションを通じて Journey Optimizer が呼び出せる API エンドポイントの作成
  • Journey Optimizer と既存のシステムおよびインフラストラクチャとの​統合
  • 実装の​テストとデバッグ

データエンジニアは、データスキーマ、イベント設定およびデータソースを処理します。 管理者は、権限とチャネル設定を指定します。 マーケターは、実装を使用するジャーニーとコンテンツをデザインします。

このガイドでは、Journey Optimizer を開始するための基本的な技術的実装手順について説明します。 モバイルアプリ、web エクスペリエンス、API 統合のいずれを作成する場合でも、以下の節に従って実装を設定してください。

前提条件 prerequisites

実装を開始する前に、以下の点を確認してください。

カテゴリ
要件
技術スキル
* JavaScript(Web SDK の場合)または Swift/Kotlin(Mobile SDK の場合)の使用経験
* RESTful API と JSON に関する理解
* 非同期プログラミングとイベント駆動型アーキテクチャに関する知識
* 組織のアプリケーションアーキテクチャに関する知識
アクセスとツール
* API 資格情報用の Adobe Developer Console へのアクセス権
* アプリケーションのコードベースへのアクセス権がある開発環境
* API テスト用の Postman などのテストツール
* ブラウザー開発者ツールまたはモバイルデバッグツール
他のチームメンバーから
* 管理者
から付与された環境へのアクセス権* データエンジニア
からの XDM スキーマとイベント定義* マーケターからの要件とユースケース

技術的な基盤について technical-foundation

実装に進む前に、次のコアとなる技術概念を理解しておきます。

  1. Adobe Experience Platform の統合:Journey Optimizer は、Adobe Experience Platform でネイティブに作成されています。 基盤となるアーキテクチャを理解すると、より効果的な実装を作成できます。 詳しくは、Journey Optimizer の仕組みを参照してください。

  2. XDM データモデル:Journey Optimizer は、エクスペリエンスデータモデル(XDM)を使用して、イベントデータとプロファイルデータを構造化します。 開発者は、データエンジニアが設定したスキーマに準拠するデータの送信方法を理解する必要があります。 詳しくは、XDM スキーマを参照してください。

  3. 認証とセキュリティ:すべての実装に適切な認証が必要です。 SDK と API の認証を設定する方法を理解します。 詳しくは、API 認証を参照してください。

モバイルアプリの統合の設定 mobile-integration

Adobe Experience Platform Mobile SDK の設定

モバイル SDKは、iOSまたはAndroid アプリに直接埋め込むライブラリのコレクションです。 アプリとAdobe Experience Platformの間のコミュニケーション層として機能し、利用者の特定、行動イベントの収集、プッシュ通知、アプリ内メッセージ、パーソナライズされたコンテンツなどの指示をJourney Optimizerから送信します。 この機能がなければ、Journey Optimizerでアプリの利用者が何をしているのかを把握したり、そうした利用者にリーチしたりすることはできません。

  1. Mobile SDK をインストールして設定Adobe Experience Platform Mobile SDK ドキュメントに従って、SDK 統合を開始します。

  2. モバイルプロパティを作成:Adobe Experience Platform Data Collection でモバイルプロパティを設定します。 詳しくは、モバイルプロパティの作成と設定方法を参照してください。

  3. プッシュ通知を設定

    • iOS アプリ​の場合:アプリを APNs(Apple プッシュ通知サービス)に登録します。 詳しくは、Apple のドキュメントを参照してください。
    • Android アプリ​の場合:Android アプリに Firebase Cloud Messaging を設定します。 詳しくは、Google のドキュメントを参照してください。
  4. モバイル統合をテストモバイルオンボーディングのクイックスタートワークフローを使用して、モバイル設定を迅速に設定およびテストします。

プッシュ通知を設定する手順について詳しくは、このページを参照してください。

コードベースのエクスペリエンスの実装(Mobile SDK)

コードベースのエクスペリエンスにより、新しいアプリのリリースを必要とせずに、オンボーディング画面や製品詳細ページ、アプリ内バナーや機能フラグなど、ネイティブモバイルアプリのあらゆるサーフェスにパーソナライズされたコンテンツを配信できます。 モバイルSDKを使用すると、ランタイムにパーソナライズされたコンテンツを取得してレンダリングできるため、チームは配置とプレゼンテーションを完全に制御できます。

Web エクスペリエンスの実装 web-implementation

Adobe Experience Platform Web SDK の設定

Web SDK (alloy.js)は、サイトで必要になる可能性のある個別のJavaScript タグのパッチワークに代わる単一のAdobe ライブラリです。 単一のネットワークで、行動データを収集し、設定したデータストリームを通じてAdobe Experience Platformにストリーミングし、パーソナライゼーションの指示を受け取ります。 adobe Journey Optimizerを導入すれば、訪問者を特定し、その行動にもとづいてカスタマージャーニーをトリガーし、それぞれのページに合わせたコンテンツを迅速に提供できます。

  1. Web SDK をインストールWeb SDK 実装ガイドに従って、web サイトに SDK を設定します。

  2. データストリームを設定:Journey Optimizer を有効にして、Adobe Experience Platform Data Collection でデータストリームを作成および設定します。 詳しくは、データストリームドキュメントを参照してください。

  3. Web プッシュ通知を有効にする(オプション):Web プッシュ通知が一般提供されるようになりました。 Web SDK 設定で pushNotifications プロパティを設定し、sendPushSubscription コマンドを使用してプッシュ購読を登録します。 Web プッシュ設定の詳細情報

コードベースのエクスペリエンスの実装(Web SDK)

マーケターがレイアウトを完全に制御するビジュアルチャネルとは異なり、コードベースのエクスペリエンスでは、ページにパーソナライズされたコンテンツがどのように表示されるかを完全に管理できます。 Journey Optimizerは、パーソナライゼーションデータを含むJSON ペイロードを返します。コードは、どこにどのように表示するかを決定します。 このモデルは、視覚的なエディターやページ公開ワークフローを必要とせずに、ヒーローバナー、レコメンデーションカルーセル、検索結果ランキング、A/B テストのバリエーションなど、あらゆるweb サーフェスに対応します。

  1. 実装方法を選択:クライアントサイド、サーバーサイド、ハイブリッド。 各アプローチの実装サンプルを確認します。

  2. サーフェスを定義:パーソナライズされたコンテンツを配信するアプリケーション内の場所を特定します。 詳しくは、サーフェスの設定を参照してください。

  3. コンテンツレンダリングを実装:Web SDK を使用して、パーソナライゼーションコンテンツを取得および適用します。 コードベースの実装チュートリアルを参照してください。

  4. 表示イベントとインタラクションイベントを送信:コンテンツが表示されるタイミングと、ユーザーがコンテンツとやり取りするタイミングを追跡して、分析と最適化を行います。

実際のコードベースのエクスペリエンスを確認するには、GitHub のサンプル実装を参照してください。

詳しくは、コードベースのエクスペリエンスの基本を学ぶを参照してください。

イベントストリーミングの実装 event-streaming

ジャーニーをトリガーするイベントの送信

ジャーニーは、イベントにもとづいて実行されます。利用者がログインし、カートに商品を追加すると、購入が完了し、フォームが放棄されます。 あなたの仕事は、適切なタイミングでアプリケーションからそれらのイベントを放出することです。 各イベントは、Experience Platform Streaming Ingestion APIに送信されるXDM構造化JSON ペイロードです。Journey Optimizerは、ミリ秒以内にイベントを取得し、プロファイルを任意の一致するジャーニーにルーティングします。 イベントスキーマとペイロード構造は、​ データエンジニア ​によって定義されます。コーディングを開始する前に調整してください。

  1. イベントペイロードを理解:データエンジニアと連携して、イベントスキーマと必要なペイロード構造を取得します。 ペイロードは、設定した XDM スキーマに準拠する必要があります。 詳しくは、イベントスキーマ要件を参照してください。

  2. イベントストリーミングを実装Streaming Ingestion API を使用して、Adobe Experience Platformにイベントを送信します。 詳しくは、イベントの送信手順 を参照してください。

  3. イベントタイプを処理

    • 単一イベント:ユーザー固有のアクション(例:ボタンのクリック、購入完了)に対するイベント送信を実装します
    • ビジネスイベント:ビジネス関連のイベント(例:在庫の更新、価格の変更)を送信します
  4. イベント配信をテスト:イベントが適切に受信され、期待どおりにジャーニーがトリガーされることを確認します。 詳しくは、イベントのトラブルシューティングを参照してください。

API 経由でイベントを送信する場合の​実装例

POST https://{DATACOLLECTION_ENDPOINT}/collection/{DATASTREAM_ID}
Content-Type: application/json

{
  "header": {
    "datasetId": "{DATASET_ID}",
    "imsOrgId": "{ORG_ID}",
    "source": {
      "name": "Web SDK"
    }
  },
  "body": {
    "xdmMeta": {
      "schemaRef": {
        "id": "{SCHEMA_ID}"
      }
    },
    "xdmEntity": {
      "_id": "unique-event-id",
      "eventType": "purchase",
      "timestamp": "2024-01-01T12:00:00Z",
      // ... your event data
    }
  }
}

詳しくは、ジャーニーイベントの操作を参照してください。

カスタムアクションエンドポイントの開発 custom-actions

カスタマージャーニーのカスタムアクションのステップに到達すると、Journey Optimizerは、バックエンド、CRM、ロイヤルティプラットフォーム、REST エンドポイントなど、提供したURLに対してアウトバウンド HTTP呼び出しを行います。 あなたの仕事は、エンドポイントを構築して公開することです:リクエストコントラクト(ペイロードの形状、認証方法、応答形式)を定義し、その背後にあるビジネスロジックを実装し、Journey Optimizerが生成するコールボリュームを処理できることを確認します。 次に、管理者がエンドポイントをJourney Optimizerに登録し、マーケターがジャーニーのステップとして使用できるようにします。

  1. API エンドポイントを作成:ジャーニー実行中に Journey Optimizer により呼び出される RESTful API エンドポイントを作成します。 エンドポイントで次の操作を実行する必要があります。

    • JSON ペイロードを受け入れる
    • リクエストを認証(OAuth、API キーまたは JWT)
    • 適切なタイムアウト制限内でリクエストを処理
    • 応答を想定される形式で返す
  2. カスタムアクションの機能を理解:カスタムアクションは、Epsilon、Slack、Firebase などのサードパーティシステムや独自のサービスに接続できます。 詳しくは、カスタムアクションを参照してください。

  3. アクション設定を操作管理者またはデータエンジニアは、Journey Optimizer でカスタムアクションを設定し、API エンドポイント URL、認証方法、パラメーターを定義します。 お客様は、API 仕様を管理者またはデータエンジニアに提供してください。 詳しくは、カスタムアクション設定を参照してください。 オプションの​ エラー応答ペイロード ​を、タイムアウト/エラー分岐のよりリッチなフォールバックロジックに対して定義できます。

  4. アクションにつながるデータを返す:後続のジャーニーステップで使用できるデータを返すように API をデザインします。 詳しくは、アクション応答を参照してください。

  5. カスタムアクションの正常性を監視:カスタムアクション監視ダッシュボードを使用して、呼び出しの成功、エラー、スループット、応答時間、キュー待ち時間を追跡します。 詳しくは、カスタムアクションレポートを参照してください。

  6. レート制限を実装:エンドポイントが想定されるボリュームを処理できることを確認します。 Journey Optimizer では、1 秒あたり 5000 回の呼び出しの制限が適用されますが、システムは回復力を備えている必要があります。 詳しくは、キャップとスロットルを参照してください。

ユースケース例:カスタムアクションを使用して、ジャーニーイベントを Experience Platform に書き込みます

Journey Optimizer API の操作 apis

Journey Optimizer UIを通じてすべてが行われる必要はありません。 自社のバックエンドから施策をトリガーする、プライバシーリクエストの後にメールアドレスを抑制する、外部のCMSからコンテンツテンプレートを同期させる、といった必要が生じることもあります。 Journey OptimizerのREST APIでは、プラットフォームのコア機能にプログラムでアクセスできます。 すべての呼び出しはOAuth サーバー間認証を使用します。古いJWT メソッドは非推奨です。

  1. API 機能を理解:Journey Optimizer API を使用すると、様々なリソースをプログラムで作成、読み取り、更新、削除できます。 詳しくは、Journey Optimizer API を参照してください。

  2. 認証このチュートリアルに従って、Adobe Developer Console を使用して API 認証を設定します。

  3. API リファレンスを探索:完全な API ドキュメントを参照して、Adobe Journey Optimizer API リファレンスで API を直接試します。

  4. API トリガーキャンペーン:API トリガーキャンペーンを使用して、トランザクションメッセージを作成します。 大量のシナリオ(最大 5000 TPS)の場合は、高スループットモードを探索します(アドオンライセンスが必要)。

  5. Decision Management API:オファー管理と決定に専用の API を使用します。 詳しくは、Decision Management API ガイドを参照してください。

  6. Decisioning 移行 API:柔軟なスコープ、自動検証、ロールバックのサポートにより、意思決定管理エンティティを Decisioning にプログラムで移行します。 詳しくは、Decision 移行 API ガイドを参照してください。

  7. SMS Webhook:受信メッセージを取得するように受信 Webhook を設定し、配信レシートとステータス更新を受信するようにフィードバック Webhook を設定します。 学習を増やす

テストとデバッグ testing

導入を開始する前に、イベントが適切なタイミングで実行され、ジャーニーが期待どおりにトリガーされ、カスタムアクションが現実的な読み込み中に動作し、パーソナライズされたコンテンツが正しくレンダリングされるという確信が必要です。 このセクションでは、低レベルのSDKのログ記録から、実際のプロファイルを使用したエンドツーエンドのジャーニーテストの実行まで、問題を早期に発見するためのツールとテクニックについて説明します。

  1. SDKの実装をデバッグ: Adobe Experience Platform Assuranceを使用して、SDK イベントを調べ、データ収集を検証し、統合問題が発生した場合にトラブルシューティングを行います。 オーディエンスの詳細情報

  2. イベント配信をテスト:アプリケーションからのイベントが Adobe Experience Platform により正しく受信され、期待どおりにジャーニーがトリガーされることを確認します。 イベントの取り込みを監視し、ペイロード構造を検証します。

  3. API 統合を検証:カスタムアクションエンドポイントをテストして、Journey Optimizer リクエストが正しく処理され、タイムアウト制限内に応答し、期待されるデータ形式が返されることを確認します。

  4. テストプロファイルでテストモードを使用データエンジニアと連携してテストプロファイルにアクセスし、ジャーニーテストモードを使用して実装を検証します。 詳しくは、ジャーニーのテスト方法を参照してください。

  5. SDK ログを監視:SDK 実装でデバッグログを有効にして、開発中の問題をトラブルシューティングします。

    • Mobile SDK:ログを有効にして、SDK イベントと API 呼び出しを確認します
    • Web SDK:ブラウザーコンソールを使用して SDK アクティビティを監視します
  6. データストリームの設定を確認:データストリームが Journey Optimizer にデータを送信するために正しく設定されていることを確認します。 イベントがデータストリームを通じて正しい宛先にフローされることを確認します。

  7. 分析用にジャーニーデータのクエリを実行:データレイクで SQL クエリを使用して、ジャーニーステップイベントの分析、問題のデバッグ、カスタムアクションのパフォーマンスの監視を行います。 次を含むジャーニー分析のクエリ例を探索します。

    • プロファイルのエントリ/終了のトラッキングと破棄理由
    • カスタムアクションのパフォーマンス指標(待ち時間、スループット、エラー)
    • イベントの配信パターンとエラーパターン
    • ジャーニーインスタンスの状態

高度な開発者向けトピック advanced-topics

コア SDK、イベント、APIを導入したら、次のトピックを実行します。プロファイルを肥大化させることなく、実行時にジャーニーデータを強化する、オプトアウトが各統合を通じて伝播するように同意シグナルを処理する、本番環境の拡張に必要なスループットと信頼性に合わせて実装を調整する、といった重要な機能です。

コンテキストデータとエンリッチメントの操作

一般的に、ジャーニーは、商品名、ロイヤルティ層、注文明細リストなどのイベントをトリガーするのに必要な量よりも多くのデータを必要としています。 コンテキストに基づいたエンリッチメントにより、これらすべてを各プロファイルに事前に読み込むのではなく、AEP データセットから実行時に検索したり、カスタムアクションレスポンスから実行したりすることができます。 メッセージと分岐の条件は、プロファイルに永続的に保存されることなく、そのデータを参照できます。

  • 配列を反復処理:Handlebars 構文を使用して、イベント、カスタムアクション応答およびメッセージ内のデータセット検索からの動的なリストを表示します。 詳しくは、コンテキストデータの反復処理を参照してください。
  • データセット参照:データセット参照を実装して、Adobe Experience Platform データセットからのジャーニーデータを強化します。 設定について詳しくは、データエンジニアと連携してください。 詳しくは、データセット参照を参照してください。

同意とガバナンスの操作

Journey Optimizerはデータガバナンスと同意ポリシーをプラットフォームレベルで適用しますが、統合ではそれらを尊重する必要があります。 顧客がマーケティングコミュニケーションをオプトアウトした場合、またはデータ使用ラベルがフィールドの使用方法を制限した場合は、UIのブロックアクションだけでなく、カスタムアクションとデータセット参照を通じてこれらのルールを伝播する必要があります。

  • データガバナンス:カスタムアクションにデータ使用ポリシーを適用します。 詳しくは、データガバナンスを参照してください。
  • 同意管理:実装で顧客の同意環境設定を処理します。 詳しくは、同意を参照してください。

最適化とベストプラクティス

Journey Optimizerの本番環境では、数百万のイベントと1秒間に数千ものジャーニー実行が定期的に処理されます。 これらのリソースは、期待通りに統合を調整するのに役立ちます。たとえば、レート制限を設定する前にレート制限を把握し、ジャーニーの設計で陥りやすい落とし穴を回避して、プロファイルをサイレントにドロップしたり、不透明に失敗するのではなく適切に低下するエラー処理を構築したりすることが重要です。

Journey Optimizer REST APIの呼び出し rest-apis

SDKやイベントストリーミングを実装するだけでなく、独自のシステムからプログラムでJourney Optimizerを実行することもできます。 完全なAPI リファレンス、OpenAPI仕様、およびコードサンプルは、Journey Optimizer デベロッパーポータル ​にあります。

NOTE
すべての統合では、OAuth サーバー間認証を使用する必要があります。JWT メソッドは非推奨です。 認証の設定

API トリガーによるキャンペーンの実行 api-triggered

Interactive Message Execution REST APIを使用して、外部システムからトランザクションメッセージまたはマーケティングメッセージをトリガーします。 エンドポイントを呼び出す前に:

  • エンドポイントが呼び出しを受け入れる前に、キャンペーンを​ アクティブ化 ​する必要があります。
  • 呼び出しのタイムアウトは​ 60秒 ​です。内部再試行は予期しないタイムアウトを処理します。
  • キャンペーンの開始日/終了日が設定されている場合、それらの日付以外のAPI呼び出しは失敗します。
  • ペイロードを作成するには、Journey Optimizer UIのライブキャンペーンの​cURL リクエスト セクションから、生成されたサンプル cURL リクエストを取得します。このリクエストには、そのキャンペーンのすべてのパーソナライゼーション変数が含まれます。
  • 標準キャンペーンと​ ハイスループットキャンペーン ​では、異なるエンドポイントを使用しています。

API リファレンス ​​ コードサンプル ​API トリガーキャンペーンの操作

外部エンドポイントのキャッピングとスロットル capping-throttling

ジャーニーがカスタムアクションまたはデータソースを介して外部システムを呼び出す場合、Capping APIとThrottling APIは、これらのシステムを過負荷から保護します。 キャッピングは、設定された制限を超える呼び出しを拒否します。スロットルキューは最大6時間待機します(実稼動サンドボックス、カスタムアクションのみ)。

Capping API リファレンス ​Capping APIの操作​ スロットル APIの操作

その他のREST API more-rest-apis

Journey Optimizerでは、メッセージとキャッピングの枠を超えて、抑制管理、コンテンツテンプレート、キャンペーン検索、プルーフ、キャンペーン実行のオーケストレーションなど、REST エンドポイントを活用できます。 データプル後にアドレスを一括抑制したり、外部コンテンツパイプラインからテンプレートを同期したりするなど、UIで手作業が必要な操作を自動化する必要がある場合に使用します。

連携の強化
API リファレンス
電子メールアドレスまたはドメインをプログラムで送信から除外
抑制API抑制リストを管理
監査または外部同期用にジャーニーのメタデータを取得
ジャーニー API
外部パイプラインからのコンテンツテンプレートとフラグメントの作成と管理
​ コンテンツ API​ テンプレート ​​ フラグメント ​
アクションキャンペーンの取得とフィルタリング
​ キャンペーン API
施策をプレビューし、プログラムにより校正を送信する
​ シミュレーション API
データセットとトリガーを検証し、キャンペーンを実行
​ データセットの検証トリガー​ データセットの有効化

その他のリソース additional-resources

  • Developer ConsoleAdobe Developer Console にアクセスして統合を作成し、API 資格情報を管理します。
  • サンプルコードGitHub のサンプル実装を探索します。
  • チュートリアルビデオExperience League の実践的なチュートリアルを通じて学びます。
  • 開発者コミュニティ:アドビコミュニティフォーラムで、他の開発者とつながり、サポートを受けることができます。

役割をまたいだ共同作業 next-steps

実装作業は、次の他のチームメンバーと連携します。

データエンジニアとの連携

データとイベントの設定について​ データエンジニア ​と共同作業を行います。 ユーザーの行動に反応するジャーニーは、送信するイベントによって異なります。データエンジニアがスキーマを定義し、スキーマを生成するコードを実装します。

  • 実装に必要なXDM スキーマ ​とイベント構造を取得します
  • 送信する必要があるイベントと必要なペイロード形式について説明します。​ ジャーニーイベントの操作を参照してください。
  • 各イベントペイロードで必須フィールドとオプションのフィールド、および期待されるフィールドが見つからないか形式が正しくない場合にジャーニーで何が起こるかを確認します。​ スキーマ要件を参照してください。
  • Adobe Experience Platform Assuranceを使用して、イベント配信とデータ取り込みをテストします
管理者との連携

アクセスとチャネルの設定について、管理者と共同作業を行います。 ジャーニーは、管理者が設定したチャネルを通じてのみユーザーにリーチできます。早期に調整することで、SDKの作業と設定を同期させることができます。

マーケターとの連携

ジャーニーの設計とテストに関して​ マーケターと共同作業を行います。 マーケターは、送信するイベントと公開するサーフェスに完全に依存するジャーニーとコンテンツを構築します。近ければ近いほど、ジャーニーはより迅速に開始されます。

実装の開始

作成を開始する準備は整っていますか? 上記の節から最初の実装領域を選択します。

  1. モバイルアプリですか? Mobile SDK 統合から開始します
  2. Web サイトですか? Web SDK 設定から開始します
  3. API 統合ですか? API の操作にジャンプします
  4. カスタムシステムですか? カスタムアクションを確認します

各節には、実装をガイドする詳細な技術ドキュメント、コードサンプル、チュートリアルへのリンクが含まれています。

その他のロールガイド other-role-guides

役割と責任の概要に戻る・ に戻る開始

recommendation-more-help
journey-optimizer-help