既知顧客のパーソナライゼーション

購入履歴、CRM データ、ユーザーについて収集されたその他のデータなど、既知のユーザーデータにもとづいて、コンテンツをパーソナライズする方法を説明します。

既知顧客のパーソナライゼーションは、収集したデータにもとづいて、パーソナライズされた顧客体験を提供するのに役立ちます。 ユーザーデータは、別のシステム​またはweb サイト、モバイルアプリ、コールセンターなどのチャネルを通じて収集された可能性があります。この​ データを結合して包括的なユーザープロファイル ​を作成し、エクスペリエンスのパーソナライズに使用します。

一般的なシナリオは次のとおりです。

  • コンテンツのパーソナライゼーション:ユーザーのプロファイルデータに基づいてパーソナライズされたエクスペリエンスを表示します。 例えば、オーディエンスの購買履歴にもとづいて、パーソナライズされた「ヒーロー」をホームページに表示できます。
  • アップセルとクロスセル:ユーザーの購入履歴に基づいて、パーソナライズされたアップセルとクロスセルのレコメンデーションを表示します。 例えば、オーディエンスの購入履歴に対して、パーソナライズされたアップセルのレコメンデーションを表示できます。
  • ロイヤルティプログラム:ユーザーの購入履歴に基づいて、パーソナライズされたロイヤルティプログラム特典を表示します。 例えば、オーディエンスの購入履歴に対して、パーソナライズされたロイヤルティプログラムの特典を表示できます。

既知のユーザーをパーソナライズするためのユースケースは、企業ごとに異なるかもしれません。 上記は、いくつかの例です。

使用例

このチュートリアルでは、​ サンプル WKND サイト ​を使用して、Ski​のアドベンチャーを購入した​ ログインしたユーザー ​が、WKND ホームページ​でパーソナライズされたヒーローを見る方法を説明します。

ヒーロー体験では、スキー​のアドベンチャーを購入したユーザーに対して、必須のスキー用具を​ アップセル ​しようとしています。 Ski アドベンチャーを購入していないユーザーには、デフォルトのヒーローコンテンツが表示されます。 このように、ヒーローエクスペリエンスは、購入履歴とログイン状況に基づいてユーザーにパーソナライズされます。 このパーソナライゼーションを有効にするには、様々なシステムからのデータをつなぎ合わせて包括的な顧客プロファイルを作成し、パーソナライゼーション活動に使用します。

既知のユーザーPersonalization

システムをまたいだ利用者データ管理

デモの目的では、WKND ユーザーデータが次のシステムにあると仮定します。 各システムにはさまざまな種類のデータが保存されており、それらは次のふたつのカテゴリーに分類できます。

  • 行動データ: デジタルチャネル(ページビュー、クリック数、サイトナビゲーション、ログインステータス、閲覧パターン)でのユーザーのインタラクションやアクティビティを取得します
  • トランザクションデータ:完了したビジネス取引と顧客プロファイル情報(購入、注文履歴、プロファイル詳細、環境設定)を記録します
システム
目的
どのようなデータが保存されますか?
データタイプ
AEM
Content Management System (CMS)、アドベンチャーのリストと予約、ログイン機能
ユーザーインタラクション:ページビュー、ログインステータス、サイトナビゲーション ユーザーID、名前、メールアドレスなどの最小限のユーザーID。
行動データ
他社システム
ユーザープロファイルと購入トランザクションレコードを包括的な記録システムとして。
完全な顧客プロファイル:ユーザーID、名前、住所、電話番号、購入履歴、注文詳細、環境設定。
取引データ

他のシステムには、Order Management System (OMS)、Customer Relationship Management (CRM)システム、Customer Data Management (MDM)システム、またはトランザクションマスターを保存するその他のシステムがあります。

また、WKND サイトには、ユーザーが​ Adventures ​を購入/予約できるユーザーインターフェイス (UI)があることも前提としています。 AEMと他のシステムを統合することで、アドベンチャーの購入データを保存できます。 また、購入前または購入中に、ユーザーはWKND サイトにアカウントを作成しました。

論理ダイアグラムには、WKND サイトに対するユーザーの操作と、行動データとトランザクションデータが収集され、Experience Platformに入力される方法が示されます。

既知のユーザーPersonalization

これは、既知のユーザーのパーソナライゼーションの概念を示すために、過度に簡素化されたバージョンです。 現実世界のシナリオでは、行動データとトランザクションデータが収集され、保存される複数のシステムを備えている場合があります。

重要ポイント

  • 分散データストレージ:ユーザーデータは複数のシステムに保存されます。AEMでは、ログイン機能のために最小限のユーザーデータ(ユーザーID、名前、電子メール)が保存されます。その他のシステム(OMS、CRM、MDM)では、完全なユーザープロファイルと購入履歴などのトランザクションデータが保持されます。
  • IDの合成: システムは、様々なプラットフォームやチャネルをまたいでユーザーを一意に識別する共通の識別子(WKND ユーザーID - wkndUserId)を使用してリンクされます。
  • プロファイル作成を完了:目的は、これらの分散システムからユーザーデータをつなぎ合わせて統合された顧客プロファイルを作成し、それを使用してパーソナライズされたエクスペリエンスを提供することです。

ユースケースによっては、システムやデータストレージが異なるかもしれません。 様々なプラットフォームやチャネルをまたいで利用者を一意に識別する共通の識別子を特定することが重要です。

前提条件

既知のユーザーのパーソナライゼーションのユースケースを進める前に、次の手順を完了していることを確認してください。

  • Adobe Targetとの統合: AEMでパーソナライズされたコンテンツを一元的に作成および管理し、Adobe Targetでオファーとしてアクティブ化できます。
  • Adobe Experience Platformにタグを統合:AEM コードを再デプロイすることなく、パーソナライゼーションとデータ収集のためにJavaScriptを管理およびデプロイできます。

スキーマ、データセット、データストリーム、オーディエンス、ID、プロファイルなど、Adobe Experience Cloud Identity Service (ECID) ​およびAdobe Experience Platformの概念についても理解しておいてください。

このチュートリアルでは、Adobe Experience PlatformでIDをつなぎ合わせて顧客プロファイルを作成する方法を説明します。 つまり、行動データと取引データを組み合わせて、包括的な顧客プロファイルを構築できます。

手順の概要

既知のユーザーによるパーソナライゼーションの設定プロセスには、Adobe Experience Platform、AEM、Adobe Targetの各ステップが含まれます。

  1. Adobe Experience Platform:

    1. WKND ユーザーID (wkndUserId)の​ ID名前空間 ​を作成します
    2. 2つのXDM (Experience Data Model)スキーマを作成して設定します。これは、データの整理および検証方法を定義する標準化されたデータ構造で、行動データ用とトランザクションデータ用のどちらか一方です
    3. 行動データ用とトランザクションデータ用の2つのデータセットを作成して設定します
    4. データストリームの作成と設定
    5. タグプロパティの作成と設定
    6. プロファイルの結合ポリシーの設定
    7. (V2)Adobe Target Destinationのセットアップ
  2. AEM:

    1. WKND サイトログイン機能を強化して、ブラウザーのセッションストレージにユーザーIDを保存します。
    2. AEM ページへのタグプロパティの統合と挿入
    3. AEM ページでのデータ収集の確認
    4. Adobe Target を統合
    5. パーソナライズされたオファーの作成
  3. Adobe Experience Platform:

    1. 行動データとプロファイル作成の検証
    2. トランザクションデータの取り込み
    3. 行動データとトランザクションデータの連携の検証
    4. オーディエンスの作成と設定
    5. Adobe Targetに対するオーディエンスのアクティブ化
  4. Adobe Target:

    1. オーディエンスとオファーの検証
    2. アクティビティの作成と設定
  5. AEM ページでの既知のユーザーパーソナライゼーションの実装を確認する

