エロサイトの作り方

2013年11月から勉強しながらエロサイトを作っています。

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; ?>

ついでに、

  • 拡張リンクのアトリビューション分析
  • ラッキングパラメータの除去

を足しました。

ラッキングパラメータの除去については以下の記事を参考に。