質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Google Analytics

Google AnalyticsはGoogleが開発した無料のウェブ分析のソリューションです。複数のクライアント側のAPIとデータをエクスポートし管理するREST APIも格納されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

421閲覧

Google Analyticsにてページ内の特定のリンクのみ集計が行われない

keng

総合スコア32

Google Analytics

Google AnalyticsはGoogleが開発した無料のウェブ分析のソリューションです。複数のクライアント側のAPIとデータをエクスポートし管理するREST APIも格納されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

1クリップ

投稿2019/07/22 03:57

あるウェブページの利用者情報をGoogle Analyticsで集計しています。
PDFがどれだけダウンロードされたかを集計するために、ページ内に以下のようなscriptを記載しています。(ちなみにこれを書いたのは僕ではありません)
もちろんトラッキングコードもこの上に記載されています。

jQuery(function(){ jQuery("a").click(function(e){ var ahref = jQuery(this).attr('href'); if (ahref.indexOf("example.co.jp") != -1 || ahref.indexOf("http") == -1 ) { ga('send', 'event', 'inlink', 'click', ahref);} else { ga('send', 'event', 'outlink', 'click' ,ahref);} }); });

ChromeのGAdebuggerで確認しており、ページ内のサイドバーにあるリンクなどをクリックするとイベントを集計するのですが、記事内のpdfリンク(相対パスで指定されています)をクリックしても集計されていないようです。
同じようなページでも全く同じように実装されているのですが、きちんと集計されているものもあります。(ちなみにこのwebサイトはmovable typeで構築されています。)
他にも集計されていないリンクが見つかっていて、相対パスであることが多いのでそれも原因のひとつなのでしょうか?

そもそもクリックイベントが発火していないのかと思いましたがconsoleで monitorEvents(document.body, "click"); をして確認したところクリックイベント自体は発火しているようです。

consoleから再度上記のクリックイベント定義を行うと正しく集計されることから、他のscriptが邪魔をしているのかなぁなどと考えているのですが、原因の特定には至らず。
これは周辺のコードも含め、書きっぷりの問題なのでしょうか?
そもそも全てリファクタリングできればいいのですがそうとも行かず、なにか解決の糸口があればご教示願いたいです。

よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mix-peach

2019/07/23 01:33

実際にページを開いてそのイベントが定義される時、「集計されていないリンク」達はDOM上に<a>タグとして存在していますか?
keng

2019/07/24 03:12

<a>タグとして存在しています。が、「イベントが定義される時」にはなかったようです。 どうやらページ内の一部はjsで外部から取得してきた情報の一覧を表示しているのが原因のようです。 ページロードする ↓ イベントが定義される ↓ ajaxで外部から項目の一覧を取得してくる ↓ 取得した項目を出力する しかしこれをどう解決するのが良いでしょう? できればイベントの定義を一覧表示後に行いたいのですが。。。 原因がわかったので自分でも解決策を考えてみます。 ひとまずありがとうございます。
mix-peach

2019/07/24 05:13

ご自分で考えようとする姿勢がステキです^^ また詰まってしまったら、質問に追記してもらえればと。。。その時は、もう少し進んだ段階の質問になっているはずなので、回答をくださる方が他にもいらっしゃると思いますので!(私も気づいた時に、見に来ますね)
guest

回答1

0

自己解決

JSでDOMをいじったあとにクリックリスナーを再設定してあげればよかったようです。

投稿2019/07/24 05:13

keng

総合スコア32

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問