Adobe Experience Platform(AEP)の様々なソリューションは、システム間でユーザーデータを収集、管理、特定、結合するために使用されます。 結合されたユーザーデータを使用して、オーディエンスを作成し、Adobe Targetでアクティベートします。 Adobe Targetのアクティビティを使用すると、オーディエンスの条件に一致する利用者にパーソナライズされたエクスペリエンスが配信されます。

Adobe Experience Platformの設定

包括的な顧客プロファイルを作成するには、行動データ(ページビューデータ)とトランザクションデータ(WKND Adventure購入)の両方を収集して保存する必要があります。 行動データはTags プロパティを使用して収集され、トランザクションデータはWKND Adventure購入システムを使用して収集されます。

取引データはAdobe Experience Platformに取り込まれ、行動データと結合されて、包括的な顧客プロファイルを構築します。

この例では、Ski アドベンチャーを購入したユーザーを分類するには、アドベンチャー購入データと共にページビューデータが必要です。 データは、システム間で共通の識別子であるWKND ユーザーID (wkndUserId)を使用して結合されます。

まず、Adobe Experience Platformにログインして、データを収集し、結合するために必要なコンポーネントを設定します。

Adobe Experience Cloudにログインし、「Experience Platform」に移動して、「アプリ切り替え」または「クイックアクセス」セクションから移動します。

Experience Platform

ID名前空間の作成

ID名前空間は、IDにコンテキストを提供する論理コンテナであり、Experience PlatformがどのID システム(電子メール、CRM ID、ロイヤルティ IDなど)を使用しているかを理解するのに役立ちます。 2つ以上の個別のプロファイルデータを関連付けるには、ID名前空間が使用されます。 これらの個別のプロファイルデータの両方が属性に対して同じ値を持ち、同じ名前空間を共有する場合、これらは結合されます。 属性をID ステッチ属性として認定するには、属性が同じ名前空間である必要があります。

この例では、WKND ユーザーID (wkndUserId)は、行動データとトランザクションデータで共通の識別子です。 この共通IDを使用して、データをつなぎ合わせ、包括的な顧客プロファイルを作成します。

WKND ユーザーID (wkndUserId)のID名前空間を作成します。

  • Adobe Experience Platform​で、左側のナビゲーションから​ ID ​をクリックします。 次に、右上の「ID名前空間を作成」ボタンをクリックします。

    ID名前空間の作成

  • ID名前空間を作成 ダイアログで、次のように入力します。

    • 表示名: WKND ユーザーID
    • 説明: ログイン WKND ユーザーのユーザーIDまたはユーザー名
    • タイプを選択:個々のクロスデバイス ID

    作成」をクリックして、ID名前空間を作成します。

    ID名前空間の作成

スキーマの作成

スキーマは、Adobe Experience Platformで収集するデータの構造とフォーマットを定義します。 データの一貫性を確保し、標準化されたデータフィールドにもとづいて、有意義なオーディエンスを構築できます。 既知のユーザーのパーソナライゼーションには、行動データ用とトランザクションデータ用の2つのスキーマが必要です。

行動データスキーマ

まず、スキーマを作成して、ページビューイベントやユーザーインタラクションなどの行動データを収集します。

  • Adobe Experience Platform​で、左側のナビゲーションから​ スキーマ ​をクリックし、右上の「スキーマを作成」ボタンをクリックします。 次に、手動 オプションを選択し、選択 ボタンをクリックします。

    ​ スキーマの作成

  • スキーマを作成 ウィザードで、スキーマの詳細 ステップの場合、エクスペリエンスイベント オプション(ページビュー、クリック、ユーザーインタラクションなどの時系列データの場合)を選択し、次へ​をクリックします。

    ​ スキーマの作成ウィザード ​

  • 名前とレビュー​の手順では、次のように入力します。

    • スキーマ表示名: WKND-RDE-Known-User-Personalization-Behavioral
    • クラスが選択されました: XDM ExperienceEvent

    ​ スキーマの詳細

  • 次のようにスキーマを更新します。

    • フィールドグループを追加: AEP Web SDK ExperienceEvent
    • プロファイル:有効にする

    保存」をクリックして、スキーマを作成します。

    ​ スキーマの更新

  • ユーザーがログイン(認証済み)または匿名かどうかを確認するには、スキーマにカスタムフィールドを追加します。 このユースケースでは、目標は、Ski アドベンチャーを購入した既知のユーザー向けにコンテンツをパーソナライズすることです。 したがって、ユーザーがログイン(認証済み)または匿名であるかどうかを特定することが重要です。

    • スキーマ名の横にある「+」ボタンをクリックします。

    • フィールドプロパティ」セクションに、次のように入力します。

      • フィールド名: wkndLoginStatus
      • 表示名: WKND ログインステータス
      • タイプ:文字列
      • 割り当て先: フィールドグループ > wknd-user-details

      下にスクロールして「適用」ボタンをクリックします。

      ​ カスタムフィールドを追加

  • 最終的な行動データスキーマは次のようになります。

    最終スキーマ ​

トランザクションデータスキーマ

続いて、WKND Adventureの購入などのトランザクションデータを収集するためのスキーマを作成します。

  • スキーマを作成 ウィザードで、スキーマの詳細​の手順で、個人プロファイル オプション(顧客属性、環境設定、購入履歴などのレコードベースのデータの場合)を選択し、次へ​をクリックします。

    ​ スキーマの作成ウィザード ​

  • 名前とレビュー​の手順では、次のように入力します。

    • スキーマ表示名: WKND-RDE-Known-User-Personalization-Transactional
    • クラスが選択されました: XDM個人プロファイル

    ​ スキーマの詳細

  • ユーザーのWKND Adventure購入詳細を保存するには、まず購入の識別子として機能するカスタムフィールドを追加します。 WKND ユーザーID (wkndUserId)は、システム全体で共通の識別子です。

    • スキーマ名の横にある「+」ボタンをクリックします。

    • フィールドプロパティ」セクションに、次のように入力します。

      • フィールド名: wkndUserId
      • 表示名: WKND ユーザーID
      • タイプ:文字列
      • 割り当て先: フィールドグループ > wknd-user-purchase-details

    ​ カスタムフィールドを追加

    • 下にスクロールして、ID​をチェックし、プライマリ ID (異なるソースからのデータを統合プロファイルに結合するために使用される主なID)をチェックし、ID名前空間 ドロップダウンで「WKND User Id」を選択します。 最後に、適用 ボタンをクリックします。

    ​ カスタムフィールドを追加

  • カスタムプライマリ ID フィールドを追加すると、スキーマは次のようになります。

    最終スキーマ ​

  • 同様に、次のフィールドを追加して、追加のユーザーとアドベンチャーの購入の詳細を保存します。

    table 0-row-4 1-row-4 2-row-4 3-row-4 4-row-4 5-row-4 6-row-4 7-row-4 8-row-4 9-row-4 10-row-4 11-row-4 12-row-4 13-row-4 14-row-4 15-row-4 16-row-4 17-row-4
    フィールド名 表示名 タイプ 割り当て先
    adventurePurchased Adventure Purchased 文字列 フィールドグループ > wknd-user-purchase-details
    adventurePurchaseAmount アドベンチャー購入金額 倍精度浮動小数点 フィールドグループ > wknd-user-purchase-details
    adventurePurchaseQuantity アドベンチャー購入数量 整数 フィールドグループ > wknd-user-purchase-details
    adventurePurchaseDate アドベンチャー購入日 日付 フィールドグループ > wknd-user-purchase-details
    adventureStartDate アドベンチャー開始日 日付 フィールドグループ > wknd-user-purchase-details
    adventureEndDate アドベンチャー終了日 日付 フィールドグループ > wknd-user-purchase-details
    firstName 名前(名) 文字列 フィールドグループ > wknd-user-purchase-details
    lastName 文字列 フィールドグループ > wknd-user-purchase-details
    メール メール メールアドレス フィールドグループ > wknd-user-purchase-details
    電話番号 電話 オブジェクト フィールドグループ > wknd-user-purchase-details
    性別 性別 文字列 フィールドグループ > wknd-user-purchase-details
    age 年齢 整数 フィールドグループ > wknd-user-purchase-details
    住所 アドレス 文字列 フィールドグループ > wknd-user-purchase-details
    city 市区町村 文字列 フィールドグループ > wknd-user-purchase-details
    state 状態 文字列 フィールドグループ > wknd-user-purchase-details
    文字列 フィールドグループ > wknd-user-purchase-details
    zipCode 郵便番号 文字列 フィールドグループ > wknd-user-purchase-details

    追加フィールド ​

  • スキーマのプロファイルを有効にします。

    ​ プロファイルを有効にする

