WordPress GoogleAnalytics ページ種別とキーワード計測


知らないうちに GA の UI とかものすごく変わってる…。

個人ブログの開設・設定・運用に関して、
ここ数年仕事で個人的に Web 系は API 開発とかバックエンド側を触ることがほとんどだったので、
運用側の知識がずいぶん古いことになっていて戸惑っている。

と、いうことで、GA で閲覧されているカテゴリーとかキーワードとか計測しようと思い、調査。

<script>
  (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', 'UA-********-*', 'auto');
  ga('send', 'pageview');
<?php
	if(is_home()) {
		// ホームページ
		echo "ga('send', 'event', 'All', 'View', 'Home');";

	} else if(is_single()) {
		// 記事ページ
		echo "ga('send', 'event', 'All', 'View', 'Single');";
		$categories = get_the_category();
		if($categories != null && count($categories) > 0) {
			foreach($categories as $category) {
				echo "ga('send', 'event', 'Single_Category', 'View', '" . urlencode($category->cat_name) . "');";
			}
		} else {
			echo "ga('send', 'event', 'Single_Category', 'View', '_NoCategory_');";
		}
		$tags = get_the_tags();
		if($tags != null && count($tags) > 0) {
			foreach($tags as $tag) {
				echo "ga('send', 'event', 'Single_Tag', 'View', '" . urlencode($tag->name) . "');";
			}
		} else {
			echo "ga('send', 'event', 'Single_Tag', 'View', '_NoTag_');";
		}
		
	} else if(is_page()) {
		// 固定ページ
		echo "ga('send', 'event', 'All', 'View', 'StaticPage');";
		
	} else if(is_category()) {
		// カテゴリーアーカイブ
		echo "ga('send', 'event', 'All', 'View', 'Archive_Category');";
		$categories = get_the_category();
		if($categories != null && count($categories) > 0) {
			foreach($categories as $category) {
				echo "ga('send', 'event', 'Archive_Category', 'View', '" . urlencode($category->cat_name) . "');";
			}
		} else {
			echo "ga('send', 'event', 'Archive_Category', 'View', '_NoCategory_');";
		}
		
	} else if(is_tag()) {
		// タグアーカイブ
		echo "ga('send', 'event', 'All', 'View', 'Archive_Tag');";
		$tags = get_the_tags();
		if($tags != null && count($tags) > 0) {
			foreach($tags as $tag) {
				echo "ga('send', 'event', 'Archive_Tag', 'View', '" . urlencode($tag->name) . "');";
			}
		} else {
			echo "ga('send', 'event', 'Archive_Tag', 'View', '_NoTag_');";
		}
		
	} else if(is_author()) {
		// 投稿者アーカイブ
		echo "ga('send', 'event', 'All', 'View', 'Archive_Author');";
		
	} else if(is_date()) {
		// 日付アーカイブ(年, 月, 日, etc)
		echo "ga('send', 'event', 'All', 'View', 'Archive_Date');";
		
	} else if(is_archive()) {
		// その他のアーカイブ
		echo "ga('send', 'event', 'All', 'View', 'Archive_Another');";
		
	} else if(is_search()) {
		echo "ga('send', 'event', 'All', 'View', 'Search');";
		$keyword = get_query_var('s');
		if($keyword != null && strlen($keyword) > 0) {
			echo "ga('send', 'event', 'Search', 'Keyword', '" . urlencode($keyword) . "');";
		} else {
			echo "ga('send', 'event', 'Search', 'Keyword', '_NoKeyword_');";
		}
		
	} else if(is_404()) {
		echo "ga('send', 'event', 'All', 'View', '404');";
		echo "ga('send', 'event', '404', 'Uri', '" . urlencode($_SERVER['REQUEST_URI']) . "');";
		
	} else {
		echo "ga('send', 'event', 'All', 'View', '_Another_');";
		echo "ga('send', 'event', 'Another', 'Uri', '" . urlencode($_SERVER['REQUEST_URI']) . "');";
		
	}
?>
</script>

外観 -> テーマの編集 -> ヘッダー(header.php)
に追加

現時点での本ブログに関してはこれで大丈夫そうかな。
ちなみに WordPress 4.3.1 です。
あんまりテスト()していないですけど…。まぁ個人ブログだからいいよね!
どーせ人来ないしってことで本番で適当にちょろっとやって終了。

is_home() ですが、フロントページがある人は注意。
あと本ブログで使用しない/判断不要としたものは条件に追加していません。
ドキュメント大事。
https://wpdocs.osdn.jp/Conditional_Tags

GA の運用どうしようか悩みながらなので、他の人からみたらツッコミどころあるかもしれません。
コメントいただけたら幸いでございます。


コメントを残す

メールアドレスが公開されることはありません。