国际化产品的百度统计与谷歌统计

最近在主导重构公司一款国际化产品,需要进行埋点统计,具体需求是工程里面的事件分析根据国内/国外进行统计,海外版的使用谷歌统计,国内版的采用百度统计。采用的是同一套工程代码,所以只需要写一个方法,里面根据配置文件的平台属性来做区分是百度统计还是谷歌统计,代码总结如下:

;(function (win) {
    var config = win.SYSTEM_CONFIG;
    var statistics = function () {

    };
    if (config && (config.baidu || config.google)) {
        var platform = config.platform;
        if (platform === '国内') {
            var _hmt = _hmt || [];
            (function () {
                var hm = document.createElement("script");
                hm.src = "https://hm.baidu.com/hm.js?" + config.baidu;//百度统计的key
                var s = document.getElementsByTagName("script")[0];
                s.parentNode.insertBefore(hm, s);
            })();
            statistics = function (category, action, opt_label, opt_value) {
                //_hmt.push(['_trackEvent', category, action, opt_label, opt_value]);
                _hmt.push(['_trackEvent', category, action, opt_label || "", opt_value || 1]);
            }

        } else if (platform === '海外') {
            /*- Global site tag (gtag.js) - Google Analytics --*/
            document.write('<script async src = "https://www.googletagmanager.com/gtag/js?id=' + config.google + '" > <' + '/script>');//谷歌统计的key
            window.dataLayer = window.dataLayer || [];

            function gtag() {
                dataLayer.push(arguments);
            }

            gtag('js', new Date());
            gtag('config', config.google);
            statistics = function (category, action, opt_label, opt_value) {
                gtag('event', action, {
                    'event_category': category,
                    'event_label': opt_label || "",
                    value: opt_value || 1
                });
            }
        }
    }
    window.Statistics = statistics;
})(window);

  

posted @ 2018-04-26 15:09  keang  阅读(701)  评论(0编辑  收藏  举报