これで、行動データとトランザクションデータの両方のスキーマを作成しました。

データセットの作成と設定

データセットは、特定のスキーマに従うデータのコンテナです。 この例では、行動データ用とトランザクションデータ用の2つのデータセットを作成します。

行動データデータセット

  • Adobe Experience Platform​で、左側のナビゲーションから「データセット」をクリックし、右上の「データセットを作成」ボタンをクリックします。 次に、スキーマベース オプションを選択し、次へ​をクリックします。

    ​ データセットを作成

  • Select schema ステップで、WKND-RDE-Known-User-Personalization-Behavioral スキーマを選択し、Next​をクリックします。

    ​ スキーマを選択

  • データセットの設定​手順では、次のように入力します。

    • Name: WKND-RDE-Known-User-Personalization-Behavioral
    • 説明: ユーザーログイン状態のページビューなどの行動データのデータセット。

    ​ データセットの設定

    完了」をクリックして、データセットを作成します。

  • プロファイルのデータセットを有効にするには、プロファイル スイッチを切り替えます。

    ​ プロファイルを有効にする

トランザクションデータデータセット

  • トランザクションデータデータセットについても同じ手順を繰り返します。 唯一の違いは、スキーマとデータセット名だけです。

    • Schema: WKND-RDE-Known-User-Personalization-Transactional
    • データセット: WKND-RDE-Known-User-Personalization-Transactional
    • 説明: WKND Adventureの購入などのトランザクションデータのデータセット。
    • プロファイル:有効にする

    最終的なトランザクションデータデータセットは次のようになります。

    最終的なトランザクションデータデータセット ​

両方のデータセットを使用して、web サイトからExperience Platformへのデータフローを有効にするデータストリームを作成できるようになりました。

データストリームの作成と設定

データストリームとは、Web SDKを介してweb サイトからAdobe Experience Platformにデータがどのように流れるのかを定義する設定です。 web サイトとプラットフォーム間のBridgeとして機能し、データが適切にフォーマットされ、正しいデータセットにルーティングされるようにします。 既知のユーザーにパーソナライズするには、Edge SegmentationやPersonalization Destinationsなどのサービスを有効にします。

Web SDKを介して​行動 (トランザクションではない)データをExperience Platformに送信するデータストリームを作成しましょう。

  • Adobe Experience Platform​で、左側のナビゲーションから​ データストリーム ​をクリックし、データストリームを作成​をクリックします。

    ​ データストリームの作成

  • 新規データストリーム ステップで、次のように入力します。

    • Name: WKND-RDE-Known-User-Personalization-Behavioral
    • 説明:Experience Platformに行動データを送信するデータストリーム
    • マッピングスキーマ: WKND-RDE-Known-User-Personalization-Behavioral

    ​ データストリームの設定

    保存」をクリックして、データストリームを作成します。

  • データストリームを作成したら、サービスを追加​をクリックします。

    ​ サービスを追加

  • サービスを追加」ステップで、ドロップダウンから「Adobe Experience Platform」を選択し、次のように入力します。

    • イベントデータセット: WKND-RDE-Known-User-Personalization-Behavioral
    • プロファイルデータセット: WKND-RDE-Known-User-Personalization-Behavioral
    • Offer Decisioning:有効にする(Adobe Targetでは、パーソナライズされたオファーをリアルタイムでリクエストおよび配信できます)
    • Edge Segmentation:有効にする(即座にパーソナライズするためにエッジ ネットワークでリアルタイムにオーディエンスを評価します)
    • Personalization Destinations:有効にする(Adobe Targetなどのパーソナライゼーションツールを使用したオーディエンスの共有を可能にする)

    保存」をクリックして、サービスを追加します。

    Adobe Experience Platform サービスの設定

  • Add Service ステップで、ドロップダウンから​ Adobe Target ​を選択し、Target Environment ID​を入力します。Target Environment IDは、Administration > Environments​の下のAdobe Targetで見つけることができます。「保存」をクリックして、サービスを追加します。
    Adobe Target サービスの設定

  • 最終的なデータストリームは次のようになります。

    最終データストリーム ​

これで、Web SDKを介してExperience Platformに行動データを送信するようにデータストリームが設定されました。

トランザクション データは、バッチ取り込みを使用してExperience Platformに取り込まれます(リアルタイムではなく、スケジュールされた間隔で大規模なデータセットをアップロードする方法)。 WKND Adventureの購入データは、WKND サイトを使用して収集され、他のシステム(OMS、CRM、MDMなど)に保存されます。 その後、バッチ取り込みを使用してデータをExperience Platformに取り込みます。

また、このチュートリアルでは取り上げられていない、web サイトからExperience Platformに直接データを取り込むこともできます。 ユースケースでは、システムをまたいでユーザーデータをつなぎ合わせて、包括的な顧客プロファイルを構築するプロセスを浮き彫りにします。

タグプロパティの作成と設定

Tags プロパティは、web サイトからデータを収集し、Adobe Experience Platformに送信するJavaScript コードのコンテナです。 ユーザーのインタラクションとページビューを収集するデータ収集レイヤーとして機能します。 既知のユーザーパーソナライゼーションの場合は、ページビューデータ(ページ名、URL、サイトセクション、ホスト名など)と共に、ユーザーログインステータスとWKND ユーザーIDも収集されます。 WKND ユーザーID (wkndUserId)は、ID マップオブジェクトの一部として送信されます。

ユーザーがWKND サイトにアクセスしたときに、ページビューデータとユーザーログイン状態+ ユーザーID (ログインしている場合)をキャプチャするTags プロパティを作成してみましょう。

Adobe タグの統合手順で作成したTags プロパティを更新できます。 ただし、シンプルにするために、新しいTags プロパティが作成されます。

