新建mta_analysis.js文件,拷贝如下代码(根据小程序接入mat改写):
var MTA_CONFIG = { "appID":"500013092", "eventID":"500015824", // 高级功能-自定义事件统计ID,配置开通后在初始化处填写 api_base: "https://pingtas.qq.com/pingd", prefix: "_mta_", version: "1.3.5", stat_share_app: 1, stat_pull_down_fresh: !1, stat_reach_bottom: !1 }; function getNetworkType(a) { wx.getNetworkType({ success: function(b) { a(b.networkType) } }) } function getSystemInfo() { var a = wx.getSystemInfoSync(); return { adt: encodeURIComponent(a.model), scl: a.pixelRatio, scr: a.windowWidth + "x" + a.windowHeight, lg: a.language, fl: a.version, jv: encodeURIComponent(a.system), tz: encodeURIComponent(a.platform) } } function getUID() { try { return wx.getStorageSync(MTA_CONFIG.prefix + "auid") } catch (a) {} } function setUID() { try { var a = getRandom(); wx.setStorageSync(MTA_CONFIG.prefix + "auid", a); return a } catch (b) {} } function getSID() { try { return wx.getStorageSync(MTA_CONFIG.prefix + "ssid") } catch (a) {} } function setSID() { try { var a = "s" + getRandom(); wx.setStorageSync(MTA_CONFIG.prefix + "ssid", a); return a } catch (b) {} } function getRandom(a) { for (var b = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], c = 10; 1 < c; c--) { var d = Math.floor(10 * Math.random()), e = b[d]; b[d] = b[c - 1]; b[c - 1] = e } for (c = d = 0; 5 > c; c++) d = 10 * d + b[c]; return (a || "") + (d + "" + +new Date) } function getPagePath() { try { var b = "/"; return b } catch (c) { console.log("get current page path error:" + c) } } function getMainInfo() { var a = { dm: "wechat.apps.xx", url: getPagePath(), pvi: "", si: "", ty: 0 }; a.pvi = function() { var b = getUID(); b || (b = setUID(), a.ty = 1); return b }(); a.si = function() { var a = getSID(); a || (a = setSID()); return a }(); return a } function getBasicInfo() { var a = getSystemInfo(); getNetworkType(function(a) { try { wx.setStorageSync(MTA_CONFIG.prefix + "ntdata", a) } catch (c) {} }); a.ct = wx.getStorageSync(MTA_CONFIG.prefix + "ntdata") || "4g"; return a } function getExtentInfo() { var a = MTA.Data.userInfo; var b = [], c; for (c in a) a.hasOwnProperty(c) && b.push(c + "=" + a[c]); a = b.join(";"); return { r2: MTA_CONFIG.app_id, r4: "wx", ext: "v=" + MTA_CONFIG.version + (null !== a && "" !== a ? ";ui=" + encodeURIComponent(a) : "") } } var MTA = { App: { init: function(a) { "appID" in a && (MTA_CONFIG.app_id = a.appID); "eventID" in a && (MTA_CONFIG.event_id = a.eventID); "statShareApp" in a && (MTA_CONFIG.stat_share_app = a.statShareApp); "statPullDownFresh" in a && (MTA_CONFIG.stat_pull_down_fresh = a.statPullDownFresh); "statReachBottom" in a && (MTA_CONFIG.stat_reach_bottom = a.statReachBottom); setSID(); "lauchOpts" in a && (MTA.Data.lanchInfo = a.lauchOpts, MTA.Data.lanchInfo.landing = 1) } }, Page: { init: function() { var a = { onShow: true, __route__: "pages/index/index" }; a.onShow && ! function() { var b = a.onShow; a.onShow = function() { MTA.Page.stat(); b.call(this, arguments) } }(); MTA.Page.stat(); MTA_CONFIG.stat_pull_down_fresh && a.onPullDownRefresh && ! function() { var b = a.onPullDownRefresh; a.onPullDownRefresh = function() { MTA.Event.stat(MTA_CONFIG.prefix + "pulldownfresh", { url: a.__route__ }); b.call(this, arguments) } }(); MTA_CONFIG.stat_reach_bottom && a.onReachBottom && ! function() { var b = a.onReachBottom; a.onReachBottom = function() { MTA.Event.stat(MTA_CONFIG.prefix + "reachbottom", { url: a.__route__ }); b.call(this, arguments) } }(); MTA_CONFIG.stat_share_app && a.onShareAppMessage && ! function() { var b = a.onShareAppMessage; a.onShareAppMessage = function() { MTA.Event.stat(MTA_CONFIG.prefix + "shareapp", { url: a.__route__ }); return b.call(this, arguments) } }() }, stat: function() { if ("" != MTA_CONFIG.app_id) { var a = [], b = getExtentInfo(), c = [getMainInfo(), b, getBasicInfo()]; MTA.Data.lanchInfo && (c.push({ ht: MTA.Data.lanchInfo.scene, rdm: "/", rurl: MTA.Data.lanchInfo.path }), MTA.Data.lanchInfo.query && MTA.Data.lanchInfo.query._mta_ref_id && c.push({ rarg: MTA.Data.lanchInfo.query._mta_ref_id }), 1 == MTA.Data.lanchInfo.landing && (b.ext += ";lp=1", MTA.Data.lanchInfo.landing = 0)); c.push({ rand: +new Date }); b = 0; for (var d = c.length; b < d; b++) for (var e in c[b]) c[b].hasOwnProperty(e) && a.push(e + "=" + ("undefined" == typeof c[b][e] ? "" : c[b][e])); wx.request({ url: MTA_CONFIG.api_base + "?" + a.join("&").toLowerCase() }) } } }, Event: { stat: function(a, b) { if ("" != MTA_CONFIG.event_id) { var c = [], d = getMainInfo(), e = getExtentInfo(); d.dm = "wxapps.click"; d.url = a; e.r2 = MTA_CONFIG.event_id; var f = "undefined" === typeof b ? {} : b; var k = [], g; for (g in f) f.hasOwnProperty(g) && k.push(encodeURIComponent(g) + "=" + encodeURIComponent(f[g])); f = k.join(";"); e.r5 = f; f = 0; d = [d, e, getBasicInfo(), { rand: +new Date }]; for (e = d.length; f < e; f++) for (var h in d[f]) d[f].hasOwnProperty(h) && c.push(h + "=" + ("undefined" == typeof d[f][h] ? "" : d[f][h])); wx.request({ url: MTA_CONFIG.api_base + "?" + c.join("&").toLowerCase() }) } } }, Data: { userInfo: null, lanchInfo: null } }; module.exports = MTA;游戏启动的时候初始化:
var mta = require('mta_analysis'); var options = this.wxUtils.getLaunchOptionsSync(); //微信wx.getLaunchOptionsSync()接口封装 mta.App.init({ "appID": "500013092", "eventID": "500015824", "lauchOpts": options, "statShareApp": true, "autoReport": true }); mta.Page.init(); //mta.Event.stat("ico_search", {"query":"特斯拉"}); Utils.mtaEventStart = function(name, opt) { if (!name) { return; } mta.Event.stat(name, opt); }