SEOノウハウ・副業ブログ・ワードプレス

【UA終了】GoogleアナリティクスでIPアドレスを取得して表示する方法

2021年6月11日

Googleアナリティクスの「ユニバーサル アナリティクス」はサービス提供終了しています。

疑問

Googleアナリティクス(Google Analytics)でIPアドレスを取得して、アクセス元を特定する方法はある?

通常のままではGoogleアナリティクスでIPアドレスを調べることはできません。そのため、IPアドレスを特定することが不可能です。

しかし、Googleアナリティクスを修正することで、IPアドレスを取得して調べることができるようになります。

以下、Googleアナリティクス(ユニバーサル)でIPアドレスを取得して表示する方法を紹介します。

GoogleアナリティクスでIPアドレスを取得して表示する方法

GoogleアナリティクスでIPアドレスを取得して表示させるための手順は下記のようになります。

  • Googleアナリティクスでカスタムディメンションを作成する
  • IPアドレスを取得する
  • Googleアナリティクスのトラッキングコードを修正する

メモ

ユニバーサルアナリティクスはサイトに登録するトラッキングコードにgtagを使っています。

以下の方法でGoogleアナリティクス(ユニバーサル)を利用してIPアドレスの取得と表示が確認できました。

Googleアナリティクスでカスタムディメンションを作成

まず、Googoleアナリティクスのカスタムディメンションに「IPアドレス」を追加します。

メモ

Googoleアナリティクスのディメンションとは、計測する項目のことで、自分で独自項目を追加する時はカスタムディメンションを使います。
※カスタムディメンションは最大20個作成でき、変更や計測停止はできますが削除はできません。

Googleアナリティクスを開いて、左下メニュー「管理」をクリックします。

プロパティ設定にある「カスタム定義」の「カスタムディメンション」をクリックします。

「新しいカスタムディメンション」をクリックします。

メモ

管理者権限のあるアカウントでログインしていないとこのボタンは表示されません。

カスタムディメンションの情報を入力して「作成」をクリックします。

  • 名前:ip_address(分かりやすい名前ならOK)
  • 範囲:ユーザー
  • アクティブ:チェックを入れる

範囲については、少しわかりにくいので補足しておきます。

範囲(スコープ) 値が維持される範囲 説明
ヒット 値をページ単位で維持 例えば、カスタムディメンションの値に、ページAが閲覧された時に「Aページ」、ページBが閲覧された場合に「Bページ」という値を格納すれば、各ページのページビューを把握できる。
セッション 値をセッション単位で維持 セッションの場合は、カスタムディメンションの値が変更されるまで同じ値が設定されます。変更されると過去の値も変わります。
ユーザー 値をユーザー単位で維持 ユーザーの場合は、値が変わるか、カスタム ディメンションがアクティブでなくなるまで値が保持されます。
商品 値を商品単位で維持 拡張eコマースのみ利用できます。

計測したい項目の条件によって範囲は変わります。今回はIPアドレスなので「セッション」か「ユーザー」がよさそうです。

追加が完了すると一覧が表示されます。

「カスタムディメンション名」と「インデックス番号」はあとで利用するのでメモしておきましょう。

※下の画像では同じ設定でアクセス日時(access_time)を追加しています。

これで、IPアドレスを取得するためのカスタムディメンションの作成は完了です。

次はIPアドレスを取得します。

IPアドレスを取得する

IPアドレスはJavascriptでは取得できないので、PHPで取得しJavascriptの変数としてGoogleアナリティクスに渡します。

PHPでIPアドレスを取得して、Javascriptの変数として出力する方法は下記のようになります。

IPアドレスを取得するコード

<?php
/*
** Javascriptとして実行して下記のデータを取得する
** ・IPアドレス
** ・日付
*/

$ipaddress  = $_SERVER["REMOTE_ADDR"];
$accesstime = date("Y/m/d H:i:s");

?>

getIPAddress = function() {
  return '<?php echo $ipaddress; ?>';
}

getAccessTime = function() {
  return '<?php echo $accesstime; ?>';
}

上記のコードをPHPファイル(ganalytics.php)として保存します。

起動方法は、下記の「Googleアナリティクスのトラッキングコードを修正」で一緒に説明します。

Googleアナリティクスのトラッキングコードを修正

最後にGoogleアナリティクスのトラッキングコードを下記のように修正します。

<!-- GET IPAddress Accesstime -->
<script type="text/javascript" src="ganalytics.php?v=1"></script>

