Google Analytics:XHR而非像素跟踪

时间:2015-06-01 13:14:19

标签: javascript google-analytics xmlhttprequest

默认情况下,Google Analytics会使用像素跟踪技术向服务器发送统计信息。我可以在analytics.js中看到一段代码用于生成新的图像对象。

ImmutableMultiDict([])

但是,浏览器在页面上的所有图像之后加载此图像的时间太晚了。因此,使用XHR请求可能是一种解决方案。我在analytics.js中编写了这样一段代码,它显示了谷歌分析可以发送xhr请求而不是像素跟踪。

ta = function (a) {
        var b = M[u]("img");
        b.width = 1;
        b.height = 1;
        b.src = a;
        return b
    }

如何让它以这种方式运作?

1 个答案:

答案 0 :(得分:1)

您可以将jQuery(document).ready(function($){ "use strict"; var qv_modal = $(document).find( '#yith-quick-view-modal' ), qv_overlay = qv_modal.find( '.yith-quick-view-overlay'), qv_content = qv_modal.find( '#yith-quick-view-content' ), qv_close = qv_modal.find( '#yith-quick-view-close' ); /*================== *MAIN BUTTON OPEN ==================*/ $.fn.yith_quick_view = function() { var button = $(document).find( '.yith-wcqv-button' ); // remove prev click event button.off( 'click' ); button.on( 'click', function(e){ e.preventDefault(); var t = $(this), product_id = t.data( 'product_id' ), is_blocked = false; if ( typeof yith_qv.loader !== 'undefined' ) { is_blocked = true; t.block({ message: null, overlayCSS : { background: '#fff url(' + yith_qv.loader + ') no-repeat center', opacity : 0.5, cursor : 'none' } }); } ajax_call( t, product_id, is_blocked ); }); }; . . . . . /*================ * MAIN AJAX CALL ================*/ var ajax_call = function( t, product_id, is_blocked ) { $.post( yith_qv.ajaxurl, { action: 'yith_load_product_quick_view', product_id: product_id }, function( data ) { qv_content.html( data ); // quantity fields for WC 2.2 if( yith_qv.is2_2 ) { qv_content.find('div.quantity:not(.buttons_added), td.quantity:not(.buttons_added)').addClass('buttons_added').append('<input type="button" value="+" class="plus" />').prepend('<input type="button" value="-" class="minus" />'); } // Variation Form var form_variation = qv_content.find( '.variations_form' ); form_variation.wc_variation_form(); if( typeof $.fn.yith_wccl !== 'undefined' ) { form_variation.yith_wccl(); } // Init prettyPhoto if( typeof $.fn.prettyPhoto !== 'undefined' ) { qv_content.find("a[data-rel^='prettyPhoto'], a.zoom").prettyPhoto({ hook : 'data-rel', social_tools : false, theme : 'pp_woocommerce', horizontal_padding: 20, opacity : 0.8, deeplinking : false }); } if( ! qv_modal.hasClass( 'open' ) ) { qv_modal.addClass('open'); if( is_blocked ) t.unblock(); } // stop loader $(document).trigger( 'qv_loader_stop' ); }); }; }); 选项设置为transport,以使用新的navigator.sendBeacon方法。这是一个例子:

'beacon'

以下是文档: https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#transport

ga('send', 'event', 'click', 'download-me', {transport: 'beacon'}); 是比XHR更好的选择,GA会自动处理不支持它的浏览器的后备。如果您真的想要使用XHR,可以​​将sendBeacon选项设置为transport,但我建议您在所有情况下使用'xhr'。将来,'beacon'选项可能会成为默认选项。