オンボーディングチームの塚原 一喜です。
今回はAudienceStudioを使用する際に欠かせないMasterSengent生成におけるIDマスタ作成の小技を紹介します。
どのカラムをkeyとしてユニーク化するか
基本的にIDマスタはカラム単位でユニークにしたものを作成する必要があります。しかしWebログや会員サイトログにおいては、ユニークにしたいkeyに対して、複数のcookieが紐づいてしまう場合があります。例えば、家族で同じパソコンを使っている場合、同じブラウザで父親と子供が別のアカウントでログインした場合は、会員IDは異なるがcookieは同一といった現象が起こります。そうした場合の事前処理についてTipsをご紹介します。
1stPartyCookieに対して複数の3rdPartyCookieが存在する場合
このケースは、ほとんどのお客様で見られるケースです。今回はtd_ssc_id(1stPartyCookie)とtd_global_id(3rdPartyCookie)の事例を元に紹介します。
元データ
time | td_ssc_id | td_globai_id |
1634655600 | a | 1 |
1634655601 | a | 2 |
1634655602 | a | 3 |
1634655603 | b | 4 |
1634655604 | b | 5 |
1634655605 | b | 6 |
1634655606 | c | 7 |
1634655607 | c | 8 |
上記のようなデータを整形する場合、
- td_ssc_idに対して最新のtd_global_idを保持する
- td_ssc_idに対して配列でtd_global_idを保持する
という2パターンの処理が考えられます。
td_ssc_idに対して最新のtd_global_idを保持する
MAX_BY(td_global_id,time)やROW_NUMBER()関数を使い、最新のtg_global_idだけを保持したマスタに修正します。
td_ssc_id | td_globai_id |
a | 3 |
b | 6 |
c | 8 |
td_ssc_idに対して配列でtd_global_idを保持する
ARRAY_AGG(DISTINCT td_globai_id)などの処理で、配列にして保持します。
td_ssc_id | td_globai_id |
a | [1,2,3] |
b | [4,5,6] |
c | [7,8] |
上記の処理は、AudienceStudioでどういった処理をしたいかという要件に合わせて、どちらを採用するか決定してください。
配列で持たせた場合、広告プラットフォームにセグメントを渡す場合に注意していただきたいのが、AudienceStudioのActivationから直ではデータ送信できないという点にご注意ください。これは、送信する際に、配列をCROSS JOINで縦持ちに分解してから送信する必要があるため、若干手間ではあるのですが、一旦TDの中にデータを書き出して、それをWorkflowやSQLで分解して送信していく必要があります。貯めたデータを全て連携したいと言った場合、一旦配列で持たせるという形がベストプラクティスになりますが、上記の点だけご注意いただければと思います。
参考までに、AudienceStudioで作成したセグメントの配列カラムを分解して送信するサンプルWorkflowを掲載します。 AudienceStudioから一定のルールに則ってTD内にデータを書き出していく必要がございますので、もし使用されたい場合は担当までご相談ください。
https://github.com/tsukaharakazuki/td/tree/master/cdp_segments_send_array_key
LINE連携などで活用したい場合、会員統合すると複数のメールアドレスが登録されている・モバイル広告IDが複数あるなど、意外と使用場面が多いTipsです。
以上、IDマスタ作成のTipsご紹介でした。