SimplicityテーマのGoogle Analyticsコードをユニバーサル仕様にする
巷でSTINGER5より良いと噂のSimplicityを試してみた。
なんかやたら作り込まれてて、管理画面でテーマ編集できる範囲で済むなら楽だけど、ちょっと内部もカスタマイズしたくなると酷い事にりそうな構造だった。WordPressの受託開発だとこういうテーマを作るのかな?
で、結局使わないんだけど、なぜかGoogle Analyticsがユニバーサル仕様ではなくて旧仕様だったのでそれを直した時のメモを残します。
analytics.phpを置き換える
修正はこのファイルだけで済むようです。
元のコード
<?php if (!is_user_logged_in()) : ?> <?php if ( get_tracking_id() ): //トラッキングIDが設定されているとき?> <!-- Google Analytics --> <script type="text/javascript"> <?php if ( is_analytics_interest() ): //インタレストカテゴリに対応しているとき?> var gaJsHost = (("https:" == document.location.protocol) ? "https://" : "http://"); document.write(unescape("%3Cscript src='" + gaJsHost + "stats.g.doubleclick.net/dc.js' type='text/javascript'%3E%3C/script%3E")); <?php else: //is_analytics_interest?> var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); <?php endif; //is_analytics_interest?> </script> <script type="text/javascript"> var pageTracker = _gat._getTracker("<?php echo esc_html( get_tracking_id() ) ?>"); pageTracker._initData(); pageTracker._trackPageview(); </script> <!-- /Google Analytics --> <?php endif; ?> <?php //以下その他の解析コードなど ?> <?php endif; ?>
置き換え版
<?php if (!is_user_logged_in()) : ?> <?php if ( get_tracking_id() ): //トラッキングIDが設定されているとき?> <!-- Google Analytics --> <script type="text/javascript"> (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','//www.google-analytics.com/analytics.js','ga'); ga('create', '<?php echo esc_html( get_tracking_id() ) ?>', 'auto'); <?php if ( is_analytics_interest() ): //インタレストカテゴリに対応しているとき?> ga('require', 'displayfeatures'); <?php endif; //is_analytics_interest?> ga('require', 'linkid', 'linkid.js'); // 拡張リンクのアトリビューション分析 ga('send', 'pageview'); // トラッキングパラメータの除去 if (window.history && window.history.replaceState) { ga(function() { var params = [ 'utm_source', 'utm_medium', 'utm_term', 'utm_content', 'utm_campaign', 'fb_action_ids', 'fb_action_types', 'fb_source', 'action_object_map', 'action_type_map', 'action_ref_map' ]; var regexp = new RegExp('(?:' + params.join('|') + ')=.+?(?:&|#|$)', 'g'); var trimUrl = document.location.href.replace(regexp, '').replace(/[\?&]#/, '#').replace(/[\?&]$/, ''); if (document.location.href != trimUrl) { window.history.replaceState('', '', trimUrl); } }); } </script> <!-- /Google Analytics --> <?php endif; ?> <?php //以下その他の解析コードなど ?> <?php endif; ?>
ついでに、
- 拡張リンクのアトリビューション分析
- トラッキングパラメータの除去
を足しました。
トラッキングパラメータの除去については以下の記事を参考に。