默认情况下,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
}
如何让它以这种方式运作?
答案 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'
选项可能会成为默认选项。