どうも、最近やっと月間PVが6000を超え始めただとばぐです。
みなさん当然のようにGoogoleアナリティクスなどを使いアクセス解析をしていると思いますが、きちんと自己アクセスを除外できていますでしょうか?
自己アクセスを除外する方法としてはGoogleアナリティクス側の設定で自分のIPアドレスを設定して除外するものが一般的かと思います。
ただしこの方法だと、変動IPアドレスに設定されているポケットWiFiなどを日常的に使用している人にとっては意味が薄いかもしれないのです。
そこで今回はIPアドレス以外の方法でGoogleアナリティクスで自分のアクセスを除外する方法を紹介していきたい思います。
is_user_logged_in関数を使う方法
WordPressにはis_user_logged_in()という関数がある。
この関数はユーザーがログインしているかどうかを判別するもので、ユーザーがログインしていればTrueをログインしていなければFalseを返す。
自己アクセスが頻繁に発生するのは記事を執筆中に内容を確認するような状況に多いため、上記の関数を使って条件分岐させることで、ログイン中はアナリティクスタグを読み込ませなくすることができる。
実装方法
アナリティクスタグを以下のサンプルのようにif構文で囲むだけ。
//ユーザーがログインしていないときだけ表示
<?php if (!is_user_logged_in()): ?>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-*******"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-*******');
</script>
<?php endif; ?>
これでログインしていないときだけアナリティクスタグが表示されます。
Cocoonユーザー向け実装方法
数あるWordpressテーマの中でも、Cocoonほど無料なのに機能が充実しているテーマもないと思っています。Cocoonのアナリティクスタグは内部で自動的に生成されるためどのファイルに上記にif構文を記述すればいいのか分かりにくい。
Cocoonのアナリティクスタグはtmp/head-analytics.php
というファイルに記述されているので、このファイルをCocoonの子テーマ内にコピーして内容を編集します。
<?php //解析が有効でもAMPページでは使用しない
/**
* Cocoon WordPress Theme
* @author: yhira
* @link: https://wp-cocoon.com/
* @license: http://www.gnu.org/licenses/gpl-2.0.html GPL v2 or later
*/
if ( !defined( 'ABSPATH' ) ) exit;
//wordpressにログイン中はアナリティクスタグを読み込まない
if ( !is_user_logged_in() ):
//タグマネージャIDが設定されているときは計測しない
if (is_analytics() && !get_google_tag_manager_tracking_id() && !is_amp()): ?>
<?php //Google Analytics(gtag.js)
if ( $ga_tracking_id = get_google_analytics_tracking_id() )://トラッキングIDが設定されているとき ?>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=<?php echo $ga_tracking_id; ?>"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', '<?php echo $ga_tracking_id; ?>');
</script>
<!-- /Global site tag (gtag.js) - Google Analytics -->
<?php endif; ?>
<?php endif ?>
<?php //その他の解析コード
if (is_analytics() && !is_amp()): ?>
<?php //その他<head></head>内用の解析コード
if ($head_tags = get_other_analytics_head_tags()) {
echo '<!-- Other Analytics -->'.PHP_EOL;
echo $head_tags.PHP_EOL;
echo '<!-- /Other Analytics -->'.PHP_EOL;
}?>
<?php endif; ?>
<?php else: ?>
<!-- ログイン中です -->
<?php endif; ?>
以上でCocoonでもログイン中はアナリティクスタグを読み込ませないようにすることができました。