139 人が現在オンライン
139 人が現在オンライン
Google アナリティクスのアカウント設定、プロパティ、ビューやフィルタ設定などについて、ユーザー同士で意見交換ができます。解析を通して浮かんだ質問やアイディアを投げかけ合って、よりデータ分析の知識を高めていきましょう。
ガイドを表示
star_border
返信

イベントが計測できません

[ 編集済み ]
初級者 ✭

初めまして。限界すぎるので質問させてください。

先日公開したクライアントのページのクリックカウントを取得したいのにイベントだけが取得できず、

下記方法で回避しようと考えています。

--------------------------------------------------------------------------------------------------

GTM(<body>配下に記述)の前にGAのjs(</head>直前)に記述

--------------------------------------------------------------------------------------------------

先にjs読ませることで、GTMに紐づいけているGAを読み込む前数値を取得し、2重カウントを回避させようと思っています。

 

・この方法で問題なく取得できるでしょうか。

・また、2重カウントは回避できるでしょうか。

 

また、GAのjsで取得できてるので、コーディングよりGTM側の設定を疑っています。

GTMのどこの何をみれば解決するかわかればこちらもご教示いただけないでしょうか。。

 

根本的な解決にはならず気持ち悪いですが、

・検証のバッファもなく次の公開まで時間がない

・クライアント側に設定及び設定確認などの手間をかけたくない

 

というのが事情です・・・・

 

現在の状況としては、

Google Analyticsのjs(</head>直前)と

GTM(</head>直前)(<body>直下)に入っています。

 

Google AnalyticsのjsのIDは「UA-XXXXXXX-1」です。

GTMに紐づいてるIDは「UA-XXXXXXX-14」です。

 

・onclickは、jsに記述しており、制作会社のIDで取得できていることを確認し、テストアップ連絡

・ID「-1」は現在使用していないとのことで、jsを外し納品

・クライアントからGAの権限を付与いただく(GTMに紐づいている「-14」)

・いざ、公開したらイベントだけ取れない

・「-14」にしないと見れないと突っ込まれつつも、GTM側の設定がわからない&状況の切り分けもできないので、

  納品前に検証した環境、Google Analyticsのjs「-1」を戻し再納品

・クライアント側で「-1」でイベント取得できていることを確認。「-14」はみれてない(←当たり前)

・後日「-1」の権限を付与いただき数値の報告

 「-14」でもイベント以外の数値拾えているみたいだが殆どは「-1」で吸収できているはず。。

  jsはID「-1」でのみ取得するという記述はしていません。

 

と、長々経緯を説明いたしましたが、

クライアントの要望は、

・「-1」の使用を廃止

「-14」で取得可能にしろ

とのことなので、なんとしても「-14」で他の数値含めイベントがとれるようにしたいです。

 

先述しております通り、

「-1」で取得できているので、コーディングミスではなくGTMのイベントの取得設定を疑っております。

皆さまのご意見いかがでしょうか。

 

一度GTM側の「-14」のイベントの取得の設定方法確認してほしいと連絡しましたが、

”GTMのどこをみればいいんですか?GTMの言葉で連絡ください。”

 

と、返ってきまして、私自身GA初心者で、GTMは使っていないので、設定方法を説明することもできず困っております。

 

ちなみに、同クライアントで別の施策でページを公開しており、イベントはGTM側設定し、ID「-14」で数値取得できています。 

私の案件は、クライアントにクリックイベントの設定をお願いせずにコーディングで対応したいです。

 

URLはお伝えできないのですが、どうか、助けてください。。。。。

 

長文失礼いたしました。

何卒、よろしくお願いいたします!

Re: イベントが計測できません

レジェンド
こんにちは。

仕様の確認をさせてください。

★クライアントの要望
UA-XXXXXXX-1は廃止して、UA-XXXXXXX-14 でPVとクリックイベントが取りたい

★現状(全体)
UA-XXXXXXX-1 は、/head直前にトラッキングコードを設置済み
UA-XXXXXXX-1 は、PVとクリックは取れている
UA-XXXXXXX-14 は、GTMを使って、BODY直後に設置済み
UA-XXXXXXX-14 は、PVは取れているが、クリックイベントが取れていない

★現状(クリック検知)
UA-XXXXXXX-1 で、外部JSで検知できていた
外部JSのコードは、XXX。公開は出来ない。

ちょっと状況が錯綜していますので、現状どうなっていて、最終的にどうしたいのかを
ご確認願います。

また、クリック検知ができない、ということですが、どういう設定をそもそもされていて
どのコードが悪さをしているのかなど、具体的に現状のコードや設定がないと、他のかた
も回答がしづらいと思います。

★私見

おおせの情報の範囲での所見ですが、個人的には、トラッキングコードを2つ入れている
状態なので、クリック検知のほうに、トラッカーの指定がないと、UA-XXXXXXX-1 のほう
でクリック検知されてしまう気がします。

マルチトラッキングの状態になってしまっているのかと。その場合は、クリックに
ga('b.send','event','click','aaa'); といったトラッカーを設定しないといけません。
http://www.kagua.biz/tracking/multitracking.html

