Google Analyticsのコードがコピーされても動かないようにする方法

Web関係のブログをやっていると、なぜかページ内の JavaScript などがそのままコピーされて中小企業のWebサイトにペーストされ、Google Analytics に見知らぬWebサイトの URL が混じってくることがあります。

これで困っている方がいたので、自分のサイト以外に自分のサイト用の Google Analytics コードが使われても動かないようにする方法を考えてみました。

JavaScriptで、表示されているページのホスト名を取得する

JavaScript では、location.hostname プロパティを使用すると、今表示しているページのホスト名(example.com など)を取得することができます。

参考: window.location – Web API インターフェイス | MDN

たとえば、このページを表示している時に Chrome の開発者ツールで location.hostname と入力し Enter キーを押すと、こんな感じに “stocker.jp” という文字列が返ってきます。

Chrome開発者ツール

具体的なソースコード

上記を踏まえて、たとえばあなたのブログのドメイン名が「example.com」であれば、このようにすれば、そのソースコードが他のWebサイトにコピペされても {} 内のコードは動かなくなります。

1
2
3
if (location.hostname == "example.com") {
/* ここに Google Analytics のコードを入れる */
}

HTML に貼り付けるソースコードはこのようになるはずです。

1
2
3
4
5
6
7
8
9
10
11
<script>
if (location.hostname == "example.com") {
  (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-XXXXXXX-X', 'auto');
  ga('send', 'pageview');
}
</script>

他人のWebサイトのソースコードを無断でコピペする制作者がいなくなれば、わざわざこんなことしなくて済むのですけどね…