mango00000
@mango00000

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

Google Analyticsでデータが取れない

2ヶ月ほど前にブログを始めて、最近Google Analyticsというのを知ってやろうと思いました。
公式サイトにアクセスしてやり方を見ると、次のようなコードをHTMLに貼り付けてくださいというようなメッセージが書かれていました。

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

  gtag('config', '---ID---');
</script>

しかし、すでに何十記事かあって、すべてのhtmlファイルにこれを追加するのが面倒だったので、すべてのhtmlファイルで読み込んでいるjavascriptファイルに以下のようなコードを追加しました。

function googleAnalytics(){
    const head = document.querySelector('head');
    const analyticsCode = `<!-- Google tag (gtag.js) -->
    <script async src="https://www.googletagmanager.com/gtag/js?id=---ID---" defer></script>
    <script>
      window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments);}
      gtag('js', new Date());
    
      gtag('config', '---ID---');
    </script>`
    head.insertAdjacentHTML('beforeend', analyticsCode);
}
googleAnalytics();

このファイルをアップロードした後、サイトにGoogle Analyticsのコードが読み込まれているか(?)を確認してOKでした。

screenshot.png

これをやって三日ほど経ちましたが、Google Analyticsのサイトを見るとデータなしと書いてあります。

自分でアクセスしてみたり、Google Search Consoleを見てもサイトにアクセスしている人は少ないですが、1日に2回くらいはありました。

そこで、自分のサイトにアクセスし、デベロッパーツールで確認してみても読み込まれていました。
なんでデータなしと表示されてしまうのでしょうか?

0

1Answer

Googleアナリティクスでトラッキングコードが正しく払い出されているならば、
トラッキングコードの設定誤り、jsコードの誤り、jsが呼ばれてない、のどれかではないでしょうか。

Googleタグマネージャーは使われていますか?

0Like

Comments

  1. @mango00000

    Questioner

    まずGoogleから示されたscriptタグにはasync属性がありましたが自分でdefer属性を追加したことで、ちょっとおかしくなった可能性はありますが、テストで合格したのでそこは一応直しましたが大丈夫だと思います。

    Googleタグマネージャーはさっき追加してみました。
    情報ありがとうございます。

    一旦少し様子を見ていこうと思います。

  2. もし進展がありましたら、後学のために、フィードバックをお願いします。

  3. @mango00000

    Questioner

    javascriptでscriptタグを追加しても、もしかしたら読み込まれないのかもと思い、1ファイルだけ手動でscriptタグを追加してみました。

    そうしたらできたので、shellですべてのhtmlファイルにコードを追加しました。
    shellはあまりわからないので、いつも調べながらになりますが、共有させていただきます。

    CMD=`find /Users/******* -name "index.html"`
    for i in $CMD; do
    sed -ie "s/<head>/<head>\n	<!-- Google Tag Manager -->\n	<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':\n	new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],\n	j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=\n	'https:\/\/www.googletagmanager.com\/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);\n	})(window,document,'script','dataLayer','GTM-NK2V5Q93');<\/script>\n	<!-- End Google Tag Manager -->/g" $i
    sed -ie "s/<body>/<body>\n	<!-- Google Tag Manager (noscript) -->\n	<noscript><iframe src=\"https:\/\/www.googletagmanager.com\/ns.html?id=GTM-NK2V5Q93\"\n	height=\"0\" width=\"0\" style=\"display:none\\;visibility:hidden\"><\/iframe><\/noscript>\n	<!-- End Google Tag Manager (noscript) -->/g" $i
    sed -ie 's/<\/head>/	<!-- Google tag (gtag.js) -->\n	<script async src="https:\/\/www.googletagmanager.com\/gtag\/js?id=ID"><\/script>\n	<script>\n	window.dataLayer = window.dataLayer || [];\n	function gtag(){dataLayer.push(arguments);}\n	gtag('js', new Date());\n	\n	gtag('config', 'ID');\n	<\/script>\n<\/head>/g' $i
    done
    

    /は正規表記?して\/;\\;にしました。
    /Users/*******内のすべてのindex.htmlに対して処理を行いました。

    これでGoogle AnalyticsとGoogle Tagの導入ができました。
    また、このコマンドを使うとindex.htmleというバックアップファイルが生成されるので、次のコードで削除して完了になります。

    CMD=`find /Users/***** -name "index.htmle"`
    for i in $CMD; do
    echo $i
    rm $i
    done
    

Your answer might help someone💌