Googleアナリティクスで同一URLでフォーム遷移する場合のページビュー計測

計測URLを正規化する、1ページは1URLに集約してページビュー計測することが望ましいことはhttps://www.marketechlabo.com/send-ga-pageview-canonicalized-url/で取り上げたが、この「1ページで複数URL」とは逆に「複数のページで1URL」になるパターンの対応法を取り上げる。

よくあるのはフォームの遷移などで、同一URLで異なる内容のページが表示されることがある。

入力フォーム→確認画面→完了画面

これらが画面遷移はあるものの1URLで完結しているケースである。ひどい場合は完了画面までもが同一URLになるため、コンバージョンの計測すらできない。

これをステップごとに異なる仮想URLを発行して計測する(ga('send', 'pageview', {'page': 'ステップの仮想URL'}))のだが、中にはフォームのシステム側で仮想URLを発行させ、それをGoogleアナリティクスのトラッキングコードに挿入する実装指示書もある。

そうなるとシステムの改修のコスト、手間がかかってしまうため、システムの改修は極力回避したい。

今回は純粋にHTMLの範囲だけでこの問題を解決する方法を取り上げる。通常

  1. ステップに応じてtitleタグの内容が異なる場合と、
  2. ステップに応じて見出しの内容が異なる場合と、
  3. URLもtitleタグの内容も同じだが、ページ内で表示している画像が異なる場合

のいずれかに当てはまることが多いので、これらのパターンを想定してユニバーサルアナリティクスの生タグで実装する方法を説明する。

ステップに応じてtitleタグの内容が異なる場合

あらかじめ

  • 共通になるURL(パス名)と
  • titleのテキストと付ける仮想URL(パス名)の組み合わせ

を設定しておく。

// トラッカーの呼び出し(デフォルトのトラッキングコード)
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

ga('create', 'UA-XXXXXXX-Y', 'auto');

// 設定
// 共通になるパス
var strCommonPath = '/service/form.php';
// 仮想パス名をキー、titleのテキストを値にとる連想配列
var steps = {
  '/service/form/1_input': '会員情報入力フォーム',
  '/service/form/2_confirm': '登録内容の確認',
  '/service/form/3_thanks': '登録ありがとうございました',
};

// 処理
// パス名が共通の場合
if (window.location.path == strCommonPath){
  // stepの中からtitleがマッチするものを抽出
  var paths = Object.keys(steps).filter(function(path) { return steps[path]==document.getElementsByTagName('title')[0].innerText });
  if (paths.length > 0) {
    // マッチした場合に仮想パス名をsend pageviewする。
    ga('send', 'pageview', {'page': paths[0]});
  } else {
    // どれにもマッチしない場合、仕方なく共通のパス名を採用
    ga('send', 'pageview');
  }
// パス名が共通でなければデフォルトの動作を採用
}else{
  ga('send', 'pageview');
}

ステップに応じて見出し(

)の内容が異なる場合

あらかじめ以下を設定しておく。

  • 共通になるURL(パス名)と
  • 各ステップの見出し(

    )に固有に含まれるテキストと付ける仮想URL(パス名)の組み合わせ

たとえば見出しが

  • 会員情報入力画面
  • 会員情報確認画面
  • 会員登録完了

という場合、

  • 入力
  • 確認
  • 登録完了

などが固有のテキストとなる。

// トラッカーの呼び出し(デフォルトのトラッキングコード)
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

ga('create', 'UA-XXXXXXX-Y', 'auto');

// 設定
// 共通になるパス
var strCommonPath = '/service/form.php';
// 仮想パス名をキー、h1に含まれる固有のテキストを値にとる連想配列
var steps = {
  '/service/form/1_input': '入力',
  '/service/form/2_confirm': '確認',
  '/service/form/3_thanks': '完了',
};

// 処理
// パス名が共通の場合
if (window.location.path == strCommonPath){
  // DOMから値を取得するのでDOM取得完了を待つ必要がある
  document.addEventListener('DOMContentLoaded', function(){
    // stepの中からh1の内容が部分一致するものを抽出
    var paths = Object.keys(steps).filter(function(path) { return document.getElementsByTagName('h1')[0].innerText.indexOf(steps[path]) > -1 });
    if (paths.length > 0) {
      // マッチした場合に仮想パス名をsend pageviewする。
      ga('send', 'pageview', {'page': paths[0]});
    } else {
      // どれにもマッチしない場合、仕方なく共通のパス名を採用
      ga('send', 'pageview');
    }
  }, false);
// パス名が共通でなければデフォルトの動作を採用
}else{
  ga('send', 'pageview');
}

