jQueryでアウトバウンド リンクを自動設定

Google アナリティクスのアウトバウンド リンクを自動で設定

ユニバーサルアナリティクスのトラッキングコードではtrackOutboundLinkが動作しないので注意。

jQuery

/** * trackOutboundLink * @param {string} link * @param {string} category * @param {string} action */ function trackOutboundLink(link, category, action) { try { _gaq.push(['_trackEvent', category, action]); } catch(err){} // ポップアップブロック対応 if (link.target == '_blank'){ var new_window = window.open('', '_blank'); } setTimeout(function() { // 別窓 if (link.target == '_blank'){ new_window.location.href = link; } else { document.location.href = link.href; } }, 100); } $(function () { $('a').each(function(i){ var link_type = 'none'; var url = $(this).attr('href'); if (url) { // 外部リンク if (url.match(/^https?:\/\//)) { // ドメイン不一致 if (! url.match(document.domain)) { link_type = 'outbound'; $(this).attr('onClick', 'trackOutboundLink(this, \'Outbound Links\', \'' + url + '\'); return false;'); } } // ダウンロード if (link_type == 'none') { if (url.match(/(.*)\.(pdf|zip|exe|gz|lzh|csv|docx?|xlsx?|pptx?)$/i)) { link_type = 'download'; $(this).attr('onClick', 'trackOutboundLink(this, \'Download Links\', \'' + url + '\'); return false;'); } } } }); });

非同期処理後に別ウィンドウで開くと、ほぼ全てのブラウザでポップアップブロック状態になるため、事前に空ウィンドウを開いておくことが必要。

サンプル

最新の記事

プロフィール

流されるままにウェブ業界で仕事しています。
主にLAPP環境でPHPを書いています。
最近はjQueryをよく書いています。