分析データからのマーチャンダイジング変数の返しと使用

Query Serviceを使用して、Adobe AnalyticsからAdobe Experience Platformにデータセットとして取り込まれたデータを管理します。 以下の節では、Analytics データセットのマーチャンダイジング変数にアクセスするために使用できるサンプルクエリを示します。 Analytics ソースを使用してAdobe Analytics データを取り込み、マッピングする方法について詳しくは、ドキュメントを参照してください

マーチャンダイジング変数 merchandising-variables

マーチャンダイジング変数は、次の2つの構文のいずれかに従います。

  • Product Syntax: eVar値を商品に関連付けます。
  • コンバージョン変数構文:バインディングイベントが発生した場合にのみ、eVarを商品に関連付けます。 バインディングイベントとして機能するイベントを選択できます。

製品の構文 product-syntax

Adobe Analyticsでは、マーチャンダイジング変数と呼ばれる特別に設定された変数を通じて、カスタムの商品レベルのデータを収集できます。 EVarまたはカスタムイベントにもとづいています。 これらの変数と一般的な用途の違いは、ヒットに対する1つの値ではなく、ヒットに見られる各製品に対する個別の値を表すことです。

これらの変数は、製品構文マーチャンダイジング変数と呼ばれます。 これにより、製品ごとの「割引額」や、顧客の検索結果における製品の「ページ上の場所」に関する情報などの情報を収集できます。

製品構文の使用について詳しくは、製品構文を使用したeVarの実装に関するAdobe Analyticsのドキュメントを参照してください。

以下のセクションでは、Analytics データセット内のマーチャンダイジング変数にアクセスするために必要なXDM フィールドの概要を説明します。

eVar