Create Tags プロパティ

  • Adobe Experience Platform​で、左側のナビゲーションから​ タグ ​をクリックし、新規プロパティ ボタンをクリックします。

    新しいタグ プロパティを作成

  • プロパティを作成」ダイアログで、次のように入力します。

    • プロパティ名: WKND-RDE-Known-User-Personalization
    • プロパティタイプ: Web​を選択
    • ドメイン: プロパティをデプロイするドメイン (例:adobeaemcloud.com

    保存」をクリックして、プロパティを作成します。

    新しいタグ プロパティを作成

  • 新しいプロパティを開き、左側のナビゲーションから​ 拡張機能 ​をクリックし、カタログ タブをクリックします。Web SDK​を検索し、「インストール」ボタンをクリックします。
    Web SDK拡張機能のインストール ​

  • 拡張機能のインストール ダイアログで、前に作成した​ データストリーム ​を選択し、保存​をクリックします。
    ​ データストリームを選択

データ要素の追加

データ要素とは、web サイトから特定のデータポイントを取得し、ルールやその他のタグ設定で使用できるようにする変数です。 データ収集の構成要素として機能し、顧客とのやり取りやページビューから有意義な情報を抽出できます。 既知のユーザーのパーソナライゼーションを実現するには、ホスト名、サイトセクション、ページ名などのページの詳細を取得して、オーディエンスセグメントを作成する必要があります。 それに加えて、ユーザーログインステータスとWKND ユーザーID (ログインしている場合)をキャプチャする必要があります。

次のデータ要素を作成して、重要なページの詳細を取得します。

  • 左側のナビゲーションから「データ要素」をクリックし、「新しいデータ要素を作成」ボタンをクリックします。
    新しいデータ要素を作成

  • 新しいデータ要素を作成 ダイアログで、次のように入力します。

    • 名前: ホスト名

    • 拡張機能: Core​を選択

    • データ要素タイプ: カスタムコード​を選択

    • エディター ボタンを開き、次のコードスニペットを入力します。

      code language-javascript
      if(window && window.location && window.location.hostname) {
          return window.location.hostname;
      }
      

    ​ ホスト名データ要素

  • 同様に、次のデータ要素を作成します。

    • 名前: サイト セクション

    • 拡張機能: Core​を選択

    • データ要素タイプ: カスタムコード​を選択

    • エディター ボタンを開き、次のコードスニペットを入力します。

      code language-javascript
      if(event && event.component && event.component.hasOwnProperty('repo:path')) {
          let pagePath = event.component['repo:path'];
      
          let siteSection = '';
      
          //Check of html String in URL.
          if (pagePath.indexOf('.html') > -1) {
          siteSection = pagePath.substring(0, pagePath.lastIndexOf('.html'));
      
          //replace slash with colon
          siteSection = siteSection.replaceAll('/', ':');
      
          //remove `:content`
          siteSection = siteSection.replaceAll(':content:','');
          }
      
          return siteSection
      }
      

    ​ サイトセクションデータ要素

    • 名前: ページ名

    • 拡張機能: Core​を選択

    • データ要素タイプ: カスタムコード​を選択

    • エディター ボタンを開き、次のコードスニペットを入力します。

      code language-javascript
      if(event && event.component && event.component.hasOwnProperty('dc:title')) {
          // return value of 'dc:title' from the data layer Page object, which is propogated via 'cmp:show' event
          return event.component['dc:title'];
      }
      

    ​ ページ名データ要素

    • 名前: WKND ユーザーID

    • 拡張機能: Core​を選択

    • データ要素タイプ: カスタムコード​を選択

    • エディター ボタンを開き、次のコードスニペットを入力します。

      code language-javascript
      // Data element for WKND User ID
      if(event && event.user && event.user.userId) {
          console.log('UserID:', event.user.userId);
          return event.user.userId;
      } else {
          console.log('UserID:');
          return "";
      }
      

    WKND ユーザーID データ要素

    • 名前: WKND ユーザーステータス

    • 拡張機能: Core​を選択

    • データ要素タイプ: カスタムコード​を選択

    • エディター ボタンを開き、次のコードスニペットを入力します。

      code language-javascript
      // Data element for user login status
      if(event && event.user && event.user.status) {
          console.log('User status:', event.user.status);
          return event.user.status;
      } else {
          console.log('User status:anonymous');
          return 'anonymous';
      }
      

    WKND ログインステータス データ要素

  • 次に、ID マップ​型のデータ要素を作成します。 ID マップは、複数のユーザーIDを保存し、リンクさせる標準XDM構造で、システムをまたいでIDをつなぎ合わせることができます。 このデータ要素は、WKND ユーザーID (ログインしている場合)をID マップオブジェクトの一部として保存するために使用されます。

    • Name: IdentityMap-WKND ユーザーID
    • 拡張機能: Adobe Experience Platform Web SDK​を選択
    • データ要素タイプ: ID マップ​を選択

    右側のパネルには,

    • 名前空間: wkndUserId​を選択
    • ID: WKND ユーザーID データ要素を選択
    • 認証状態: 認証済み​を選択
    • プライマリ: true​を選択

    保存」をクリックして、データ要素を作成します。

    ID マップデータ要素

  • 次に、変数​型のデータ要素を作成します。 このデータ要素には、Experience Platformに送信する前に、ページの詳細が入力されます。

    • 名前: XDM変数ページビュー
    • 拡張機能: Adobe Experience Platform Web SDK​を選択
    • データ要素タイプ: 変数​を選択

    右側のパネルには,

    • サンドボックス:サンドボックスを選択します
    • Schema: WKND-RDE-Known-User-Personalization スキーマを選択します

    保存」をクリックして、データ要素を作成します。

    XDM-Variable Pageview データ要素

    • 最終的なデータ要素は次のようになります。

      最終データ要素

ルールを追加

データを収集し、Adobe Experience Platformに送信するタイミングと方法は、ルールによって定義されます。 web サイトで特定のイベントが発生したときの動作を決定するロジックレイヤーとして機能します。 既知のユーザーのパーソナライゼーションの場合は、ユーザーがWKND サイトにアクセスしたときに、ページビューデータとユーザーログイン状態+ ユーザーID (ログインしている場合)を取得するルールを作成します。

Experience Platformに送信する前に、他のデータ要素を使用して​XDM-Variable Pageview データ要素を設定するルールを作成します。 このルールは、ユーザーがWKND web サイトを閲覧したときにトリガーされます。

  • 左側のナビゲーションから「ルール」をクリックし、「新しいルールを作成」ボタンをクリックします。
    新しいルールを作成

  • 新しいルールを作成」ダイアログで、次のように入力します。

    • 名前:すべてのページ – 読み込み中 – ユーザーデータあり

    • イベント セクションで、追加​をクリックして、イベント設定 ウィザードを開きます。

      • 拡張機能: Core​を選択
      • イベントタイプ: カスタムコード​を選択
      • エディター ボタンを開き、次のコードスニペットを入力します。
      code language-javascript
      var pageShownEventHandler = function(evt) {
          // defensive coding to avoid a null pointer exception
          if(evt.hasOwnProperty("eventInfo") && evt.eventInfo.hasOwnProperty("path")) {
              //trigger Launch Rule and pass event
              console.debug("cmp:show event: " + evt.eventInfo.path);
      
              // Get user data from session storage
              var userData = getUserDataFromSession();
      
              var event = {
                  //include the path of the component that triggered the event
                  path: evt.eventInfo.path,
                  //get the state of the component that triggered the event
                  component: window.adobeDataLayer.getState(evt.eventInfo.path),
                  //include user data in the event
                  user: userData
              };
      
              //Trigger the Launch Rule, passing in the new 'event' object
              trigger(event);
          }
      }
      
      /**
       * Get user data from session storage
      */
      function getUserDataFromSession() {
          var userData = {
              userId: null,
              status: 'anonymous'
          };
      
          try {
              var cachedUserState = sessionStorage.getItem('wknd_user_state');
      
              if (cachedUserState) {
                  var userState = JSON.parse(cachedUserState);
                  var userInfo = userState.data;
      
                  // Validate user data structure before transformation
                  if (userInfo && typeof userInfo === 'object' && userInfo.hasOwnProperty('authorizableId')) {
                      // Transform AEM user data to minimal AEP format
                      userData = {
                          userId: userInfo.authorizableId !== 'anonymous' ? userInfo.authorizableId : null,
                          status: userInfo.authorizableId === 'anonymous' ? 'anonymous' : 'authenticated',
                      };
      
                      //console.log('User details from session storage:', userData.username || 'Anonymous');
                  } else {
                      console.warn('Invalid user data structure in session storage');
                      console.log('Using anonymous user data');
                  }
              } else {
                  console.log('No user data in session storage, using anonymous');
              }
          } catch (e) {
              console.warn('Failed to read user data from session storage:', e);
              console.log('Using anonymous user data');
          }
      
          return userData;
      }
      
      //set the namespace to avoid a potential race condition
      window.adobeDataLayer = window.adobeDataLayer || [];
      
      //push the event listener for cmp:show into the data layer
      window.adobeDataLayer.push(function (dl) {
          //add event listener for 'cmp:show' and callback to the 'pageShownEventHandler' function
          dl.addEventListener("cmp:show", pageShownEventHandler);
      });
      

      getUserDataFromSession関数は、セッションストレージからユーザーログインステータスとWKND ユーザーID (ログインしている場合)を取得するために使用されます。 AEM コードは、セッションストレージにユーザーログインステータスとWKND ユーザーIDを入力する責任があります。 AEM固有の手順では、WKND サイトログイン機能を強化して、ブラウザーのセッションストレージにユーザーIDを保存しました。

    • 条件 セクションで、追加​をクリックして、条件設定 ウィザードを開きます。

      • ロジックタイプ: 標準​を選択
      • 拡張機能: Core​を選択
      • 条件タイプ: カスタムコード​を選択
      • エディター ボタンを開き、次のコードスニペットを入力します。
      code language-javascript
      if(event && event.component && event.component.hasOwnProperty('@type') && event.component.hasOwnProperty('xdm:template')) {
          console.log('The cmp:show event is from PAGE HANDLE IT');
          return true;
      } else {
          console.log('The event is NOT from PAGE - IGNORE IT');
          return false;
      }
      
    • アクション セクションで、追加​をクリックして、アクション設定 ウィザードを開きます。

      • 拡張機能: Adobe Experience Platform Web SDK​を選択

      • アクションの種類: 変数の更新​を選択

      • XDM フィールドをデータ要素にマッピングします。

        table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2
        XDM フィールド データ要素
        web.webPageDetails.name ページ名
        web.webPageDetails.server ホスト名
        web.webPageDetails.siteSection サイトセクション
        web.webPageDetails.value 1
        identityMap IdentityMap-WKND ユーザーID
        _$YOUR_NAMESPACE$.wkndLoginStatus WKND ユーザーステータス

      変数アクションの更新

      • 変更を保持」をクリックして、アクション設定を保存します。
    • もう一度、「追加」をクリックして別のアクションを追加し、アクション設定ウィザードを開きます。

      • 拡張機能: Adobe Experience Platform Web SDK​を選択
      • アクションの種類: イベントの送信​を選択
      • 右側のパネルの​データ セクションで、XDM-Variable Pageview データ要素を​Web Webpagedetails Page Views タイプにマッピングします。

      ​ イベントアクションの送信

    • また、右側のパネルの​Personalization セクションで、「視覚的なパーソナライゼーションの決定をレンダリング」オプションをオンにします。 次に、変更を保持​をクリックしてアクションを保存します。

      Personalization セクション ​

  • ルールは次のようになります。

    最終ルール ​

このルールは、ページビューデータとユーザーログインステータス + ユーザーID (ログインしている場合)をExperience Platformに送信するように設定されました。

上記のルール作成ステップにはかなりの数の詳細があるため、ルールの作成時には注意が必要です。 複雑に聞こえるかもしれませんが、AEMのコードを更新してアプリケーションを再デプロイすることなく、プラグアンドプレイできる設定手順を覚えておいてください。

タグライブラリの追加と公開

ライブラリとは、web サイトに構築およびデプロイされるすべてのタグ設定(データ要素、ルール、拡張機能)のコレクションです。 データ収集が適切に機能するように、あらゆる要素をパッケージ化します。 既知のユーザーのパーソナライゼーションの場合、ライブラリは公開され、データ収集ルールがweb サイトでアクティブになります。

  • 左側のナビゲーションから「公開フロー」をクリックし、「ライブラリを追加」ボタンをクリックします。
    ​ ライブラリを追加

  • ライブラリを追加」ダイアログで、次のように入力します。

    • 名前: 1.0
    • 環境: 開発​を選択
    • 変更されたすべてのリソースを追加」をクリックして、すべてのリソースを選択します。

    開発に保存してビルド」をクリックして、ライブラリを作成します。

    ​ ライブラリを追加

  • ライブラリを実稼動環境に公開するには、承認して実稼動環境に公開​をクリックします。公開が完了すると、プロパティはAEMで使用できるようになります。
    承認と公開

ライブラリが公開され、AEM ページからデータを収集する準備が整いました。

プロファイルの結合ポリシーの設定

結合ポリシーは、複数のソースからの顧客データを単一のプロファイルに統合する方法を定義します。 競合がある場合にどのデータが優先されるかを決定し、既知のユーザーのパーソナライゼーションのために、各顧客の包括的かつ一貫性のあるビューを確保します。

  • Adobe Experience Platform​で、左側のナビゲーションから​ プロファイル ​をクリックし、結合ポリシー タブをクリックします。

    結合ポリシー

この使用例では、結合ポリシーが作成されます。 ただし、既存の結合ポリシーがある場合は、そのポリシーを使用できます。 デフォルトの結合ポリシー​と​ Active-On-Edge結合ポリシー ​の両方のオプションを有効にします(これにより、エッジネットワークでプロファイルデータをリアルタイムのパーソナライズの意思決定に利用できるようになります)。

これらの設定により、行動データとトランザクションデータが適切に統合され、リアルタイムのオーディエンス評価に利用できるようになります。

結合ポリシー

(V2)Adobe Target Destinationのセットアップ

Adobe Target Destination (V2)を使用すると、Experience Platformで作成されたオーディエンスをAdobe Targetで直接有効にできます。 この接続により、オーディエンスをAdobe Targetのパーソナライゼーションアクティビティに使用できます。

  • Adobe Experience Platform​で、左側のナビゲーションから​ 宛先 ​をクリックし、カタログ タブをクリックします。 Personalization​を検索し、(v2) Adobe Target​の宛先を選択します。

    Adobe Target Destination

  • 宛先をアクティブ化 ステップで、宛先の名前を指定し、宛先に接続 ボタンをクリックします。
    宛先に接続

  • 宛先の詳細」セクションに、次のように入力します。

    • Name: WKND-RDE-Known-User-Personalization-Destination
    • 説明:既知のユーザーのパーソナライゼーションの宛先
    • データストリーム:以前に作成した​ データストリーム ​を選択します
    • Workspace: Adobe Target ワークスペースを選択します

    宛先の詳細

  • 次へ」をクリックし、宛先設定を完了します。

    宛先設定

この宛先を設定すると、Experience Platformで作成したオーディエンスをAdobe Targetにアクティベートして、パーソナライゼーションアクティビティで使用できるようになります。

AEMの設定

次の手順では、WKND サイトログイン機能を強化して、ブラウザーのセッションストレージにユーザーIDを保存し、タグプロパティをAEM ページに統合して挿入します。

tags プロパティはAEM ページに挿入され、ユーザーがWKND サイトにアクセスしたときにページビューデータとユーザーログイン状態+ ユーザーID (ログインしている場合)を収集します。 Adobe Targetとの統合により、パーソナライズされたオファーをAdobe Targetに書き出すことができます。

WKND サイトログイン機能の強化

WKND サイトログイン機能を強化するには、GitHubからWKND サイトプロジェクト ​を複製し、新しい機能ブランチを作成し、お気に入りのIDEで開きます。

$ mkdir -p ~/Code
$ git clone git@github.com:adobe/aem-guides-wknd.git
$ cd aem-guides-wknd
$ git checkout -b feature/known-user-personalization
  • ui.frontend モジュールに移動し、ui.frontend/src/main/webpack/components/form/sign-in-buttons/sign-in-buttons.js ファイルを開きます。 コードを確認します。currentuser.jsonへのAJAX呼び出しを行った後、ユーザーのログインステータスに基づいて「ログイン」または「ログアウト」ボタンが表示されます。

  • ブラウザーのセッションストレージにユーザーIDを保存するようにコードを更新し、またcurrentuser.jsonに対して複数のAJAX呼び出しを行わないようにコードを最適化します。

    code language-javascript
    import jQuery from "jquery";
    
    jQuery(function($) {
        "use strict";
    
        (function() {
            const currentUserUrl = $('.wknd-sign-in-buttons').data('current-user-url'),
                signIn = $('[href="#sign-in"]'),
                signOut = $('[href="#sign-out"]'),
                greetingLabel = $('#wkndGreetingLabel'),
                greetingText = greetingLabel.text(),
                body = $('body');
    
            // Cache configuration
            const CACHE_KEY = 'wknd_user_state';
            const CACHE_DURATION = 5 * 60 * 1000; // 5 minutes in milliseconds
    
            /**
             * Get cached user state from session storage
             */
            function getCachedUserState() {
                try {
                    const cached = sessionStorage.getItem(CACHE_KEY);
                    if (cached) {
                        const userState = JSON.parse(cached);
                        const now = Date.now();
    
                        // Check if cache is still valid
                        if (userState.timestamp && (now - userState.timestamp) < CACHE_DURATION) {
                            return userState.data;
                        } else {
                            // Cache expired, remove it
                            sessionStorage.removeItem(CACHE_KEY);
                        }
                    }
                } catch (e) {
                    console.warn('Failed to read cached user state:', e);
                    sessionStorage.removeItem(CACHE_KEY);
                }
                return null;
            }
    
            /**
             * Cache user state in session storage
             */
            function cacheUserState(userData) {
                try {
                    const userState = {
                        data: userData,
                        timestamp: Date.now()
                    };
                    sessionStorage.setItem(CACHE_KEY, JSON.stringify(userState));
                } catch (e) {
                    console.warn('Failed to cache user state:', e);
                }
            }
    
            /**
             * Clear cached user state
             */
            function clearCachedUserState() {
                try {
                    sessionStorage.removeItem(CACHE_KEY);
                } catch (e) {
                    console.warn('Failed to clear cached user state:', e);
                }
            }
    
            /**
             * Update UI based on user state
             */
            function updateUI(userData) {
                const isAnonymous = 'anonymous' === userData.authorizableId;
    
                if(isAnonymous) {
                    signIn.show();
                    signOut.hide();
                    greetingLabel.hide();
                    body.addClass('anonymous');
                } else {
                    signIn.hide();
                    signOut.show();
                    greetingLabel.text(greetingText + ", " + userData.name);
                    greetingLabel.show();
                    body.removeClass('anonymous');
                }
            }
    
            /**
             * Fetch user data from AEM endpoint
             */
            function fetchUserData() {
                return $.getJSON(currentUserUrl + "?nocache=" + new Date().getTime())
                    .fail(function(xhr, status, error) {
                        console.error('Failed to fetch user data:', error);
                        updateUI({ authorizableId: 'anonymous' });
                    });
            }
    
            /**
             * Initialize user state (check cache first, then fetch if needed)
             */
            function initializeUserState() {
                const cachedUserState = getCachedUserState();
    
                if (cachedUserState) {
                    updateUI(cachedUserState);
                } else {
                    fetchUserData().done(function(currentUser) {
                        updateUI(currentUser);
                        cacheUserState(currentUser);
                    });
                }
            }
    
            // Initialize user state
            initializeUserState();
    
            // Clear cache on sign-in/sign-out clicks
            $(document).on('click', '[href="#sign-in"], [href="#sign-out"]', function() {
                clearCachedUserState();
            });
    
            // Clear cache when modal is shown
            $('body').on('wknd-modal-show', function() {
                clearCachedUserState();
            });
    
            // Clear cache when on dedicated sign-in page
            if (window.location.pathname.includes('/sign-in') || window.location.pathname.includes('/errors/sign-in')) {
                clearCachedUserState();
            }
    
            // Clear cache when sign-in form is submitted
            $(document).on('submit', 'form[id*="sign-in"], form[action*="login"]', function() {
                clearCachedUserState();
            });
    
            // Clear cache on successful login redirect
            const urlParams = new URLSearchParams(window.location.search);
            if (urlParams.has('login') || urlParams.has('success') || window.location.hash === '#login-success') {
                clearCachedUserState();
            }
    
            // Debug function for testing
            window.debugUserState = function() {
                console.log('Cache:', sessionStorage.getItem('wknd_user_state'));
                clearCachedUserState();
                initializeUserState();
            };
    
        })();
    });
    

    タグプロパティルールは、ブラウザーのセッションストレージに保存されるユーザーIDに依存することに注意してください。 wknd_user_state キーは、ユーザーIDを保存および取得するためのAEM コードとTags プロパティ ルールの間の共通コントラクトです。

  • プロジェクトを構築し、ローカルで実行して、変更をローカルで検証します。

    code language-shell
    $ mvn clean install -PautoInstallSinglePackage
    

    asmith/asmith (または作成したその他のユーザー)資格情報を使用してログインすると、aem-guides-wknd プロジェクトに含まれています

    ​ ログイン ​

    私の場合、テスト用にID teddyの新しいユーザーを作成しました。

  • ユーザーIDが(ブラウザーのデベロッパーツールを使用して)ブラウザーのセッションストレージに保存されていることを確認したら、変更をコミットしてAdobe Cloud Manager リモートリポジトリにプッシュします。

    code language-shell
    $ git add .
    $ git commit -m "Enhance the WKND site Login functionality to store the user ID in browser's session storage"
    $ git push adobe-origin feature/known-user-personalization
    
  • Cloud Manager パイプラインまたはAEM RDE コマンドを使用して、AEM as a Cloud Service環境に変更をデプロイします。

タグプロパティのAEM ページへの統合と挿入

このステップでは、以前に作成したTags プロパティをAEM ページに統合し、既知のユーザーのパーソナライズのためのデータ収集を可能にします。 Tags プロパティは、ユーザーがWKND サイトにアクセスしたときに、ページビューデータとユーザーログイン状態+ ユーザーID (ログインしている場合)を自動的に取得します。

Tags プロパティをAEM ページに統合するには、Adobe Experience Platformでのタグの統合の手順に従います。

別のプロパティではなく、以前に作成された​WKND-RDE-Known-User-Personalization Tags プロパティを必ず使用してください。

​ タグ プロパティ ​

統合が完了すると、Tags プロパティは、AEM ページから既知のユーザーのパーソナライゼーションデータを収集し、オーディエンス作成用にExperience Platformに送信し始めます。

AEM ページでのデータ収集の確認

AEM ページからのデータ収集を検証するには、ブラウザーのデベロッパーツールを使用してネットワークリクエストを調べ、Experience Platformに送信されるデータを確認します。 Experience Platform Debuggerを使用して、データ収集を検証することもできます。

  • ブラウザーで、AEM as a Cloud Service環境にデプロイされたWKND サイトに移動します。 匿名であるため、同様のデータ収集リクエストを確認できます。

    匿名データ収集

  • asmith/asmith資格情報を使用してログインすると、同様のデータ収集リクエストが表示されます。

    ​ データ収集にログインしました

identityMap変数と_YOUR_NAMESPACE.wkndLoginStatus変数がそれぞれユーザーIDとログインステータスに設定されていることに注意してください。

Adobe Target を統合

このステップでは、Adobe TargetとAEMを統合し、パーソナライズされたコンテンツ(エクスペリエンスフラグメント)をAdobe Targetに書き出すことができます。 この接続により、Adobe Targetでは、AEMで作成されたコンテンツを、Experience Platformで作成された既知のユーザーオーディエンスとのパーソナライゼーションアクティビティに使用できます。

Adobe Targetを統合し、WKND-RDE-Known-User-Personalization オーディエンスオファーをAdobe Targetに書き出すには、Adobe Experience PlatformにAdobe Targetを統合の手順に従います。

Target設定がエクスペリエンスフラグメントに適用されていることを確認し、Adobe Targetに書き出してパーソナライゼーションアクティビティで使用できるようにします。

Target設定のエクスペリエンスフラグメント ​

統合が完了したら、エクスペリエンスフラグメントをAEMからAdobe Targetに書き出して、既知のユーザーオーディエンス向けのパーソナライズされたオファーとして使用できます。

パーソナライズされたオファーの作成

エクスペリエンスフラグメントは、パーソナライズされたオファーとしてAdobe Targetに書き出すことができる、再利用可能なコンテンツコンポーネントです。 既知のユーザーのパーソナライゼーションについては、新しいエクスペリエンスフラグメントを作成して、スキー用具を​ アップセル ​しましょう。

  • AEMで、エクスペリエンスフラグメント​をクリックし、WKND サイトフラグメント フォルダーに移動します。 目的の場所で、新しいエクスペリエンスフラグメントを作成します。

    ​ エクスペリエンスフラグメントの作成

  • ティーザーコンポーネントを追加してエクスペリエンスフラグメントを作成し、スキー用具のアップセルに関連するコンテンツでカスタマイズします。

    ​ オーサーエクスペリエンスフラグメント ​

  • エクスペリエンスフラグメントをAdobe Targetに書き出します。

    ​ エクスペリエンスフラグメントの書き出し

パーソナライズされたオファーは、Adobe Targetでアクティビティで使用できるようになりました。

Adobe Experience Platformの設定

Adobe Experience Platformを再度使用して、行動データが収集され、関連するプロファイルが作成されていることを確認します。 続いて、トランザクションデータを取り込み、行動データとトランザクションデータの合成を検証し、オーディエンスを作成および設定して、Adobe Targetでオーディエンスをアクティブ化します。

行動データとプロファイル作成の検証

行動データが収集され、関連するプロファイルが作成されることを確認しましょう。

  • Adobe Experience Platformで、Datasets​をクリックし、WKND-RDE-Known-User-Personalization-Behavioral データセットを開きます。 取り込んだデータ統計が有効であることを確認します。

    ​ データ統計の取り込み

  • プロファイルが作成されていることを確認するには、左側のナビゲーションから「プロファイル」をクリックします。 次に、参照 タブに移動し、次の条件を使用してフィルタリングします。

    • 結合ポリシー: $YOUR_MERGE_POLICY_NAME
    • ID名前空間: ECID (Experience Cloud ID。Adobeによって各訪問者のブラウザーに自動的に割り当てられる一意のID)
    • ID値: ブラウザーのデベロッパーツールまたはExperience Platform Debuggerを使用して検索します。 これは、MCMID|接頭辞のないAMCV_$NAMESPACE$ cookie値です。

    ECID

  • 表示」ボタンをクリックします。
    ​ プロファイルリスト ​

  • プロファイルをクリックすると、プロファイルの詳細が表示されます。
    ​ プロファイルの詳細

    私の場合、2つの異なるブラウザーからWKND サイトにアクセスしたので、ユーザーteddyに関連付けられた2つのECIDがあります。 両方のECIDのデータをつなぎ合わせてプロファイルを作成します。 IDをつなぎ合わせる力と、それが包括的な顧客プロファイルの作成にどのように使用されるかを理解し始めました。 まもなく、トランザクションデータと行動データをつなぎ合わせて、包括的な顧客プロファイルを作成します。

  • イベント」タブをクリックすると、プロファイルに関連するイベントが表示されます。
    ​ プロファイルイベント ​

トランザクションデータの取り込み

次に、ダミーのトランザクションデータをExperience Platformに取り込みます。 この例では、トランザクションデータは他のシステム(OMS、CRM、MDMなど)に保存され、バッチ取り込みを使用してExperience Platformに取り込まれます。 トランザクションデータにはWKND ユーザーIDが含まれており、これは行動データとトランザクションデータを結合するために使用されます。

  • Adobe Experience Platformで、Datasets​をクリックし、WKND-RDE-Known-User-Personalization-Transactional データセットを開きます。

    ​ トランザクションデータセット ​

  • 右側のパネルで、ADD DATA セクションを探し、ski-adventure-purchase-data.json ファイルをそれにドラッグします。 このファイルには、WKND Adventureが購入したダミーのトランザクションデータが含まれます。 実際のシナリオでは、このデータは、バッチまたはストリーミング取得を使用して、他のシステム(OMS、CRM、MDMなど)から取り込まれます。

    ​ データを追加

  • データ処理が完了するのを待ちます。

    ​ データ処理

  • データ処理が完了したら、データセットページを更新します。

    ​ データを含むトランザクションデータセット ​

行動データとトランザクションデータの連携の検証

次に、既知のユーザーパーソナライゼーションのユースケースで最も重要な部分である、行動データとトランザクションデータの合成を検証します。 WKND サイトユーザーIDは、システム間で共通の識別子であり、データをつなぎ合わせるために使用されます。 この例では、ユーザーID teddyを使用してデータを結合しています。

  • 左側のナビゲーションから「プロファイル」をクリックします。 次に、参照 タブに移動し、次の条件を使用してフィルタリングします。

    • 結合ポリシー: $YOUR_MERGE_POLICY_NAME
    • ID名前空間: ECID
    • ID値:行動データと関連プロファイルのフィルタリングに使用したのと同じECID値を使用します。

    ​ プロファイル リストの結合

  • プロファイルをクリックすると、プロファイルの詳細が表示されます。 取引データと行動データをつなぎ合わせ、包括的な顧客プロファイルを構築します。

    ​ プロファイルの詳細を結合

  • 属性」タブをクリックすると、プロファイルに関連付けられたトランザクションデータと行動データの詳細が表示されます。
    ​ プロファイル属性のステッチ ​

  • ID グラフを表示」リンクをクリックして、プロファイルのID グラフを表示します。
    ID グラフ ​

これで完了です。 行動データとトランザクションデータをつなぎ合わせ、包括的な顧客プロファイルを構築しました。

IDの合成は、複数のシステムからのデータを組み合わせることで、包括的な顧客プロファイルを作成する強力な機能です。 デモの目的では、データをつなぎ合わせるために2つのシステムのみが使用されます。 現実世界のシナリオでは、モバイルアプリ、コールセンター、チャットボット、Posなど、データを収集し、それぞれのシステムに保存する複数のシステムがあるかもしれません。 共通の識別子を使用してデータをつなぎ合わせ、包括的な顧客プロファイルを作成し、パーソナライゼーション活動に使用します。 このアプローチにより、ユーザーにパーソナライズされたエクスペリエンスを提供し、静的な画一的なコンテンツを個々の顧客プロファイルに基づいてカスタマイズされたエクスペリエンスに置き換えることで、顧客体験を近代化することができます。

WKND ユーザーIDを使用したプロファイル検索

Experience PlatformでWKND ユーザーID (ECIDではなく)を使用してプロファイルを検索できます。

  • 左側のナビゲーションから「プロファイル」をクリックします。 次に、参照 タブに移動し、次の条件を使用してフィルタリングします。

    • 結合ポリシー: $YOUR_MERGE_POLICY_NAME
    • ID名前空間: WKND ユーザーId
    • ID値: teddyまたはasmithまたは使用したその他のユーザーID。

    ​ プロファイル リストの結合

  • プロファイルをクリックすると、前の手順と同じプロファイルの詳細が表示されます。
    ​ プロファイルの詳細を結合

オーディエンスの作成と設定

オーディエンスは、行動データと取引データにもとづいて特定のユーザーグループを定義します。 この例では、Ski アドベンチャーを購入し、WKND サイトにログインしているユーザーを対象とするオーディエンスが作成されます。

オーディエンスを作成するには、次の手順を実行します。

  • Adobe Experience Platformで、左側のナビゲーションから「オーディエンス」をクリックし、「オーディエンスを作成」ボタンをクリックします。次に、Build-rule オプションを選択し、Create ボタンをクリックします。
    ​ オーディエンスの作成

  • Create ステップで、次のように入力します。

    • Name: UpSell-Ski-Equipment-To-Authenticated
    • 説明: ログインし、スキーの冒険を購入したユーザー
    • 評価方法:「Edge」を選択します(ユーザーが閲覧すると、リアルタイムでオーディエンスメンバーシップが評価され、インスタントパーソナライズが可能になります)

    ​ オーディエンスの作成

  • 次に、属性 タブをクリックし、Techmarketingdemos (または$NAMESPACE$)フィールドグループに移動します。 「Adventure Purchased」フィールドを「構築を開始」セクションにドラッグ&ドロップします。 次の詳細を入力します。

    Adventure Purchased: Contains​を選択し、値​ ski ​を入力します。

    ​ オーディエンスの作成

  • 次に、イベント タブに切り替え、techmarketingdemos (または$NAMESPACE$)フィールドグループに移動します。 「WKND ログインステータス」フィールドを「イベント」セクションにドラッグ&ドロップします。 次の詳細を入力します。

    WKND ログインステータス: Equals​を選択し、値​ authenticated ​を入力します。

    また、「今日」オプションを選択します。

    ​ オーディエンスの作成

  • オーディエンスを確認し、Activate to destination ボタンをクリックします。

    ​ オーディエンスのレビュー

  • 宛先に対してアクティブ化 ダイアログで、前に作成したAdobe Target宛先を選択し、手順に従ってオーディエンスをアクティブ化します。 「次へ」をクリックし、宛先設定を完了します。

    宛先にアクティベート ​

これで完了です。 オーディエンスを作成し、Adobe Targetの宛先にアクティベートしました。

Adobe Targetの設定

Adobe Targetでは、Experience Platformで作成されたオーディエンスと、AEMから書き出されたパーソナライズされたオファーが適切に使用できることが検証されます。 次に、オーディエンスターゲティングとパーソナライズされたコンテンツを組み合わせたアクティビティを作成して、既知のユーザーのパーソナライゼーション体験を提供します。

  • Adobe Experience Cloudにログインし、「アプリ切り替え」または「クイックアクセス」セクションから「Adobe Target」に移動します。

    Adobe Target

オーディエンスとオファーの検証

Adobe Targetでオーディエンスとオファーが適切に利用可能であることを確認します。

  • Adobe Targetで、Audiences​をクリックし、UpSell-Ski-Equipment-To-Authenticated オーディエンスが作成されていることを確認します。

    ​ オーディエンス ​

  • オーディエンスをクリックすると、オーディエンスの詳細を確認し、適切に設定されていることを確認できます。

    ​ オーディエンスの詳細

  • オファー」をクリックし、AEMでエクスポートしたオファーが存在することを確認します。 私の場合、オファー(またはエクスペリエンスフラグメント)は​ スキーアイテムが必要 ​と呼ばれます。

    既知のユーザーPersonalization オファー

    これにより、Adobe Experience Platform、AEM、Adobe Targetをまたいで統合アクションを検証できます。

アクティビティの作成と設定

Adobe Targetのアクティビティとは、パーソナライズされたコンテンツを特定のオーディエンスに配信するタイミングと方法を定義したパーソナライゼーションキャンペーンです。 既知のユーザーのパーソナライゼーションについては、ログインしてスキーの冒険を購入したユーザーに対して、スキー用品のアップセルオファーを表示するアクティビティを作成します。

  • Adobe Targetで、「アクティビティ」をクリックし、「アクティビティを作成」ボタンをクリックして、「エクスペリエンスターゲティング」アクティビティタイプを選択します。
    ​ アクティビティの作成

  • エクスペリエンスのターゲット設定アクティビティを作成 ダイアログで、Web タイプおよび​Visual コンポーザーオプション (パーソナライズされたエクスペリエンスをweb サイトで直接作成およびテストできるWYSIWYG エディター)を選択し、WKND サイトホームページ URLを入力します。 「作成」ボタンをクリックして、アクティビティを作成します。

    ​ エクスペリエンスのターゲット設定アクティビティの作成

  • エディターで、UpSell-Ski-Equipment-To-Authenticated オーディエンスを選択し、上位ヒーローコンテンツの代わりに​ スキー ​のオファーの必須項目を追加します。 参考までに、以下のスクリーンショットを参照してください。

    ​ オーディエンスおよびオファーを含むアクティビティ ​

  • 次へ」をクリックし、目標と設定 セクションを適切な目標と指標で設定し、それをアクティブにして変更を公開します。

    目標と設定を使用してアクティブ化

これで完了です。 これで、ログインしてスキーのアドベンチャーを購入したユーザーに対して、既知のユーザーのパーソナライゼーション体験を提供する準備が整いました。

既知のユーザーのパーソナライゼーション実装の確認

次は、WKND サイトでの既知のユーザーパーソナライゼーションの実装を確認します。

  • ログインしていない場合は、WKND サイトのホームページにアクセスすると、デフォルトのヒーローコンテンツが表示されます。

    既定のヒーローコンテンツ ​

  • teddy/teddy (またはasmith/asmith)資格情報を使用してログインすると、パーソナライズされたヒーローコンテンツが表示されます。

    ​ パーソナライズされたヒーローコンテンツ ​

  • ブラウザーの開発者ツールを開き、「ネットワーク」タブを確認します。 interactでフィルタリングして、Web SDK リクエストを見つけます。 リクエスト/レスポンスには、Web SDK イベントとAdobe Targetの決定の詳細を表示する必要があります。

    リクエスト出力は次のようになります。
    Web SDK Network Request

    応答の出力は次のようになります。

    Web SDK Network Response

これで完了です。 システムをまたいで結合されたデータを使用して包括的な顧客プロファイルを構築することで、既知のユーザーにパーソナライズされたエクスペリエンスを提供するエキスパートとなります。

その他のリソース

recommendation-more-help
experience-manager-learn-help-cloud-service