/dmp/traffic, /dmp/traffic/event および /dmp/traffic/custom は、すべての Traffic フィルター (注釈参照)に加え、dmp-event および dmp-custom の二つのフィルターをサポートします。
-
DMP 固有のフィルター(dmp-event および dmp-custom)をTraffic データに適用する、または Traffic 固有のフィルター(
event,custom,keyword,user-keyword,user-external,intentおよびactiveTime)を DMP データに適用することは可能です。そのためには、/dmp/push で設定するcookieおよびprnd値は、対応する cx.js ページビューイベントのものと一致する必要があります。DMP データと Traffic データの結合については、下記を参照ください。
-
上記の要件に関わらず、
explodeUsers,user,time,andそしてandnotフィルターを dmp-event および dmp-custom の上位で使用することができます。 -
explodeUsersまたはhavingでdmp-eventまたはdmp-customを囲んだフィルタを使用する場合、そのようなフィルタは1サイトに対してのみ使用可能です(複数サイトを指定したクエリには使用できません)。
目次:
DMP event フィルター
DMP event フィルターは DMP イベントの標準プロパティーに基づいてフィルタリングすることを可能にします。例えば、特定の基準イベント(origin)、セグメント、タイプのイベントだけを取得したいといったケースが考えられます。利用可能な group および各 group でよく利用される item は /dmp/traffic/event を用いて確認できます。
-
このフィルターの基本的な形式は以下の通りです:
{"type":"dmp-event", "group":"type", "item":"click"} -
複数の item を指定し、いずれかにマッチさせることも可能です:
{"type":"dmp-event", "group":"segment", "items":["8l7ieaao4s8x", "8ka93oaeobjl", "8kwf40e4tb66"]}
DMP custom フィルター
DMP custom フィルターは DMP イベントのカスタムプロパティーに基づいてフィルタリングすることを可能にします。独自に追加したカスタムプロパティーの値を用いて、取得するイベントを限定するために利用できます。 利用可能な group および 各 group でよく利用される item は /dmp/traffic/custom を用いて確認できます。
-
このフィルターの基本的な形式は以下の通りです:
{"type":"dmp-custom", "group":"campaign", "item":"Model S"} -
複数の item を指定し、いずれかにマッチさせることも可能です:
{"type":"dmp-custom", "group":"advertiser", "items":["Tesla Motors", "Lexus"]}
-
空でない任意の値にマッチさせることも可能です:
{"type":"dmp-custom", "group":"newsletter"}
Traffic データと DMP データの結合
Traffic および DMP イベントは二つの API セット(/traffic/event および /dmp/traffic/event)で集計し、二つのフィルターセット(event および dmp-event)に関連付けられています。どちらの API も直接あるいは explodeUsers または user having 句経由でお互いのフィルターをサポートします。以降では、二つの API セットをまたいだデータの結合の、実践的ないくつかの方法について説明します。
次の Traffic データを想定します:
|
time |
user |
rnd |
... |
|---|---|---|---|
|
1429458560 |
user0 |
6 |
|
|
1429458561 |
user0 |
7 |
|
|
1429458561 |
user0 |
43 |
|
|
1429458562 |
user1 |
13 |
|
|
1429458563 |
user1 |
17 |
|
各行は Traffic イベントを表し、'...' はイベントデータを含む列を表します。ここで、/traffic と Traffic ベースのフィルター(これらの行にマッチすると想定)を用いてデータを集計すると、5 (Traffic)イベントと 2 ユニークユーザーが得られます。
今度は次の DMP データを想定します:
|
time |
user |
prnd |
rnd |
... |
|---|---|---|---|---|
|
1429458560 |
user0 |
6 |
1 |
|
|
1429458560 |
user0 |
6 |
3 |
|
|
1429458561 |
user0 |
7 |
15 |
|
|
1429458561 |
user0 |
7 |
91 |
|
|
1429458561 |
user0 |
8 |
79 |
|
各行は DMP イベントを表し、'...' は DMP イベントデータを含む列を表します。ここで、/dmp と DMP ベースのフィルター(これらの行にマッチすると想定)を用いてデータを集計すると、5 (DMP)イベントと 1 ユニークユーザーが得られます。
explodeUsers を使用した結合
次に、/traffic API で上記の DMP イベントにマッチするフィルターを explodeUsers(または user having)囲んだ場合、3 イベントと 1 ユニークユーザーを得ます。これは、最初に DMP フィルターにマッチするユーザー(user0)を探し、次に Traffic データから該当するユーザーのすべての Traffic イベントを探すためです。このようなクエリの実例としては、特定の DMP フィルターにマッチするイベント(例えばコンバージョン)に該当するユーザーの情報を収集するようなケースが考えられます。
この挙動により得られる結果として以下に注意する必要があります:
-
クエリはイベントで使われたprnd値を無視してマッチングを行います
-
explodeUsers フィルタの
allEventsとconsecutiveEventsのいずれもユーザーのイベント全てにマッチします
explodeUsers を使用しない結合
反対に、もし explodeUsers(または user having)なしに上記の DMP イベントにマッチするフィルターと一緒に /traffic を利用した場合、結果は 2 イベントと 1 ユニークユーザーになります。これは、最初に DMP フィルターにマッチする <user, prnd> のペアを DMP データから探し(<user0, 6> および <user0, 7>)、次に Traffic データからこれらのペア(<user, rnd>)に対するすべての Traffic イベントを探すためです。このような問い合わせの実例としては、特定の DMP フィルターにマッチするイベントのみに限定してユーザーの情報を収集するようなケースが考えられるでしょう。
同様に、上記の Traffic イベントにマッチするフィルターの上位で explodeUsers と一緒に /dmp を利用すると、結果は 5 イベントと 1 ユニークユーザーとなります。explodeUsers を使用しなければ、結果は 4 イベントと 1 ユニークユーザーになります。最後の DMP イベントは対応する Traffic イベントがないためです(お客様が有効な prnd 値を各 DMP イベントに付与していればこの状況は起きませんが、可能性のあるシナリオです)。