GA4インポートとアプリ計測の重複除外方法
USERGRAMでは、アプリ内 WebView でユーザ行動を測定するためにFirebase計測を利用します。しかしお客様のサイトでアプリ内 WebView も対象に Google Analytcs 4を導入し、USERGRAMのGA4インポートも導入された場合、この共通する領域でUSERGRAMにおけるデータ重複が発生します。
本記事では、そのデータ重複を除外する方法をご案内します。
重複除外の指定方法概要
アプリ内 WebView において GA4 データ連携と Firebase 計測の併用時のデータ重複を除外するには、下記2つの仕組みを利用できます。
- GA4 データ連携におけるFirebase計測対象データ除外 (下記図のa.)
- Firebase計測用のUSERGRAMタグでウェブブラウザのウェブ計測を除外 (下記図のb.)
GA4 データ連携におけるFirebase計測対象データ除外指定
アプリ内 WebView において、Firebase計測による行動データに加えて、GA4データ連携による行動データを取得するためデータ重複が生じます。
この場合、GA4のイベント送信時に ug_firebase_detected
イベントパラメータを付与することでデータ除外指定を行います。これにより、Google Analytcs 4のデータに影響を与えることなく、データ除外指定に基づいてUSERGRAM側でデータ重複を除去することができます(上図のa)。
GoogleタグまたはGTMによるデータ除外指定をそれぞれ下記に提示します。
Googleタグの場合
全イベント共通のパラメータ ug_firebase_detected
をセットアップすることで、データ除外指定を行います。
Googleタグの他のイベントより前のタイミングで発火するよう、下記のタグを他のタグより前に読み込ませてください。
<!-- Google tag (gtag.js) --> <script async src="https://www.googletagmanager.com/gtag/js?id=TAG_ID"></script> <script type="text/javascript"> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); const firebaseDetected = (window.AnalyticsWebInterface || window.webkit?.messageHandlers?.firebase) ? 1 : 0; gtag('config', 'TAG_ID', { 'ug_firebase_detected': firebaseDetected }); </script>
ここで、
TAG_ID
(二箇所)は、Google Analytics 4 における対象ウェブ ストリームの測定 IDで差し替えてください。
GTMの場合
ここではカスタム JavaScriptを使ったデータ除外指定を説明します。
ug_firebase_detected
という変数名でカスタムJavaScript変数を作成し、下記のカスタムJavaScriptを登録します。
function () { return (window.AnalyticsWebInterface || (window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.firebase)) ? 1 : 0; }
- 次に、Google タグの共有イベント設定で、イベントパラメータ
ug_firebase_detected
を追加し、値として{{ug_firebase_detected}}
(定義したカスタムJavaScript変数)を指定します。
※ページにコンテンツ セキュリティ ポリシー (CSP) ヘッダーがある場合は、script-src
ディレクティブで 'unsafe-eval'
を指定する必要があります。
https://developers.google.com/tag-platform/security/guides/csp#custom_javascript_variables
Firebase計測用のUSERGRAMタグでウェブブラウザのウェブ計測を除外指定
ウェブブラウザにおいて、GA4データ連携による行動データに加えて、WebView用に設置されたUSERGRAM計測タグにより行動データを取得するためデータ重複が生じます。
この場合、USERGRAMタグでユーザ行動データ収集する前に ugattr['firebaseOnly']
のフラグとして値1をセットすることで、データ収集除外を行います。これにより、USERGRAMにおけるデータ重複を防ぐことができます(上図のb)。
USERGRAMタグでデータ収集除外指定を行うには、通常のUSERGRAMタグの前に下記のコードを追加してください。
<!-- USERGRAM Attributes --> <script type="text/javascript"> window.ugattr = window.ugattr || {}; ugattr['firebaseOnly'] = 1; </script> <!-- USERGRAM Attributes end -->
また、通常のUSERGRAMタグに下記のように ugattr
が含まれることを確認してください。これが含まれない場合は、USERGRAMの画面からもう一度タグを取り出してください。
usergram.push(['send','●●●●●●-1','pv',ugattr]);