共有デバイス
この記事では、共有デバイスに関するコンテキスト、 ステッチを使用して共有デバイスのデータを処理および軽減する方法、クエリサービスを使用してデータにおける共有デバイスの漏洩を理解する方法について説明します。
共有デバイスとは
共有デバイスとは、複数のユーザーが使用するデバイスです。 一般的なシナリオは、タブレット、キオスクで使用されるデバイス、コールセンターのエージェントが共有するコンピューター機器などのデバイスです。
2 人のユーザーが同じデバイスを使用し、両方のユーザーが購入を行う場合、サンプルイベントデータは次のようになります。
1234
1234
1234
ryan@a.com
1234
1234
cassidy@a.com
この表からわかるように、イベント 3 と 5 で認証が行われると、デバイス ID とユーザー ID の間にリンクが形成され始めます。 マーケティング活動がユーザーレベルに与える影響を理解するには、これらの未認証イベントを適切なユーザーに関連付ける必要があります。
ユーザー中心の分析の向上
ステッチプロセスは、選択した人物識別子(サンプルデータ内のメール)を、その識別子が存在しないイベントに追加することで、このアトリビューション問題に対処します。 ステッチでは、デバイス ID とユーザー ID のマッピングを活用して、認証済みトラフィックと未認証トラフィックの両方を分析で使用できるようにし、ユーザー中心を維持します。 詳しくは、 ステッチを参照してください。
ステッチでは、最終認証アトリビューションまたはデバイス分割アトリビューションのいずれかを使用して、共有デバイスデータの属性を設定できます。 未認証のイベントを既知のユーザーに関連付けようとする試みはすべて、非決定的です。
最終認証アトリビューション
Last-auth は、共有デバイスから最後に認証を行ったユーザーに対して、すべての不明なアクティビティを属性にします。 Experience PlatformID サービスは、last-auth アトリビューションに基づいてグラフを作成するため、グラフベースのステッチで使用されます。 詳しくは、ID グラフリンクルールの概要を参照してください。
ステッチで last-auth アトリビューションを使用すると、次の表に示すように、ステッチされた ID が解決されます。
1234
cassidy@a.com
1234
cassidy@a.com
1234
ryan@a.com
cassidy@a.com
1234
cassidy@a.com
1234
cassidy@a.com
cassidy@a.com
1234
cassidy@a.com
デバイス分割
デバイス分割は、共有デバイスからの匿名アクティビティを、その匿名アクティビティに最も近いユーザーに属性します。 デバイス分割は、現在、フィールドベースのステッチで使用されています。
ステッチでデバイス分割アトリビューションを使用する場合、次の表に示すように、ステッチされた ID が解決されます。
1234
ryan@a.com
1234
ryan@a.com
1234
ryan@a.com
ryan@a.com
1234
ryan@a.com
1234
cassidy@a.com
cassidy@a.com
1234
cassidy@a.com
共有医療機器曝露
組織における共有デバイスの普及状況を正しく理解するには、いくつかの要因を考慮します。 また、共有デバイスからのイベントの全体的な影響を把握することで、分析に使用される全体的なイベントデータへの影響を理解できます。
共有デバイスの公開を理解するには、次のクエリの実行を検討します。
-
共有デバイスの識別
共有されているデバイスの数を把握するには、複数のユーザー 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;
-
共有デバイスに対するイベントの帰属
識別された共有デバイスについて、これらのデバイスに起因する可能性のあるイベントの数を合計から決定します。 このアトリビューションは、共有デバイスがデータに与える影響と分析に対する影響に関するインサイトを提供します。
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;