Adobe Analytics データフィードを使用すると、生データに柔軟にアクセスすることができ、複雑な操作や他のソースとの統合が可能になります。分析ギャップを埋めることにより、AdobeAnalysis Workspace などのツールを補完します。データフィードには、それぞれのサーバー呼び出しが行として保存され、バッチで配信され、主要指標が含まれます。集計テーブルとグローバルフィルターは、分析を効率化し、一貫性を確保するのに役立ちます。このガイドでは、その可能性を紹介し、さらなる探求の段階を設定します。
はじめに
データフィードは、Adobe で収集した生の詳細なデータを活用する強力な方法です。これをデータベースに取り込むと、次のような面白いユースケースが無限に発生します。
-
データを必要な方法で操作できる比類のない柔軟性 (eVar の永続性の変更、複雑なシーケンシャルロジックなど)
-
Adobe Analytics データを他のデータソースと結合することにより、360 部のレポート作成や、モデルや意思決定要因への入力として使用できるようになります。
データフィードは、Adobe Analytics のデータを分析する唯一の方法ではありませんが、Adobe Analysis Workspace、Data Warehouse、Report Builder によって発生する可能性のあるギャップを埋めるために使用することができます。データフィードは、Adobe Analytics ツールキットに含まれる多くのツールの 1 つだと考えてください。
データフィードと他の Adobe Analytics ツールの比較:
ユースケース
ワークスペース
Data Warehouse
データフィード
メモ:このプレイブックでは、データフィードをデータベースに取り込む方法については詳しく説明しません。クエリ用に、既にデータフィードに簡単にアクセスできると仮定します。
-
データフィードの設定と取り込みのガイダンスについては、https://experienceleague.adobe.com/docs/analytics/export/analytics-data-feed/data-feed-overview.html?lang=ja を参照してください
-
データフィードに含まれるファイルの概要:https://experienceleague.adobe.com/ja/docs/analytics/export/analytics-data-feed/data-feed-contents/datafeeds-contents
データフィードの理解
データフィードについて
すべての Adobe Analytics サーバー呼び出しは、データフィードに 1 行として保存されます。レポートスイートごとに個別のデータフィードを設定する必要があります。データは、毎時間の終了時に時間単位のバッチで、または毎日の終わりに日単位のバッチで配信されます。
各種実装で、生データフィードの形式は同じままです。利用可能なすべての列の包括的なリストは次のとおりです:https://experienceleague.adobe.com/ja/docs/analytics/export/analytics-data-feed/data-feed-contents/datafeeds-contents。プレイブックのこのセクションでは、いくつかの重要なコラムに焦点を当てます。
オカレンス(ヒット)、訪問数、訪問者の識別子
OOTB オカレンス、訪問数、ユニークビジターをレプリケートするには、post_visid_high、post_visid_low、visit_num、visit_page_num の 4 つの列の組み合わせが必要です。
-
ユニークビジター:post_visid_high と post_visid_low の連結を使用してビジター ID を取得します。このビジター ID の個別カウントでユニークビジターをレプリケートします。
-
訪問数:訪問 ID の取得には、post_visid_high、post_visid_low および visit_num を連結したものを使用します。この訪問 ID の個別のカウントで訪問数をレプリケートします。ハッシュ競合のため、visit_start_time_gmt との連結も必要になる場合があります
-
オカレンス:ヒット ID の取得には、post_visid_high、post_visid_low、visit_num、visit_page_num の連結が使用されます。このヒット ID の個別のカウントで、オカレンスをレプリケートします。
訪問者数、訪問数、オカレンスを取得するスターター SQL コードを次に示します。
SELECT
COUNT(DISTINCT CONCAT(POST_VISID_HIGH, POST_VISID_LOW)) AS VISITORS,
COUNT(DISTINCT CONCAT(POST_VISID_HIGH, POST_VISID_LOW, VISIT_NUM)) AS VISITS,
COUNT(DISTINCT CONCAT(POST_VISID_HIGH, POST_VISID_LOW, VISIT_NUM, VISIT_PAGE_NUM)) AS OCCURRENCES
FROM DATA_FEEDS
WHERE HIT_SOURCE = '1' AND EXCLUDE_HIT = '0'
ヒント: Adobe Workspace では、「訪問深度」ディメンションは visit_num データフィード列と同等です。ワークスペースの「ヒット深度」ディメンションは、 visit_page_num データフィード列と同等です。
visit_page_num 列のメモ:
-
visit_page_num 列名の 「ページ」を誤解しないでください。誤解が生じた場合、ページビューが増えるだけでなく、分析サーバーコールごとに増分されます。
-
訪問数は必ずしも visit_page_num = 1 で開始されませんが、ほとんどの場合はそうする必要があります。正確なレポートを得るために、訪問の最初のヒット取り込む必要がある場合、訪問 ID の最小 visit_page_num を計算します
ヒント: ユーザーが実行した正確なアクションを確認したい場合は、ビジター ID を選択し、visit_num で並べ替え、次に visit_page_num で並べ替えることで、ヒットごとのアクションのカウントを取得することができます。これは、カスタマージャーニーをデバッグする際に役立ちます。デジタルプロパティをナビゲートする際に、独自のアクションでテストしてください。
eVar と prop
それぞれの eVar および prop には、有効であるかデータが入力されているかに関係なく、データフィードに専用の列があります。また、前処理された値と後処理された値の両方について、別々の列もあります。後処理列は、eVar 属性を持ち、有効期限ロジックが適用されます。
処理がいつ行われるかを理解するには、次のフローチャートを参照してください:https://experienceleague.adobe.com/ja/docs/analytics/technotes/processing-order
合計で、500 列の eVar (実装用に作成できる 250 個の eVar の 2 セット)と 150 列の prop (設定可能な 75 個の prop の 2 セット)があります。
ヒント: キャプチャした eVar に prop のプロパティがあればいいのにと思ったことはありませんか?非 post eVar 列は、prop のように動作します。eVar 属性や永続性ロジックが適用されていない場合は、非 post 列を使用して、その eVar が必要な Analytics ヒットをフィルタリングします(prop と同様)。
セグメントと計算指標
セグメント、カスタム計算指標および Adobe の標準指標は、カスタム定義する必要があります。OOTB 指標とセグメントについては、Adobe の技術ドキュメントを参照してください。
一般的な指標の一部をレプリケートするロジックについては、次を参照してください:https://experienceleague.adobe.com/ja/docs/analytics/export/analytics-data-feed/data-feed-contents/datafeeds-calculate
次の節では一例として、Adobe の OOTB バウンス指標をレプリケートするためのサンプルコードを示します。今後の Experience League 投稿では、データフィードを使用してセグメントと指標を再作成する方法に関する例がさらに提供されます。
データフィードのクエリ
基本知識
最初のクエリでは、不要なヒットを除外しながら、特定の日の訪問数をカウントします。
SELECT
COUNT(DISTINCT CONCAT (POST_VISID_HIGH, POST_VISID_LOW, VISIT_NUM)) AS VISITS
FROM DATA_FEEDS
WHERE HIT_SOURCE = '1' AND EXCLUDE_HIT = '0'
次に、エントリページ全体での訪問数をカウントします。
WITH MIN_VISIT_PAGE_NUM_TABLE AS (
SELECT
POST_VISID_HIGH,
POST_VISID_LOW,
VISIT_NUM,
MIN(VISIT_PAGE_NUM) AS MIN_VISIT_PAGE_NUM
FROM DATA_FEEDS
WHERE HIT_SOURCE = '1' AND EXCLUDE_HIT = '0'
GROUP BY 1,2,3)
SELECT
PAGE_NAME,
COUNT(DISTINCT A.VISIT_ID) AS ENTRIES
FROM DATA_FEEDS A
LEFT JOIN MIN_VISIT_PAGE_NUM_TABLE B
ON A.POST_VISID_HIGH = B.POST_VISID_HIGH
AND A.POST_VISID_LOW = B.POST_VISID_LOW
AND A.VISIT_NUM = B.VISIT_NUM
AND A.VISIT_PAGE_NUM = B.MIN_VISIT_PAGE_NUM
WHERE HIT_SOURCE = '1' AND EXCLUDE_HIT = '0'
GROUP BY 1
ヒント: 上記の説明を EXIT にレプリケートするには、最小の代わりに最大 visit_page_num を見つけます。
最後に、OOTB バウンス指標をレプリケートします。
WITH MAX_VISIT_PAGE_NUM_TABLE AS (
SELECT
POST_VISID_HIGH,
POST_VISID_LOW,
VISIT_NUM,
MAX(VISIT_PAGE_NUM) AS MAX_VISIT_PAGE_NUM
FROM DATA_FEEDS
WHERE HIT_SOURCE = '1' AND EXCLUDE_HIT = '0'
GROUP BY 1,2,3),
MIN_VISIT_PAGE_NUM_TABLE AS (
SELECT
POST_VISID_HIGH,
POST_VISID_LOW,
VISIT_NUM,
MIN(VISIT_PAGE_NUM) AS MIN_VISIT_PAGE_NUM
FROM DATA_FEEDS
WHERE HIT_SOURCE = '1' AND EXCLUDE_HIT = '0'
GROUP BY 1,2,3)
SELECT
COUNT(DISTINCT A.VISIT_ID) AS BOUNCES
FROM MAX_VISIT_PAGE_NUM A
LEFT JOIN MIN_VISIT_PAGE_NUM_TABLE B
ON A.POST_VISID_HIGH = B.POST_VISID_HIGH
AND A.POST_VISID_LOW = B.POST_VISID_LOW
AND A.VISIT_NUM = B.VISIT_NUM
WHERE A.MAX_VISIT_PAGE_NUM = B.MIN_VISIT_PAGE_NUM
データフィード戦略
集計テーブルを作成
生のデータフィードの集計ビューを作成すると便利です。次のようなメリットがあります。
-
エンドユーザーにとって簡単:このデータを活用したい平均的なデータサイエンティストは、どのマーチャンダイズ eVar を使用するか、イベントリストをどのように解析するかについて心配する必要がありません。
-
クエリの負荷の軽減:データフィードは、テラバイトの大きなデータセットになる場合があります。データエンジニアリングチームは、生のデータセットに対するクエリを減らし、エンドユーザーをより小さく、管理しやすいテーブルに導いてくれたことに感謝します
必要な集計テーブルのタイプは、各組織と関係者によって異なりますが、ここでは開始するための例をいくつか紹介します。
-
ユーザー詳細テーブル:すべてのヒットおよびページデータが含まれます(ページ名、ラストタッチチャネル、モバイルデバイスなど)
-
キーイベントテーブル:解析された product_list と、そのヒットで発生したすべてのイベントが含まれます
-
検索語テーブル:作成されたすべての検索語と検索関連指標が含まれます
エンドユーザーが目的の結果を得るには、これらのテーブルをどのように結合する必要があるかに留意してください。例えば、それぞれの集計テーブルに post_visid_high、post_visid_low、visit_num、visit_page_num を含めて、任意の粒度レベルで結合できるようにするのが最も簡単な場合があります。
グローバルフィルター
一部の組織では、すべてのレポートにグローバルフィルターが適用されています(ボットの除外、不正なトラフィックの取り出しなど)。このフィルターをレプリケートする集計テーブルを作成し、生データフィードに対する任意のクエリに、これを結合することを検討してください。
テーブルを一元化すると、時間の経過と共にテーブルが変化するので、このフィルターロジックを維持する必要がなくなります。
ワークスペースを使用した不一致の監視
データフィードジャーニーの開始時に、日別の訪問数のカウントをすばやく実行し、毎日がワークスペースと並んでいることを確認します。データフィードが有効になっていても、内部のデータエンジニアリング側でファイルを処理するためのギャップがあるか、Adobe がファイルの送信をスキップした可能性があります。
それはともかく、ワークスペースがデータフィードや集計テーブルに合わせて継続的に調整する、定期的な検証を設定すると便利です。
まとめ
アドビのデータフィードのラングリングは、気が遠くなるようなプロジェクトのように感じるかもしれません。しかし、一度理解してしまえば、データをカスタマイズして特定のユースケースに対応できる可能性が無限にあります。
この記事は、これらのフィードを理解するための基礎となるもので、少し表面に触れただけです。この豊富なデータについてさらに深く掘り下げるのに役立つ、Experience League の今後の記事をお楽しみにしてください。
その他のリソース
-
データフィードの設定方法:https://experienceleague.adobe.com/ja/docs/analytics/export/analytics-data-feed/data-feed-contents/datafeeds-contents
-
データフィードに含まれる hat ファイルの概要:https://experienceleague.adobe.com/ja/docs/analytics/export/analytics-data-feed/data-feed-contents/datafeeds-contents
-
Adobe データフィード列:https://experienceleague.adobe.com/ja/docs/analytics/export/analytics-data-feed/data-feed-contents/datafeeds-contents
-
Adobe データ処理のフローチャート:https://experienceleague.adobe.com/ja/docs/analytics/technotes/processing-order
-
一般的な計算指標をデータフィードにレプリケートする方法:https://experienceleague.adobe.com/ja/docs/analytics/export/analytics-data-feed/data-feed-contents/datafeeds-calculate