いずれにせよ、現状動いている UA-XXXXXXX-1 は、たんにテスト用なのか、もう少し整理
して、今、こういう状況でこういうソースコードで、このタグのクリック検知をしたい、と
いう現状を具体的に書かれたほうが良いかとは思います。

また、どうしても非公開でということであれば、ネットで検索しますと、フリーのアナリ
ストのかたなども見つかると思いますので、外部に頼るのも仕方ないかなとは思います。

クリック検知は奥が深いので、すんなりいくことのほうが少ないという認識です。
解決にいただずすみませんが、何卒よろしくお願い致します。

------
文責:カグア!

Re: イベントが計測できません

初級者 ✭

カグア!さま


ご回答いただきまことにありがとうございます。
わかりづらくて申し訳ありません。
 

最終的には、

ID「UA-XXXXXXX-1」で取得できている通り、

 GTMに紐づいている「UA-XXXXXXX-14」でも同様にPVだけでなく、イベントも取得できるようにしたいです。

 

GTMの設定のどこを修正すればイベント取得できるようになるか知りたいです。

次納品するファイルもトラッカー?のみで対応したいです。

GTMの権限は、クライアント側にあり、設定の内訳については把握しておりません。

 

ご指摘いただいた該当のソースを展開しましたので、

恐れ入りますが、もう一度ご回答いただけないでしょうか。

ソースに不備があればご指摘ください。

----------------------------------------------------------
★クライアントの要望
UA-XXXXXXX-1は廃止して、UA-XXXXXXX-14 でPVとクリックイベントが取りたい

★現状(全体)
UA-XXXXXXX-1 は、/head直前にトラッキングコードを設置済み
UA-XXXXXXX-1 は、PVとクリックは取れている
UA-XXXXXXX-14 は、GTMを使って、BODY直後に設置済み
UA-XXXXXXX-14 は、PVは取れているが、クリックイベントが取れていない
⇒ あっていて、ややこしくなるかもしれませんが、厳密にいうと※「-1」を追加した段階から数値はPVは「-1」に吸収されています。

 

★現状(クリック検知)
UA-XXXXXXX-1 で、外部JSで検知できていた ※
外部JSのコードは、XXX。公開は出来ない。 ※
⇒ ※ 外部JSではないですが、下記ディレクトリと共にご確認お願いします。

----------------------------------------------------------

 htmlソース一部抜粋

 

~~~
<script src="assets/js/common.js"></script> <script src="assets/js/sns-share.js"></script> <script src="assets/js/index.js"></script> <script type="text/javascript" src="/common/js/googleanalytics.js"></script> </head> <body> <!-- Google Tag Manager --> <noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-XXXXX" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-XXXXX');</script> <!-- End Google Tag Manager -->
~~~~~
<p class="ph01"><a href="https://www.youtube-nocookie.com/embed/***" target="_blank" class="movie" data-movie-id="cm_mov_01"><img src="assets/img/main_mov.jpg" alt=""></a></p>
~~~~~

<li><a href="" class="js-share-facebook" data-share-url="http://***"><img src="assets/img/sns_fb.png" alt="Facebook"></a></li> <li><a href="" class="js-share-twitter" data-share-url="http://***"><img src="assets/img/sns_tw_02.png" alt="Twitter"></a></li> <li><a href="" class="js-share-line" data-share-url="http://***"><img src="assets/img/sns_li_03.png" alt="LINE"></a></li>

 

 

