ユニーバーサルアナリティクスのクリックイベントを使って、印刷した回数をカウントする

2016年2月10日

検証環境

ブラウザ:Firefox 44.0.1
jQetry: 1.8.1

 

実装する

クリックイベントをユニバーサルアナリティクスに登録した後に、印刷をさせます。

バラバラの処理なら以下のものを記述する。

pageTracker._trackEvent('banner', 'click', 'check!');
window.print();

そのまま2つの処理を書けば良いのでは、と思われるかもしれませんが、
そのままやってしまうと、ユニバーサルアナリティクスに登録される前に
印刷が動作してしまうので、本当の正確なデータが取れません。

そこで、promise を使って、処理の順番を指定してあげます。
以下のスクリプトだと、ユニバーサルアナリティクスに反映した後に、印刷のポップアップが表示されます。


$("[class*='btn-']").click(function(){
 var d = new $.Deferred;

 (function () {
  setTimeout(function () {
   pageTracker._trackEvent('banner', 'click', 'check!');
   d.resolve();
  }, 500);
 
  return d.promise();
 
  })().done(function () {
   window.print();
  });
});

<input type="button" class="btn-print" value="印刷する" />

 

 

動作の確認

サンプルは、アナリティクスの代わりにアラートがでるようになってます。

http://jsdo.it/kabanoki/y80m/fullscreen

click

以上、お疲れ様でした。

  • この記事を書いた人

カバノキ

印刷会社のWEB部隊に所属してます。 WEB制作に携わってから、もう時期10年になります。 普段の業務では、PHPをメインにサーバーサイドの言語を扱っています。 最近のお気に入りはJavascriptです。 Vue.jsを狂喜乱舞しながら、社内に布教中です。

-JavaScript
-,