忘れないように記録しとこ

カバの樹

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

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

以上、お疲れ様でした。

  • B!