下記/common/js/googleanalytics.js”の内訳

 

  (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-1', 'XXXXX.co.jp');
  ga('send', 'pageview');

 

assets/js/common.jsの内訳抜粋

function send_ga_event(eventCategory, eventAction, eventLabel, change_location){
	ga('send', {
		hitType: 'event',
		eventCategory: eventCategory,
		eventAction: eventAction,
		eventLabel: eventLabel,
		hitCallback: createFunctionWithTimeout(function() {
			if(change_location) location.href = change_location;
		})
	});
}

assets/js/sns-share.jsの内訳

 

$(function(){

	/**
	 * twitter
	 */
	$('.js-share-twitter').each(function(){
		js_share_twitter(this);
	});

	/**
	 * facebook
	 */
	$('.js-share-facebook').each(function(){
		js_share_facebook(this);
	});

	/**
	 * line
	 */
	$('.js-share-line').each(function(){
		js_share_line(this);
	});


});

function js_share_twitter(_this){
	var twitterUrl = "http://twitter.com/share";
	var shareText = encodeURIComponent( $(_this).data('share-text') || $("meta[name=description]").attr("content"));
	var shareUrl =  encodeURIComponent( $(_this).data('share-url') || $('meta[property="og:url"]').attr('content') );
	var url = twitterUrl + "?url=" + shareUrl + "&text=" + shareText;

	$(_this).on('click', function(){
		popupWindow(url);
		send_ga_event('XXXXXXXX', 'click', 'sns_twitter');
		return false;
	});
}

function js_share_facebook(_this){
	var facebookUrl = "http://www.facebook.com/sharer.php";
	var shareUrl =  encodeURIComponent( $(_this).data('share-url') || $('meta[property="og:url"]').attr('content') );
	var url = facebookUrl + "?u=" + shareUrl;

	$(_this).on('click', function(){
		popupWindow(url);
		send_ga_event('XXXXXXXX', 'click', 'sns_facebook');
		return false;
	});
}

function js_share_line(_this){
	var shareText = $(_this).data('share-text') || $("meta[name=description]").attr("content");
	var shareUrl =  $(_this).data('share-url') || $('meta[property="og:url"]').attr('content');
	var lineUrl = "http://line.me/R/msg/text/?";
	var url = lineUrl + encodeURIComponent(shareText + ' ' + shareUrl);

	$(_this).on('click', function(){
		send_ga_event('XXXXXXXX', 'click', 'sns_line');
		window.location.href = url;
		return false;
	});
}

var popupwin = null;
function popupWindow(url){
	if( popupwin ){
		popupwin.close();
	}
	setTimeout(function(){
		popupwin = window.open(url, 'shareWindow', 'width=550, height=450,personalbar=0,toolbar=0,scrollbars=1,resizable=1');
	}, 0);

}

assets/js/index.jsの内訳

 

$(function(){
	popupMovie();
});

function popupMovie(){
	var movieWindowRatio = 0.9;
	var cboxContentMargin = 40;
	var width, height;
	$('.movie').click(function(e){
		e.preventDefault();
		var _this = this;
		getMovieSize();
		$.colorbox({
			iframe: true,
			href:_this.href,
			width: width,
			height: height,
			transition: 'none',
			className: 'myModal',
			onComplete:function(){
				var movieid = $(_this).data('movie-id');
				send_ga_event('XXXXXXX', 'click', movieid);
			},
			onClosed:function(){
			}
		});
	});
	function getMovieSize(){
		var marginHeight = 0;
		var winHeight = $(window).height();
		var winWidth = $(window).width();
		width = winWidth * movieWindowRatio;
		height = Math.floor(width * 9 / 16) + cboxContentMargin + marginHeight;
		if(height > winHeight * movieWindowRatio){
			height = (winHeight - marginHeight) * movieWindowRatio + marginHeight;
			width = Math.floor((height - cboxContentMargin) * 16 / 9);
		}
	}
	$(window).on('resize', function(){
		getMovieSize();
		$.colorbox.resize({width:width,height:height});
	});
}

 

この記述で、

GTMに紐づいている「UA-XXXXXXX-14」でイベントは取得できませんでした。

 

 

ややこしくさせている「UA-XXXXXXX-1」については、一旦忘れていただいた方がよいかと思いますが、

GTM導入前(UA-XXXXXXX-14)に使っていた古いIDで、クライアント曰く現在使用していませんがサイト全体のソースに存在しています。

 

GTMの知識がないので、

「UA-XXXXXXX-14」でイベント取得できないという連絡をもらったときに

どうしたら、「UA-XXXXXXX-14」で数値がでるか答えがだせず、兎に角数値を取得する方法と原因の切り分けをすべく、

テストアップ時イベントが取得できていた状況に戻したので、「UA-XXXXXXX-1」が復活しているという経緯です。

 

 

まだ、「UA-XXXXXXX-14」でイベントを取得できる方法にいたっておらず、GTM側の設定を疑っております。

GTMの設定を確認してもらう手間をかけずに、対処できないかとGTM前に「UA-XXXXXXX-14」のJSを記述する方法を考えましたが、

IDが重複するので危険かと思いますので、これは実施するのはやめたいと思います。

 

 

 

今回も長文なり失礼いたしましたが、

解決策につながるようなアドバスいただけると幸いです。

お忙しいところ恐れ入りますが、何卒どうぞよろしくお願いいたします!

 

 

Re: イベントが計測できません

[ 編集済み ]
レジェンド

せっかく、コードを書いていただいて大変申し訳ないのですが、コードを拝見しましたが、
GTMの権限がない状態で、UA-XXXXXXX-14 のイベント計測の設定を、おおせの
JSと同様に行う、というのはちょっと難しくありませんでしょうか。
いわゆる開発案件ともいえますよね・・・。

コードを見たところ、シェアボタンのクリック計測、MOVIEのクリック計測など、いずれも
非常に難易度が高いものです。Googleタグマネージャでクリックを計測するにしても

Googleタグマネージャで、デバッグ、サイトのクリック状況を確認、コードの実装など、

多くの工程を必要とします。
さすがに、こういった掲示板で、数行でこれこれこうですよ、と解説できるものではないと
思います。

せっかくソースコードを掲載していただいて、申し訳ないのですが、エンジニアの方もしくは

専門家と別途相談されるほうが良いかと思います。
申し訳ありません。

------
文責:カグア!

Re: イベントが計測できません

[ 編集済み ]
初級者 ✭

カグアさま

返信遅くなりました。

もろもろありがとうございました。