productListItems[#]._experience.analytics.customDimensions.evars.evar#
  • #: アクセスする配列のインデックス。
  • evar#: アクセスしている特定のeVar変数。

カスタムイベント

productListItems[#]._experience.analytics.event1to100.event#.value
  • #: アクセスする配列のインデックス。
  • event#: アクセスしている特定のカスタムイベント変数。

製品構文の使用例 product-use-cases

次のユースケースでは、SQLを使用してproductListItems配列からマーチャンダイジング eVarを返すことに焦点を当てています。

マーチャンダイジングを返すeVarとイベント

以下のクエリは、productListItems配列で見つかった最初の商品のマーチャンダイジング eVarとイベントを返します。

SELECT
  productListItems[0]._experience.analytics.customDimensions.evars.eVar1,
  productListItems[0]._experience.analytics.event1to100.event1.value
FROM adobe_analytics_midvalues
WHERE timestamp = to_timestamp('2019-07-23')
  AND productListItems[0].SKU IS NOT NULL
  AND productListItems[0]._experience.analytics.customDimensions.evars.eVar1 IS NOT NULL
  AND productListItems[0]._experience.analytics.event1to100.event1.value IS NOT NULL
LIMIT 10

productListItems配列を展開し、各商品のマーチャンダイジング eVarとイベントを返します。

次のクエリはproductListItems配列を展開し、商品ごとに各マーチャンダイジング eVarとイベントを返します。 元のヒットとの関係を示すために、_id フィールドが含まれます。 _id値は、データセットの一意のプライマリキーです。

NOTE
explode関数は、配列の要素を複数の行に分割します。 null値を除外します。
SELECT
  _id,
  productItem._experience.analytics.customDimensions.evars.eVar1,
  productItem._experience.analytics.event1to100.event1.value
FROM (
  SELECT
    _id,
    explode(productListItems) as productItem
  FROM adobe_analytics_midvalues
  WHERE TIMESTAMP = to_timestamp('2019-07-23')
  AND productListItems[0].SKU IS NOT NULL
  AND productListItems[0]._experience.analytics.customDimensions.evars.eVar1 IS NOT NULL
  AND productListItems[0]._experience.analytics.event1to100.event1.value IS NOT NULL
)
LIMIT 20
NOTE
現在のデータセットに存在しないフィールドを取得しようとすると、「No such struct field」エラーが発生します。 エラーメッセージで返される理由を評価して、使用可能なフィールドを特定し、クエリを更新して再実行します。
code language-console
ERROR: ErrorCode: 08P01 sessionId: XXXX queryId: XXXX Unknown error encountered. Reason: [No such struct field evar1 in eVar10, eVar13, eVar62, eVar88, eVar2;]

コンバージョン変数の構文 conversion-variable-syntax

Adobe Analyticsに含まれているもうひとつの種類のマーチャンダイジング変数は、コンバージョン変数の構文です。 コンバージョン変数構文は、eVarの値をproducts変数で設定できない場合に使用されます。 通常、このシナリオは、ページにマーチャンダイジングチャネルや検索方法に関するコンテキストがないことを意味します。 このような場合、ユーザーが製品ページにアクセスする前にマーチャンダイジング変数を設定する必要があり、値はバインディングイベントが発生するまで保持されます。

例えば、以下の製品検索シナリオでは、製品に関連するコンバージョンまたはイベントが発生する前に、必要なデータをページに表示する方法を示します。

  1. ユーザーは、「winter hat」の内部検索を実行し、コンバージョン構文が有効になっているマーチャンダイジング eVar6を「internal search:winter hat」に設定します。
  2. ユーザーが「ワッフルビーニー」をクリックし、製品の詳細ページに移動します。
    a. ここに着陸すると、「ワッフルビーニー」のProduct View イベントが$12.99で開始されます。
    b. Product Viewはバインディングイベントとして設定されているため、商品「waffle beanie」はeVar6の値「internal search:winter hat」にバインドされるようになりました。 「waffle beanie」商品が収集されるたびに、「内部検索:winter hat」に関連付けられます。 これは、eVarの有効期限の設定に達するか、新しいeVar6値が設定され、バインディングイベントがその製品で再び発生するまで行われます。
  3. ユーザーが製品を買い物かごに追加し、Cart Add イベントが発生します。
  4. ユーザーは、「夏のシャツ」の別の内部検索を実行し、コンバージョン構文が有効になっているマーチャンダイジング eVar6を「内部検索:summer シャツ」に設定します。
  5. ユーザーは「スポーティなT シャツ」を選択し、商品詳細ページにアクセスします。
    a. ここに着陸すると、「スポーティなT シャツを19.99 ドルで販売するProduct View イベントが発生します。
    b. Product View イベントはバインディングイベントであるため、商品「スポーティ T シャツ」は、「内部検索:summer シャツ」のeVar6値にバインドされるようになりました。 以前の商品「waffle beanie」は、まだ「internal search:waffle beanie」のeVar6値にバインドされています。
  6. ユーザーが製品を買い物かごに追加し、Cart Add イベントが発生します。
  7. ユーザーは両方の製品をチェックアウトします。

レポートでは、注文、売上、商品ビューおよびカート追加数がeVar6に対してレポートされ、バインドされた商品のアクティビティに一致します。

eVar6 (商品調査法)
売上高
注文件数
製品表示
買い物かごへの追加
内部検索:summer シャツ
19.99
1
1
1
内部検索:winter ハット
12.99
1
1
1

コンバージョン変数構文の使用について詳しくは、​ コンバージョン変数構文を使用したeVarの実装に関するAdobe Analyticsのドキュメントを参照してください。

以下に、Analytics データセットで変換変数構文を生成するXDM フィールドを示します。

eVar

_experience.analytics.customDimensions.evars.evar#
  • evar#: アクセスしている特定のeVar変数。

製品

productListItems[#].sku
  • #: アクセスする配列のインデックス。

コンバージョン変数の使用例 conversion-variable-use-cases

以下のユースケースは、変換変数の構文を必要とするシナリオを反映しています。

特定の製品とイベントのペアに値をバインドする

以下のクエリは、値を特定の製品とイベントのペアにバインドします。 この例では、値は製品ビューイベントにバインドされています。

SELECT
  endUserIds._experience.aaid.id AS AAID,
  timestamp,
  CASE WHEN commerce.productViews.value = 1 THEN ATTRIBUTION_LAST_TOUCH(timestamp, 'bindConversionSyntaxMerchVariable_eVar1', _experience.analytics.customDimensions.eVars.eVar1)
  OVER(PARTITION BY endUserIds._experience.aaid.id
       ORDER BY timestamp
       ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW).value
  END AS eVar1Bind,
  EXPLODE(productListItems) AS Product_List,
  commerce.productViews.value AS prodView,
  commerce.purchases.value AS purchase
FROM adobe_analytics_midvalues
WHERE commerce.productViews.value = 1 OR commerce.purchases.value = 1 OR _experience.analytics.customDimensions.eVars.eVar1 IS NOT NULL
LIMIT 100

バインドされた値を、それぞれの製品の後続の出現に保持します

以下のサンプルクエリでは、バインドされた値がそれぞれの製品の後続の出現に保持されます。 最も低いサブクエリは、宣言されたバインディングイベント上の製品との値の関係を確立します。 次のサブクエリは、それぞれの製品との後続のインタラクションにわたって、その連結値のアトリビューションを実行します。 最上位のSELECTは、結果を集計してレポートを生成します。

SELECT
  Product_List.SKU,
  eVar1101ConversionSyntax,
  SUM(prodView) AS Product_Views,
  SUM(purchase) AS Purchases
FROM
(
  SELECT
    Product_List,
    ATTRIBUTION_LAST_TOUCH(timestamp, 'ConversionSyntax_eVar1', eVar1Bind)
      OVER(PARTITION BY AAID, Product_List.SKU
           ORDER BY timestamp
           ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW).value
    AS eVar1ConversionSyntax,
    prodView,
    purchase
  FROM
  (
    SELECT
      endUserIds._experience.aaid.id AS AAID,
      timestamp,
      CASE WHEN commerce.productViews.value = 1 THEN ATTRIBUTION_LAST_TOUCH(timestamp, 'bindConversionSyntaxMerchVariable_eVar1', _experience.analytics.customDimensions.eVars.eVar1)
      OVER(PARTITION BY endUserIds._experience.aaid.id
           ORDER BY timestamp
           ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW).value
      END AS eVar1Bind,
      EXPLODE(productListItems) AS Product_List,
      commerce.productViews.value AS prodView,
      commerce.purchases.value AS purchase
    FROM adobe_analytics_midvalues
    WHERE commerce.productViews.value = 1 OR commerce.purchases.value = 1 OR _experience.analytics.customDimensions.eVars.eVar1 IS NOT NULL
  )
)
WHERE eVar1ConversionSyntax IS NOT NULL
GROUP BY 1, 2
ORDER BY 3 DESC
LIMIT 100

次の手順

このドキュメントでは、商品構文を使用してマーチャンダイジング eVarを返し、コンバージョン変数構文を使用して特定の商品に値をバインドする方法について理解する必要があります。

まだ行っていない場合は、次のAnalytics webおよびモバイルインタラクションに関するインサイトのドキュメント ​をお読みください。 一般的なユースケースを提供し、Query Serviceを使用して、webとモバイルのAdobe Analyticsデータから実用的なインサイトを作成する方法を紹介します。

recommendation-more-help
experience-platform-help-query-service