目次
検証環境
ブラウザ: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

以上、お疲れ様でした。