<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-XXXXXXXXX-1"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'UA-XXXXXXXXX-1', 
  {
    'custom_map': {
    'dimension1': 'ip_address',
    'dimension2': 'access_time',
    },
    'ip_address': getIPAddress(),
    'access_time': getAccessTime(),
  });
</script>

※UA-XXXXXXXXX-1部分は自分のタグに変えてください。

IPアドレスを取得するPHPファイルをJavascriptとして起動

IPアドレスを取得するためのPHPファイルはGoogleアナリティクスのトラッキングコードの前に書きます。

<script type="text/javascript" src="ganalytics.php?v=1"></script>

srcにPHPファイルを指定することで、PHPファイルをJavascriptとして起動できます。

どこからでも起動したいのであれば、srcのパスは絶対URL指定にします。

※「https://wporz.com」は自分のURLに変更し、「affinger-child」の部分は自分のテーマフォルダに変更が必要です。

<script type="text/javascript" src="https://wporz.com/wp-content/themes/affinger-child/js/ganalytics.php?v=1"></script>

トラッキングコード

Googleアナリティクスにデータを受け渡すためにトラッキングコードを修正しています。

custom_mapを作成して、dimensionXにganalytics.phpで取得したIPアドレスとアクセス時間を渡します。

メモ

dimensionXの「X」部分には、カスタムディメンションで作成したインデックス番号が入ります。

  gtag('config', 'UA-XXXXXXXXX-1', 
  {
    'custom_map': {
    'dimension1': 'ip_address',
    'dimension2': 'access_time',
    },
    'ip_address': getIPAddress(),
    'access_time': getAccessTime(),
  });

これで設定完了です。

WordPressを使っていて、SEOプラグインやテーマでGoogleアナリティクスの設定をしている場合はトラッキングコードの修正ができません。

そのため、プラグインからGoogleアナリティクスの設定だけを解除して「header.php」などに修正したコードの追加が必要です。

自分のトラッキングコードが分からない場合は、Googleアナリティクスの左下メニュー「管理」>「プロパティ:トラッキング情報」>「トラッキングコード」で確認できます。

設定したgtagに値がわたっているかを確認

Googleアナリティクスのgtagに、設定した値が入っているのかを確認したい場合は、Chrome拡張機能「Google Analytics Debugger」を使うと便利です。

getIPAddress()やgetAccessTime()で、dimentionXに渡している値を確認できます。

トラッキングコードを変更したサイトにアクセスして「Ctrl」+「Shift」+「I」でconsoleを表示します。

アクセスしたときにトラッキングコードの内容をチェックできます。

取得したIPアドレスを確認する方法

最後に取得したIPアドレスを確認する方法を紹介します。

Googleアナリティクスを開いて、「カスタム」>「カスタムレポート」を選択します。

カスタムレポートの編集画面で、「ディメンション」に設定した「ip_address」と「access_time」を設定します。

指標には、今回は「セッション」を設定していますが、「ページ」などいろいろな項目を設定できます。

最後に「保存」ボタンをクリックします。

設定が間違っていなければ、IPアドレスが取得できます。

設定当日にすぐに確認する場合は、右上の日付に注意しましょう。

初期設定では前日までの集計が表示されるため、日付が昨日までになっていると何も表示されません。

これでGoogleアナリティクスを使ったIPアドレスの取得と表示は完了です。

IPアドレスの取得に関して

IPアドレスの取得は違法と思っている人もいると思いますが違法ではなくグレーゾーンです。

IPアドレスは、基本的に個人を特定できる情報ではないので、個人情報とは言えませんが、プライバシーに関係があります。

本人が知らないところで情報を取得しているので、その情報の取り扱い(プライバシーポリシー)について、サイトに一言書いてあると良心的かもしれません。

サンプル

当ブログでは、IPアドレスを取得しています。スパムなどの対応以外でIPアドレスを使用することはありません。

【まとめ】IPアドレスを取得して表示する方法

Googleアナリティクス(ユニバーサル)でIPアドレスは下記の手順で取得して表示できます。

  • Googleアナリティクスでカスタムディメンションを作成する
  • IPアドレスを取得する
  • Googleアナリティクスのトラッキングコードを修正する

WordPressでプラグインやテーマでGoogleアナリティクスを設定している場合は、トラッキングコードの修正ができないので、やや手間がかかります。

【Googleアドセンス狩り】無効なトラフィックでIPアドレスを報告するには?

疑問 Googleアドセンス狩りにあった。第三者による無効なトラフィックだと思うけど、IPアドレスを報告するにはどうすればよい? Googleからの通告メール「お客様の AdSense アカウントでの ...

  • B!