共有デバイス
この記事では、共有デバイスに関するコンテキストと、 ステッチ を使用して共有デバイスからのデータを処理および軽減する方法、およびクエリサービスを使用してデータ内の共有デバイスの露出を把握する方法について説明します。
共有デバイスとは?
共有デバイスは、複数のユーザーが使用するデバイスです。 一般的なシナリオは、タブレットなどのデバイス、キオスクで使用されるデバイス、コールセンターの担当者が共有するコンピューター機器などです。
2人が同じデバイスを使用し、両方で認証済みの購入をおこなう場合、サンプルイベントデータは次のようになります。
123412341234ryan@a.com12341234cassidy@a.comこの表から分かるように、イベント 3と5で認証が行われると、デバイス IDと人物IDの間にリンクが形成され始めます。 マーケティング活動が個人レベルで与える影響を把握するには、これらの未認証のイベントを適切な人物に起因させる必要があります。
人物中心の分析を改善
このステッチプロセスでは、選択した人物識別子(データの例では電子メール)を、その識別子が存在しないイベントに追加することで、このアトリビューションの問題に対処します。 接続では、デバイス IDと人物IDのマッピングを利用して、認証済みトラフィックと未認証トラフィックの両方を分析で使用できるようにし、人物を中心に据えます。 詳しくは、 ステッチ を参照してください。
ステッチでは、last-auth アトリビューションまたはdevice-split アトリビューションを使用して、共有デバイスデータにアトリビューションを付けることができます。 未認証のイベントを既知のユーザーに結びつけるあらゆる試みは、決定論的ではありません。
Last-auth attribution
Last-authは、共有デバイスのすべての不明なアクティビティを、最後に認証されたユーザーに属性します。 Experience Platform Identity Serviceは、last-auth アトリビューションに基づいてグラフベースを構築するため、グラフベースの合成に使用されます。 詳細については、ID グラフ リンク ルール を参照してください。
ステッチでlast-auth アトリビューションを使用する場合、ステッチ IDは次の表のように解決されます。
1234cassidy@a.com1234cassidy@a.com1234ryan@a.comcassidy@a.com1234cassidy@a.com1234cassidy@a.comcassidy@a.com1234cassidy@a.comDevice-split
デバイス分割では、共有デバイスの匿名アクティビティを、過去に閲覧した最新の既知のユーザーに割り当てます。 デバイス分割は現在、フィールドベースのステッチで使用されています。
デバイス分割アトリビューションをステッチで使用する場合、ステッチ IDは次の表に示すように解決されます。
1234ryan@a.com1234ryan@a.com1234ryan@a.comryan@a.com1234ryan@a.com1234cassidy@a.comcassidy@a.com1234cassidy@a.com共有デバイス露出
共有デバイスが組織内でどの程度普及しているかを正しく把握するために、いくつかの要因を検討してください。 さらに、共有デバイスからのイベントの全体的な貢献度を把握すると、分析に使用されたイベントデータ全体への影響を把握できます。
共有デバイスの露出を把握するには、次のクエリを実行することを考えます。
-
共有デバイスの特定
共有されているデバイスの数を把握するには、2つ以上の人物IDが関連付けられているデバイス IDをカウントするクエリを実行します。 これにより、複数のユーザーが使用しているデバイスを特定できます。
code language-sql SELECT COUNT(*) FROM ( SELECT /* INSERT PERSISTENT FIELD HERE */ AS persistent_id, COUNT(DISTINCT /* INSERT TRANSIENT FIELD HERE */) AS transient_count FROM /* INSERT DATASET HERE */ GROUP BY 1 ) WHERE transient_count > 1; -
共有デバイスに対するイベントの属性
特定された共有デバイスについて、合計のうち、これらのデバイスに起因するイベントの数を決定します。 このアトリビューションにより、insightでは、共有デバイスがデータに与える影響と、分析に対する影響を把握できます。
code language-sql SELECT COUNT(*) AS total_events, COUNT(IF(shared_persistent_ids.persistent_id IS NOT NULL, 1, null)) shared_persistent_ids_events, (COUNT(IF(shared_persistent_ids.persistent_id IS NOT NULL, 1, null)) / COUNT(*)) * 100 AS shared_persistent_ids_events_percent FROM ( SELECT /* INSERT PERSISTENT FIELD HERE */ AS persistent_id, /* INSERT TRANSIENT FIELD HERE */ AS transient_id FROM /* INSERT DATASET HERE */ ) events LEFT JOIN ( SELECT persistent_id FROM ( SELECT /* INSERT PERSISTENT FIELD HERE */ AS persistent_id, COUNT(DISTINCT /* INSERT TRANSIENT FIELD HERE */) AS transient_count FROM /* INSERT DATASET HERE */ GROUP BY 1 ) WHERE transient_count > 1 ) shared_persistent_ids ON events.persistent_id = shared_persistent_ids.persistent_id; -
共有デバイス上の匿名イベントを識別
共有デバイスに起因するイベントの中から、匿名のイベントを示すユーザーIDが欠落しているイベントの数を特定します。 データ品質を向上させるために選択したアルゴリズム(last-auth、device-split、ECID-resetなど)は、これらの匿名イベントに影響します。
code language-sql SELECT COUNT(IF(shared_persistent_ids.persistent_id IS NOT NULL, 1, null)) shared_persistent_ids_events, COUNT(IF(shared_persistent_ids.persistent_id IS NOT NULL AND events.transient_id IS NULL, 1, null)) shared_persistent_ids_anon_events, (COUNT(IF(shared_persistent_ids.persistent_id IS NOT NULL AND events.transient_id IS NULL, 1, null)) / COUNT(IF(shared_persistent_ids.persistent_id IS NOT NULL, 1, null))) * 100 AS shared_persistent_ids_anon_events_percent FROM ( SELECT /* INSERT PERSISTENT FIELD HERE */ AS persistent_id, /* INSERT TRANSIENT FIELD HERE */ AS transient_id FROM /* INSERT DATASET HERE */ ) events LEFT JOIN ( SELECT persistent_id FROM ( SELECT /* INSERT PERSISTENT FIELD HERE */ AS persistent_id, COUNT(DISTINCT /* INSERT TRANSIENT FIELD HERE */) AS transient_count FROM /* INSERT DATASET HERE */ GROUP BY 1 ) WHERE transient_count > 1 ) shared_persistent_ids ON events.persistent_id = shared_persistent_ids.persistent_id; -
イベントの誤分類からの露出の計算
最後に、イベントの誤分類によって各顧客が直面する可能性のある露出を評価します。 共有デバイスごとにイベントの合計に対する匿名イベントの割合を計算します。 これは、顧客データの正確性に与える可能性のある影響を把握するのに役立ちます。
code language-sql SELECT COUNT(*) AS total_events, COUNT(IF(shared_persistent_ids.persistent_id IS NOT NULL, 1, null)) shared_persistent_ids_events, (COUNT(IF(shared_persistent_ids.persistent_id IS NOT NULL AND events.transient_id IS NULL, 1, null)) / COUNT(*)) * 100 AS shared_persistent_ids_events_percent FROM ( SELECT /* INSERT PERSISTENT FIELD HERE */ AS persistent_id, /* INSERT TRANSIENT FIELD HERE */ AS transient_id FROM /* INSERT DATASET HERE */ ) events LEFT JOIN ( SELECT persistent_id FROM ( SELECT /* INSERT PERSISTENT FIELD HERE */ AS persistent_id, COUNT(DISTINCT /* INSERT TRANSIENT FIELD HERE */) AS transient_count FROM /* INSERT DATASET HERE */ GROUP BY 1 ) WHERE transient_count > 1 ) shared_persistent_ids ON events.persistent_id = shared_persistent_ids.persistent_id;