</code>と同じ。<code>document.getElementsByTagName()</code>の引数が違うだけ。<br> 今回は<code><h1></code>に含まれる固有のテキストで部分一致を探したが、それは<code><title></code>でも可能。</p> <h2><span class="ez-toc-section" id="URL%E3%82%82title%E3%82%BF%E3%82%B0%E3%81%AE%E5%86%85%E5%AE%B9%E3%82%82%E5%90%8C%E3%81%98%E3%81%A0%E3%81%8C%E3%80%81%E3%83%9A%E3%83%BC%E3%82%B8%E5%86%85%E3%81%A7%E8%A1%A8%E7%A4%BA%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E7%94%BB%E5%83%8F%E3%81%8C%E7%95%B0%E3%81%AA%E3%82%8B%E5%A0%B4%E5%90%88"></span>URLもtitleタグの内容も同じだが、ページ内で表示している画像が異なる場合<span class="ez-toc-section-end"></span></h2> <p>前提条件</p> <ul><li>URLが共通となるフォームの遷移にはクラス名「form」を持つ<code><div></code>が含まれる</li> <li>上記の<code><div class="form"></code>直下の<code><img></code>タグがステップによって固有である</li> <li>画像ファイル名の拡張子を除いた部分を仮想URLとして付ける(拡張子は<code>.jpg</code>)</li> </ul><p>というルールにする。</p> <pre><code class="js">// トラッカーの呼び出し(デフォルトのトラッキングコード) (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-XXXXXXX-Y', 'auto'); // DOMから値を取得するのでDOM取得完了を待つ必要がある document.addEventListener('DOMContentLoaded', function(){ // <div class="form">の直下に<img>が来るパターンをdocument.querySelector()で探す var imgStep = document.querySelector('div.form > img'); // そのパターンがあれば(フォーム遷移であれば) if (imgStep !== null){ // 画像ファイル名の拡張子(.jpg)を除いた部分を取得 var imgMatched = imgStep.src.match(/([^/]+)\.jpg$/); if (imgMatched) { // 画像ファイル名の拡張子を除いた部分をパス名に付加してsend pageview if (imgMatched[1]) { ga('send', 'pageview', {'page': location.pathname + '/' + imgMatched[1]}); // 例外(imgMatched[1]がない):仕方なく共通のパス名を採用 } else { ga('send', 'pageview'); } // 例外(画像ファイル名の拡張子が.jpgでない):仕方なく共通のパス名を採用 } else { ga('send', 'pageview'); } // それ以外のページであればデフォルトの動作を採用 } else { ga('send', 'pageview'); } }, false); </code></pre> <h2><span class="ez-toc-section" id="Google%E3%82%A2%E3%83%8A%E3%83%AA%E3%83%86%E3%82%A3%E3%82%AF%E3%82%B9%E9%96%A2%E9%80%A3Tips"></span>Googleアナリティクス関連Tips<span class="ez-toc-section-end"></span></h2> <h3><span class="ez-toc-section" id="%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88%E8%A8%88%E6%B8%AC"></span>イベント計測<span class="ez-toc-section-end"></span></h3> <ul><li><a href="/send-ga-event-inview-specified-element/">特定の要素を表示したときにイベントトラッキングする</a></li> <li><a href="/send-ga-event-scroll-specified-height/">一定以上スクロールしたらイベントトラッキング(PC/スマホ別)</a></li> <li><a href="/track-form-transition-in-same-url/">JavascriptでYahoo!などのタグマネージャに渡すためのイベントを発生させる</a></li> </ul><h3><span class="ez-toc-section" id="%E3%83%9A%E3%83%BC%E3%82%B8%E3%83%93%E3%83%A5%E3%83%BC%E8%A8%88%E6%B8%AC"></span>ページビュー計測<span class="ez-toc-section-end"></span></h3> <ul><li>[同一URLでフォーム遷移する場合のページビュー計測](/track-form-transition-in-same-url/</li> <li><a href="/send-ga-pageview-canonicalized-url/">canonicalをページのURLとして自動で採用する実装(計測URLの正規化)</a></li> </ul><h3><span class="ez-toc-section" id="e%E3%82%B3%E3%83%9E%E3%83%BC%E3%82%B9%E8%A8%88%E6%B8%AC"></span>eコマース計測<span class="ez-toc-section-end"></span></h3> <ul><li><a href="/implement-ga-ec-without-modifying-program/">システム改修をせずにGoogleアナリティクスのeコマーストラッキングを実装する</a></li> </ul><p>Google の記事一覧</p> <ul><div class="linkcard"><div class="lkc-external-wrap"><a class="lkc-link no_icon" rel="nofollow" href="https://www.marketechlabo.com/google-analytics-gtm-advanced-settings/" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=www.marketechlabo.com" alt="" width="16" height="16"><div class="lkc-domain">marketechlabo</div> <div class="lkc-share"> <div class="lkc-sns-hb">17 Users</div> <div class="lkc-sns-po">23 Pockets</div></div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="https://www.marketechlabo.com/images/pz-linkcard/cache/d51238b75a4be31dc8fd5c13776c7c8a6219e111ed93c60300cc68416205735d.jpeg" alt=""></figure><div class="lkc-title"><div class="lkc-title-text">高度な計測に使えるGTMの黒魔術とタグアシスタントの裏技 | marketechlabo</div></div><div class="lkc-url">https://www.marketechlabo.com/google-analytics-gtm-advanced-settings/</div><div class="lkc-excerpt"></div></div><div class="clear"></div></div></a></div></div><div class="linkcard"><div class="lkc-external-wrap"><a class="lkc-link no_icon" rel="nofollow" href="https://www.marketechlabo.com/set-conversion-ga4/" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=www.marketechlabo.com" alt="" width="16" height="16"><div class="lkc-domain">marketechlabo</div> <div class="lkc-share"> <div class="lkc-sns-hb">18 Users</div> <div class="lkc-sns-po">29 Pockets</div></div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="https://www.marketechlabo.com/images/pz-linkcard/cache/5168c38ff6d48fca16336b1d589b7be24cc50e403041beb9a640440bd009578c.jpeg" alt=""></figure><div class="lkc-title"><div class="lkc-title-text">Googleアナリティクス4で管理画面だけでコンバージョン設定する | marketechlabo</div></div><div class="lkc-url">https://www.marketechlabo.com/set-conversion-ga4/</div><div class="lkc-excerpt"></div></div><div class="clear"></div></div></a></div></div><div class="linkcard"><div class="lkc-external-wrap"><a class="lkc-link no_icon" rel="nofollow" href="https://www.marketechlabo.com/ga-app-web-property-to-bigquery/" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=www.marketechlabo.com" alt="" width="16" height="16"><div class="lkc-domain">marketechlabo</div> <div class="lkc-share"> <div class="lkc-sns-hb">16 Users</div> <div class="lkc-sns-po">26 Pockets</div></div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="https://www.marketechlabo.com/images/pz-linkcard/cache/6f05a4ff421ac0ab6b636d3b19c563e6ee4752b6fa8074df1799a891b6a9ae8a.jpeg" alt=""></figure><div class="lkc-title"><div class="lkc-title-text">Googleアナリティクス4のデータをBigQuery出力する | marketechlabo</div></div><div class="lkc-url">https://www.marketechlabo.com/ga-app-web-property-to-bigquery/</div><div class="lkc-excerpt"></div></div><div class="clear"></div></div></a></div></div><div class="linkcard"><div class="lkc-external-wrap"><a class="lkc-link no_icon" rel="nofollow" href="https://www.marketechlabo.com/send-ga-pageview-canonicalized-url/" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=www.marketechlabo.com" alt="" width="16" height="16"><div class="lkc-domain">marketechlabo</div> <div class="lkc-share"> <div class="lkc-sns-hb">1 User</div> <div class="lkc-sns-po">1 Pocket</div></div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fwww.marketechlabo.com%2Fsend-ga-pageview-canonicalized-url%2F?w=100" alt=""></figure><div class="lkc-title"><div class="lkc-title-text">GoogleアナリティクスでcanonicalをページのURLとして自動で採用する | marketechlabo</div></div><div class="lkc-url">https://www.marketechlabo.com/send-ga-pageview-canonicalized-url/</div><div class="lkc-excerpt"></div></div><div class="clear"></div></div></a></div></div><div class="linkcard"><div class="lkc-external-wrap"><a class="lkc-link no_icon" rel="nofollow" href="https://www.marketechlabo.com/ga-log-gcs-bigquery/" target="_blank"><div class="lkc-card"><div class="lkc-info"><img class="lkc-favicon" src="https://www.google.com/s2/favicons?domain=www.marketechlabo.com" alt="" width="16" height="16"><div class="lkc-domain">marketechlabo</div> <div class="lkc-share"> <div class="lkc-sns-hb">47 Users</div> <div class="lkc-sns-po">37 Pockets</div></div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img class="lkc-thumbnail-img" src="https://www.marketechlabo.com/images/pz-linkcard/cache/011c4bc38ed27abe25cf1c3ad87174060d129ccd8f4c30f90196a1387b455d62.jpeg" alt=""></figure><div class="lkc-title"><div class="lkc-title-text">Googleアナリティクスの計測ログをBigQueryに送る(無料版対応)</div></div><div class="lkc-url">https://www.marketechlabo.com/ga-log-gcs-bigquery/</div><div class="lkc-excerpt"></div></div><div class="clear"></div></div></a></div></div></ul></div> <div class="tags-links"> <a href="https://www.marketechlabo.com/tag/google-analytics/" rel="tag">Googleアナリティクス</a>, <a href="https://www.marketechlabo.com/tag/javascript/" rel="tag">JavaScript</a> </div> </article><nav class="navigation post-navigation"><h2 class="screen-reader-text">投稿ナビゲーション</h2> <div class="nav-links"> <div class="nav-previous"><div class="post-nav-title">前の投稿</div><a href="https://www.marketechlabo.com/batch-processing-on-gce/" rel="prev">Google Compute Engineでcronを使って日次バッチ処理を実行する</a></div><div class="nav-next"><div class="post-nav-title">次の投稿</div><a href="https://www.marketechlabo.com/send-event-universal-implementation/" rel="next">JavascriptでYahoo!などのタグマネージャに渡すためのイベントを発生させる</a></div> </div> </nav></main></div> <div id="secondary" class="sidebar-area" role="complementary"> <div class="normal-sidebar widget-area"> <aside id="custom_html-4" class="widget_text widget widget_custom_html"><div class="textwidget custom-html-widget"><ins class="adsbygoogle" style="display:block" data-ad-format="fluid" data-ad-layout-key="-fb+5w+4e-db+86" data-ad-client="ca-pub-7452159768889731" data-ad-slot="1881032194"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script></div></aside><aside id="custom_html-2" class="widget_text widget widget_custom_html"><div class="textwidget custom-html-widget"><h2 class="widget-title">Google の記事一覧</h2><ul class="widget_recent_entries"><li class="cat-item"><a target="_blank" rel="nofollow" href="https://www.marketechlabo.com/google-analytics-gtm-advanced-settings/">高度な計測に使えるGTMの黒魔術とタグアシスタントの裏技</a></li><li class="cat-item"><a target="_blank" rel="nofollow" href="https://www.marketechlabo.com/set-conversion-ga4/">Googleアナリティクス4で管理画面だけでコンバージョン設定する</a></li><li class="cat-item"><a target="_blank" rel="nofollow" href="https://www.marketechlabo.com/ga-app-web-property-to-bigquery/">Googleアナリティクス4のデータをBigQuery出力する</a></li><li class="cat-item"><a target="_blank" rel="nofollow" href="https://www.marketechlabo.com/send-ga-pageview-canonicalized-url/">GoogleアナリティクスでcanonicalをページのURLとして自動で採用する</a></li><li class="cat-item"><a target="_blank" rel="nofollow" href="https://www.marketechlabo.com/ga-log-gcs-bigquery/">Googleアナリティクスの計測ログをBigQueryに送る(無料版対応)</a></li><li class="cat-item"><a target="_blank" rel="nofollow" href="https://www.marketechlabo.com/google-anaytics-checklist-before-setting/">【プロ向け】アクセス解析の設定前チェックリストとGoogleアナリティクス設定手順</a></li><li class="cat-item"><a target="_blank" rel="nofollow" href="https://www.marketechlabo.com/get-invisible-ga-tracker-using-gtm/">GA/GTMを使った際に見えなくなるトラッカーを呼び出して処理を実行する</a></li><li class="cat-item"><a target="_blank" rel="nofollow" href="https://www.marketechlabo.com/send-ga-event-inview-specified-element/">Googleアナリティクスで特定の要素を表示したときにイベントトラッキングする</a></li><li class="cat-item"><a target="_blank" rel="nofollow" href="https://www.marketechlabo.com/implement-ga-ec-without-modifying-program/">システム改修をせずにGoogleアナリティクスのeコマーストラッキングを実装する</a></li><li class="cat-item"><a target="_blank" rel="nofollow" href="https://www.marketechlabo.com/send-ga-event-scroll-specified-height/">Googleアナリティクスで一定ピクセルスクロールしたらイベントトラッキング</a></li></ul><a target="_blank" rel="nofollow" href="https://twitter.com/mrtec_y" class="twitter-follow-button" data-size="large" data-show-screen-name="false" data-dnt="true" data-show-count="false">Follow @mrtec_y</a><script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></div></aside><aside id="tag_cloud-3" class="widget widget_tag_cloud"><h2 class="widget-title">タグクラウド</h2><div class="tagcloud"><a href="https://www.marketechlabo.com/tag/bigquery/" class="tag-cloud-link tag-link-48 tag-link-position-1" style="font-size: 18.36pt;" aria-label="BigQuery (10個の項目)">BigQuery<span class="tag-link-count"> (10)</span></a> <a href="https://www.marketechlabo.com/tag/business-intelligence/" class="tag-cloud-link tag-link-28 tag-link-position-2" style="font-size: 8pt;" aria-label="BIツール (1個の項目)">BIツール<span class="tag-link-count"> (1)</span></a> <a href="https://www.marketechlabo.com/tag/cdp%e6%a7%8b%e7%af%89/" class="tag-cloud-link tag-link-44 tag-link-position-3" style="font-size: 8pt;" aria-label="CDP構築 (1個の項目)">CDP構築<span class="tag-link-count"> (1)</span></a> <a href="https://www.marketechlabo.com/tag/firebase/" class="tag-cloud-link tag-link-32 tag-link-position-4" style="font-size: 13.6pt;" aria-label="Firebase (4個の項目)">Firebase<span class="tag-link-count"> (4)</span></a> <a href="https://www.marketechlabo.com/tag/ga4/" class="tag-cloud-link tag-link-46 tag-link-position-5" style="font-size: 16.4pt;" aria-label="GA4 (7個の項目)">GA4<span class="tag-link-count"> (7)</span></a> <a href="https://www.marketechlabo.com/tag/gcp/" class="tag-cloud-link tag-link-34 tag-link-position-6" style="font-size: 21.72pt;" aria-label="GCP (18個の項目)">GCP<span class="tag-link-count"> (18)</span></a> <a href="https://www.marketechlabo.com/tag/google-analytics/" class="tag-cloud-link tag-link-25 tag-link-position-7" style="font-size: 22pt;" aria-label="Googleアナリティクス (19個の項目)">Googleアナリティクス<span class="tag-link-count"> (19)</span></a> <a href="https://www.marketechlabo.com/tag/javascript/" class="tag-cloud-link tag-link-30 tag-link-position-8" style="font-size: 19.34pt;" aria-label="JavaScript (12個の項目)">JavaScript<span class="tag-link-count"> (12)</span></a> <a href="https://www.marketechlabo.com/tag/perl/" class="tag-cloud-link tag-link-39 tag-link-position-9" style="font-size: 8pt;" aria-label="Perl (1個の項目)">Perl<span class="tag-link-count"> (1)</span></a> <a href="https://www.marketechlabo.com/tag/python/" class="tag-cloud-link tag-link-43 tag-link-position-10" style="font-size: 8pt;" aria-label="Python (1個の項目)">Python<span class="tag-link-count"> (1)</span></a> <a href="https://www.marketechlabo.com/tag/r/" class="tag-cloud-link tag-link-37 tag-link-position-11" style="font-size: 20.6pt;" aria-label="R (15個の項目)">R<span class="tag-link-count"> (15)</span></a> <a href="https://www.marketechlabo.com/tag/web-technology/" class="tag-cloud-link tag-link-36 tag-link-position-12" style="font-size: 10.52pt;" aria-label="Web技術入門 (2個の項目)">Web技術入門<span class="tag-link-count"> (2)</span></a> <a href="https://www.marketechlabo.com/tag/web-analytics/" class="tag-cloud-link tag-link-41 tag-link-position-13" style="font-size: 17.1pt;" aria-label="Web解析 (8個の項目)">Web解析<span class="tag-link-count"> (8)</span></a> <a href="https://www.marketechlabo.com/tag/web-development/" class="tag-cloud-link tag-link-33 tag-link-position-14" style="font-size: 13.6pt;" aria-label="Web開発 (4個の項目)">Web開発<span class="tag-link-count"> (4)</span></a> <a href="https://www.marketechlabo.com/tag/access-log/" class="tag-cloud-link tag-link-27 tag-link-position-15" style="font-size: 18.92pt;" aria-label="アクセスログ (11個の項目)">アクセスログ<span class="tag-link-count"> (11)</span></a> <a href="https://www.marketechlabo.com/tag/server/" class="tag-cloud-link tag-link-35 tag-link-position-16" style="font-size: 17.1pt;" aria-label="サーバ技術 (8個の項目)">サーバ技術<span class="tag-link-count"> (8)</span></a> <a href="https://www.marketechlabo.com/tag/tag-management/" class="tag-cloud-link tag-link-29 tag-link-position-17" style="font-size: 13.6pt;" aria-label="タグ管理 (4個の項目)">タグ管理<span class="tag-link-count"> (4)</span></a> <a href="https://www.marketechlabo.com/tag/data-science/" class="tag-cloud-link tag-link-47 tag-link-position-18" style="font-size: 20.32pt;" aria-label="データサイエンス (14個の項目)">データサイエンス<span class="tag-link-count"> (14)</span></a> <a href="https://www.marketechlabo.com/tag/database/" class="tag-cloud-link tag-link-38 tag-link-position-19" style="font-size: 10.52pt;" aria-label="データベース (2個の項目)">データベース<span class="tag-link-count"> (2)</span></a> <a href="https://www.marketechlabo.com/tag/privacy/" class="tag-cloud-link tag-link-26 tag-link-position-20" style="font-size: 13.6pt;" aria-label="プライバシー (4個の項目)">プライバシー<span class="tag-link-count"> (4)</span></a> <a href="https://www.marketechlabo.com/tag/programmatic-ad/" class="tag-cloud-link tag-link-42 tag-link-position-21" style="font-size: 16.4pt;" aria-label="運用型広告 (7個の項目)">運用型広告<span class="tag-link-count"> (7)</span></a> <a href="https://www.marketechlabo.com/tag/archives/" class="tag-cloud-link tag-link-24 tag-link-position-22" style="font-size: 16.4pt;" aria-label="過去記事 (7個の項目)">過去記事<span class="tag-link-count"> (7)</span></a> <a href="https://www.marketechlabo.com/tag/%e9%9d%99%e7%9a%84%e3%82%b5%e3%82%a4%e3%83%88/" class="tag-cloud-link tag-link-52 tag-link-position-23" style="font-size: 12.2pt;" aria-label="静的サイト (3個の項目)">静的サイト<span class="tag-link-count"> (3)</span></a></div> </aside><aside id="custom_html-5" class="widget_text widget widget_custom_html"><div class="textwidget custom-html-widget"><ins class="adsbygoogle" style="display:block" data-ad-format="fluid" data-ad-layout-key="-fb+5w+4e-db+86" data-ad-client="ca-pub-7452159768889731" data-ad-slot="1881032194"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script></div></aside><aside id="recent-posts-2" class="widget widget_recent_entries"><h2 class="widget-title">最近の投稿</h2> <ul><li> <a href="https://www.marketechlabo.com/ga4-firebase-log-preprocessing/">GA4/Firebaseのログをフラット化する汎用クエリ</a> </li> <li> <a href="https://www.marketechlabo.com/gcp-iam-policy/">GCPのIAMポリシー</a> </li> <li> <a href="https://www.marketechlabo.com/r-glm-libraries/">Rにおける代表的な一般化線形モデル(GLM)の実装ライブラリまとめ</a> </li> <li> <a href="https://www.marketechlabo.com/ga4-bigquery-export-spec/">Googleアナリティクス4のBigQueryエクスポート仕様</a> </li> <li> <a href="https://www.marketechlabo.com/google-analytics-gtm-advanced-settings/">高度な計測に使えるGTMの黒魔術とタグアシスタントの裏技</a> </li> </ul></aside><aside id="custom_html-3" class="widget_text widget widget_custom_html"><div class="textwidget custom-html-widget"><a class="twitter-timeline" data-height="600" data-tweet-limit="5" target="_blank" rel="nofollow" href="https://twitter.com/mrtec_y?ref_src=twsrc%5Etfw">Tweets by mrtec_y</a> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script><a target="_blank" rel="nofollow" href="https://twitter.com/mrtec_y" class="twitter-follow-button" data-size="large" data-show-screen-name="false" data-dnt="true" data-show-count="false">Follow @mrtec_y</a><script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></div></aside></div> </div> </div> <footer id="colophon" class="site-footer"><div class="site-bottom"> <div class="site-bottom-content"> </div> </div> </footer></div> <div class="back-to-top"></div> <script type="text/javascript"><!-- var seriesdropdown = document.getElementById("orgseries_dropdown"); if (seriesdropdown) { function onSeriesChange() { if ( seriesdropdown.options[seriesdropdown.selectedIndex].value != ( 0 || -1 ) ) { location.href = "https://www.marketechlabo.com/series/"+seriesdropdown.options[seriesdropdown.selectedIndex].value; } } seriesdropdown.onchange = onSeriesChange; } --></script><div class="a2a_kit a2a_kit_size_32 a2a_floating_style a2a_vertical_style" style="right:0px;top:100px;background-color:transparent;"><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Fmarketechlabo.18.176.112.138.nip.io%2Ftrack-form-transition-in-same-url%2F&linkname=Google%E3%82%A2%E3%83%8A%E3%83%AA%E3%83%86%E3%82%A3%E3%82%AF%E3%82%B9%E3%81%A7%E5%90%8C%E4%B8%80URL%E3%81%A7%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0%E9%81%B7%E7%A7%BB%E3%81%99%E3%82%8B%E5%A0%B4%E5%90%88%E3%81%AE%E3%83%9A%E3%83%BC%E3%82%B8%E3%83%93%E3%83%A5%E3%83%BC%E8%A8%88%E6%B8%AC%20%7C%20marketechlabo" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Fmarketechlabo.18.176.112.138.nip.io%2Ftrack-form-transition-in-same-url%2F&linkname=Google%E3%82%A2%E3%83%8A%E3%83%AA%E3%83%86%E3%82%A3%E3%82%AF%E3%82%B9%E3%81%A7%E5%90%8C%E4%B8%80URL%E3%81%A7%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0%E9%81%B7%E7%A7%BB%E3%81%99%E3%82%8B%E5%A0%B4%E5%90%88%E3%81%AE%E3%83%9A%E3%83%BC%E3%82%B8%E3%83%93%E3%83%A5%E3%83%BC%E8%A8%88%E6%B8%AC%20%7C%20marketechlabo" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_line" href="https://www.addtoany.com/add_to/line?linkurl=https%3A%2F%2Fmarketechlabo.18.176.112.138.nip.io%2Ftrack-form-transition-in-same-url%2F&linkname=Google%E3%82%A2%E3%83%8A%E3%83%AA%E3%83%86%E3%82%A3%E3%82%AF%E3%82%B9%E3%81%A7%E5%90%8C%E4%B8%80URL%E3%81%A7%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0%E9%81%B7%E7%A7%BB%E3%81%99%E3%82%8B%E5%A0%B4%E5%90%88%E3%81%AE%E3%83%9A%E3%83%BC%E3%82%B8%E3%83%93%E3%83%A5%E3%83%BC%E8%A8%88%E6%B8%AC%20%7C%20marketechlabo" title="Line" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_hatena" href="https://www.addtoany.com/add_to/hatena?linkurl=https%3A%2F%2Fmarketechlabo.18.176.112.138.nip.io%2Ftrack-form-transition-in-same-url%2F&linkname=Google%E3%82%A2%E3%83%8A%E3%83%AA%E3%83%86%E3%82%A3%E3%82%AF%E3%82%B9%E3%81%A7%E5%90%8C%E4%B8%80URL%E3%81%A7%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0%E9%81%B7%E7%A7%BB%E3%81%99%E3%82%8B%E5%A0%B4%E5%90%88%E3%81%AE%E3%83%9A%E3%83%BC%E3%82%B8%E3%83%93%E3%83%A5%E3%83%BC%E8%A8%88%E6%B8%AC%20%7C%20marketechlabo" title="Hatena" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" target="_blank" rel="nofollow" href="https://www.addtoany.com/share"></a></div><script type="text/javascript" src="https://www.marketechlabo.com/themes/businesspress/js/jquery.fitvids.js"></script><script type="text/javascript" src="https://www.marketechlabo.com/themes/businesspress/js/functions.js"></script><script type="text/javascript"> /* <![CDATA[ */ var businesspressScreenReaderText = {"expand":"\u5b50\u30e1\u30cb\u30e5\u30fc\u3092\u958b\u304f","collapse":"\u5b50\u30e1\u30cb\u30e5\u30fc\u3092\u9589\u3058\u308b"}; /* ]]> */ </script><script type="text/javascript" src="https://www.marketechlabo.com/themes/businesspress/js/navigation.js"></script><script type="text/javascript" src="https://www.marketechlabo.com/themes/businesspress/js/skip-link-focus-fix.js"></script><script type="text/javascript" src="https://www.marketechlabo.com/plugins/easy-fancybox/js/jquery.fancybox.min.js"></script><script type="text/javascript"> var fb_timeout, fb_opts={'overlayShow':true,'hideOnOverlayClick':true,'showCloseButton':true,'margin':20,'centerOnScroll':false,'enableEscapeButton':true,'autoScale':true }; if(typeof easy_fancybox_handler==='undefined'){ var easy_fancybox_handler=function(){ jQuery('.nofancybox,a.wp-block-file__button,a.pin-it-button,a[href*="pinterest.com/pin/create"],a[href*="facebook.com/share"],a[href*="twitter.com/share"]').addClass('nolightbox'); /* IMG */ var fb_IMG_select='a[href*=".jpg"]:not(.nolightbox,li.nolightbox>a),area[href*=".jpg"]:not(.nolightbox),a[href*=".jpeg"]:not(.nolightbox,li.nolightbox>a),area[href*=".jpeg"]:not(.nolightbox),a[href*=".png"]:not(.nolightbox,li.nolightbox>a),area[href*=".png"]:not(.nolightbox),a[href*=".webp"]:not(.nolightbox,li.nolightbox>a),area[href*=".webp"]:not(.nolightbox)'; jQuery(fb_IMG_select).addClass('fancybox image'); var fb_IMG_sections=jQuery('.gallery,.wp-block-gallery,.tiled-gallery,.wp-block-jetpack-tiled-gallery'); fb_IMG_sections.each(function(){jQuery(this).find(fb_IMG_select).attr('rel','gallery-'+fb_IMG_sections.index(this));}); jQuery('a.fancybox,area.fancybox,li.fancybox a').each(function(){jQuery(this).fancybox(jQuery.extend({},fb_opts,{'transitionIn':'elastic','easingIn':'easeOutBack','transitionOut':'elastic','easingOut':'easeInBack','opacity':false,'hideOnContentClick':false,'titleShow':true,'titlePosition':'over','titleFromAlt':true,'showNavArrows':true,'enableKeyboardNav':true,'cyclic':false}))});}; jQuery('a.fancybox-close').on('click',function(e){e.preventDefault();jQuery.fancybox.close()}); }; var easy_fancybox_auto=function(){setTimeout(function(){jQuery('#fancybox-auto').trigger('click')},1000);}; jQuery(easy_fancybox_handler);jQuery(document).on('post-load',easy_fancybox_handler); jQuery(easy_fancybox_auto); </script><script type="text/javascript" src="https://www.marketechlabo.com/plugins/easy-fancybox/js/jquery.easing.min.js"></script><script type="text/javascript" src="https://www.marketechlabo.com/plugins/easy-fancybox/js/jquery.mousewheel.min.js"></script><script type="text/javascript" src="https://www.marketechlabo.com/plugins/easy-table-of-contents/vendor/smooth-scroll/jquery.smooth-scroll.min.js"></script><script type="text/javascript" src="https://www.marketechlabo.com/plugins/easy-table-of-contents/vendor/js-cookie/js.cookie.min.js"></script><script type="text/javascript" src="https://www.marketechlabo.com/plugins/easy-table-of-contents/vendor/sticky-kit/jquery.sticky-kit.min.js"></script><script type="text/javascript"> /* <![CDATA[ */ var ezTOC = {"smooth_scroll":"1","visibility_hide_by_default":"","width":"auto","scroll_offset":"30"}; /* ]]> */ </script><script type="text/javascript" src="https://www.marketechlabo.com/plugins/easy-table-of-contents/assets/js/front.min.js"></script></body></html>