处理超时工具
function createFunctionWithTimeout(callback, opt_timeout) {
var called = false; function fn() { if (!called) { called = true; callback(); } } setTimeout(fn, opt_timeout || 1000); return fn; }
指定不同的传输机制
默认情况下,gtag.js 会选择 HTTPS 方法和传输机制以优化匹配的发送。三个选项包括:
- 'image'(使用
Image
对象) - 'xhr'(使用
XMLHttpRequest
对象) - 'beacon'(使用
navigator.sendBeacon
方法)
前两种方法都具有上一节所描述的问题(如果遇到网页卸载的情况匹配无法发送)。navigator.sendBeacon
方法通过将匹配异步传输到网络服务器来解决此问题,而无需设置匹配回调。
对于支持此功能的浏览器,以下代码将传输机制设置为 'beacon'
。
目前,如果传输机制设置为
'beacon'
,则 gtag.js 只使用 navigator.sendBeacon
。但是,gtag.js 将来可能会转而在支持它的浏览器中将 'beacon'
用作默认机制。gtag('config', 'GA_TRACKING_ID', { 'currency': 'USD', 'country': 'US' }); gtag('set', { 'currency': 'USD', 'country': 'US' }); gtag('config', 'GA_TRACKING_ID_1'); gtag('config', 'GA_TRACKING_ID_2'); gtag('config', 'GA_TRACKING_ID_3');
资料链接
https://developers.google.cn/analytics/devguides/collection/gtagjs/sending-data?hl=zh-cn