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” という文字列が返ってきます。
具体的なソースコード
上記を踏まえて、たとえばあなたのブログのドメイン名が「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サイトのソースコードを無断でコピペする制作者がいなくなれば、わざわざこんなことしなくて済むのですけどね…