Commit cd5f2a5156d56f43a2e044375255b88193e6473a

Authored by 宋庆平
1 parent 335b5598

300s关键行为打点

sdk/Analytics.ts
... ... @@ -29,10 +29,6 @@ export class Analytics {
29 29 loadingFinish() {
30 30 return WXSDK.stat.loadingFinish();
31 31 }
32   - // 用户停留30s打点
33   - stay(time) {
34   - return WXSDK.stat.stay(time)
35   - }
36 32 // 关键行为
37 33 behaviors() {
38 34 return WXSDK.stat.behaviors()
... ... @@ -93,5 +89,4 @@ export class Analytics {
93 89  
94 90 }
95 91 export enum EventKey {
96   -
97 92 }
... ...
sdk/SDKTools.ts
... ... @@ -358,6 +358,10 @@ export class SDKTools {
358 358 static behavior() {
359 359 return WXSDK.game.behavior()
360 360 }
  361 + //修改用户属性 ptm 是否累计玩游戏300秒,1是
  362 + static attributePtm() {
  363 + return WXSDK.stat.attributePtm()
  364 + }
361 365  
362 366  
363 367 }
... ...
wxsdk/base/SDKConst.ts
... ... @@ -95,6 +95,7 @@ export const HostKeys = {
95 95 totalrankList: 'game/totalrank/list', //世界排行榜
96 96 adList: 'api/adplan/list', //广告计划列表
97 97 behavior: 'api/douyin/behavior', //抖音投放关键行为
  98 + attribute: 'api/member/attribute/set', //修改用户属性
98 99  
99 100 //订单
100 101 orderReport: 'api/order/v2/mimas', //订单信息上报
... ...
wxsdk/http/SDKApi.ts
... ... @@ -28,6 +28,8 @@ export class SDKApi {
28 28 public static adList = (...args) => SDKHttp.httpPost(`${DataService.I.GameApi}${HostKeys.adList}`, ...args);
29 29 //
30 30 public static behavior = (...args) => SDKHttp.httpPost(`${DataService.I.GameApi}${HostKeys.behavior}`, ...args);
  31 + //修改用户属性
  32 + public static attribute = (...args) => SDKHttp.httpPost(`${DataService.I.GameApi}${HostKeys.attribute}`, ...args);
31 33  
32 34  
33 35 //LoginApi
... ...
wxsdk/http/SDKHttp.ts
... ... @@ -25,7 +25,7 @@ export default class SDKHttp {
25 25 if (data && typeof data === "object") {
26 26 data = JSON.stringify(data);
27 27 }
28   - //console.error("sign", url, JSON.stringify(data))
  28 + // console.error("sign", url, JSON.stringify(data))
29 29 data = data || "";
30 30 if (method == "GET" && data != "") {
31 31 data = JSON.parse(data);
... ...
wxsdk/lib/sdk.d.ts
... ... @@ -383,7 +383,8 @@ interface _LoginInnerData {
383 383 isnew?:number
384 384 logindays?:number
385 385 amount?:number,
386   - pon?:number
  386 + pon?:number,
  387 + ptm?:number
387 388 }
388 389  
389 390 /**
... ...
wxsdk/service/DataService.ts
... ... @@ -62,10 +62,13 @@ export default class DataService {
62 62 this.setLogindays(data.logindays);
63 63  
64 64 if (data.hasOwnProperty('amount'))
65   - this.setLogindays(data.amount);
  65 + this.setAmount(data.amount);
66 66  
67 67 if (data.hasOwnProperty('pon'))
68   - this.setLogindays(data.pon);
  68 + this.setPon(data.pon);
  69 +
  70 + if (data.hasOwnProperty('ptm'))
  71 + this.setPtm(data.ptm);
69 72  
70 73 }
71 74  
... ... @@ -96,14 +99,33 @@ export default class DataService {
96 99 return this;
97 100 }
98 101  
  102 + setAmount(val: any) {
  103 + this.setValue('amount', val);
  104 + return this;
  105 + }
  106 +
99 107 get amount() {
100 108 return this._data.amount;
101 109 }
102   -
  110 +
  111 + setPon(val: any) {
  112 + this.setValue('pon', val);
  113 + return this;
  114 + }
  115 +
103 116 // 用户类型:1微信投放2抖音3自然量0未知
104 117 get pon() {
105 118 return this._data.pon;
106 119 }
  120 + setPtm(val: any) {
  121 + this.setValue('ptm', val);
  122 + return this;
  123 + }
  124 +
  125 + // 300s用户判断
  126 + get ptm() {
  127 + return this._data.ptm;
  128 + }
107 129  
108 130  
109 131 get Scene() {
... ...
wxsdk/service/GameService.ts
1 1 import DataService from "./DataService";
2 2 import { SDKApi } from "../http/SDKApi";
3   -import { GAMEDATA, __LOG__ } from "../base/SDKConst";
  3 +import { GAMEDATA, SDKVersion, __LOG__ } from "../base/SDKConst";
4 4 import WxLogin from "../wx/WxLogin";
5 5 import WxApi from "../wx/WxApi";
6 6 import WxPay from "../wx/WxPay";
... ... @@ -62,22 +62,6 @@ export default class GameService {
62 62 adList(adtyp) {
63 63 return SDKApi.adList({ adtyp, uid: DataService.I.UserId, token: DataService.I.Token })
64 64 }
65   - /**
66   - * 抖音投放关键行为打点
67   - */
68   - behavior() {
69   -
70   - let gameid = GAMEDATA.game_id;
71   - let uid = DataService.I.UserId;
72   - let token = DataService.I.Token;
73   - let openid = DataService.I.OpenId;
74   - return SDKApi.behavior({
75   - openid,
76   - gameid,
77   - uid,
78   - token
79   - })
80   - }
81 65  
82 66  
83 67 subScribe(tmplIds: Array<string>, ids: Array<string>): Promise<any> {
... ... @@ -175,6 +159,23 @@ export default class GameService {
175 159 };
176 160 }
177 161  
  162 + /**
  163 + * 抖音投放关键行为打点
  164 + */
  165 + behavior() {
  166 + let gameid = GAMEDATA.game_id;
  167 + let uid = DataService.I.UserId;
  168 + let token = DataService.I.Token;
  169 + let openid = DataService.I.OpenId;
  170 + return SDKApi.behavior({
  171 + openid,
  172 + gameid,
  173 + uid,
  174 + token
  175 + })
  176 + }
  177 +
  178 +
178 179  
179 180 /**
180 181 * 构建登录/弱登录公用参数
... ...
wxsdk/service/LogService.ts
... ... @@ -221,7 +221,7 @@ export default class LogService {
221 221 ...this.buildParams()
222 222 })
223 223 this.checkLogin(fun);
224   - // 30秒及时
  224 + // 30秒 计时 和 300秒计时 打点
225 225 this.startStay()
226 226 }
227 227  
... ... @@ -299,11 +299,16 @@ export default class LogService {
299 299 newUserTime++;
300 300 StorageUtils.I.set("newUserTime", newUserTime)
301 301 let newUserDot = StorageUtils.I.get("newUserDot") || 0;
302   - if (newUserDot === 1) clearInterval(this.stayInterval);
  302 + if (newUserDot === 2) clearInterval(this.stayInterval);
303 303 // console.log("newUserTime", newUserTime, newUserDot)
304   - if (newUserTime >= 30) {
  304 + if (newUserTime >= 30 && newUserDot == 0) {
305 305 StorageUtils.I.set("newUserDot", 1);
306 306 this.loadingFinishStay(30);
  307 + }
  308 + if (newUserTime >= 300) {
  309 + StorageUtils.I.set("newUserDot", 2);
  310 + // this.loadingFinishStay(300);// 300秒计时
  311 + this.attributePtm();
307 312 clearInterval(this.stayInterval);
308 313 }
309 314 }
... ... @@ -318,6 +323,22 @@ export default class LogService {
318 323 }
319 324 this.checkLogin(fun);
320 325 }
  326 + /**
  327 + * 修改用户属性 ptm 是否累计玩游戏300秒,1是
  328 + * @returns
  329 + */
  330 + attributePtm() {
  331 + let pkv = SDKVersion;
  332 + let uid = DataService.I.UserId;
  333 + let token = DataService.I.Token;
  334 + return SDKApi.attribute({
  335 + pkv,
  336 + uid,
  337 + token,
  338 + ptm: 1
  339 + })
  340 + }
  341 +
321 342  
322 343 /**
323 344 * 用户停留30s打点 2021-1-6 废弃
... ... @@ -474,6 +495,7 @@ export default class LogService {
474 495 let logindays = DataService.I.logindays;
475 496 let amount = DataService.I.amount;
476 497 let pon = DataService.I.pon;
  498 + let ptm = DataService.I.ptm;
477 499 return {
478 500 gameid,
479 501 channel,
... ... @@ -490,7 +512,8 @@ export default class LogService {
490 512 logindays,
491 513 amount,
492 514 pon,
493   - pkv
  515 + pkv,
  516 + ptm
494 517 };
495 518 }
496 519  
... ...
wxsdk/service/entity/SdkData.ts
... ... @@ -39,6 +39,7 @@ export default class SdkData {
39 39 public logindays: number; // 登录天数
40 40 public amount: number; // 充值金额
41 41 public pon: number; // 用户类型:1微信投放2抖音3自然量0未知
  42 + public ptm:number;
42 43 public cule_token: string; // 用户通过广告调起微信小游戏的唯一编码
43 44 public creative_id: string; //创意ID
44 45 public advertister_id: string; //广告账户ID
... ... @@ -83,6 +84,7 @@ export default class SdkData {
83 84 this.logindays = 0;
84 85 this.amount = 0;
85 86 this.pon = 0;
  87 + this.ptm = 0;
86 88 this.cule_token ='';
87 89 this.creative_id ='';
88 90 this.advertister_id ='';
... ...
wxsdk/utils/SignUtils.ts
... ... @@ -11,7 +11,7 @@ export default class SignUtils {
11 11  
12 12 createSign(params: any) {
13 13 let signStr = this.createQuery(params) + '' + GAMEDATA.appkey;
14   - //console.error("signStr",signStr)
  14 + // console.error("signStr",signStr)
15 15 return Md5.hashStr(signStr);
16 16 }
17 17  
... ...
wxsdk/wx/WxLogin.ts
... ... @@ -94,7 +94,7 @@ export default class WxLogin {
94 94 if (data) {
95 95 // 设置登录信息
96 96 if (data.data) {
97   - let { channel, uid, firstlogin, token, reftoken, openid, expire, isnew, gameconfig,logindays,amount,pon } = data.data;
  97 + let { channel, uid, firstlogin, token, reftoken, openid, expire, isnew, gameconfig,logindays,amount,pon,ptm } = data.data;
98 98 LogService.I.setLogind({
99 99 channel,
100 100 userId: uid,
... ... @@ -106,7 +106,8 @@ export default class WxLogin {
106 106 expire,
107 107 logindays,
108 108 amount,
109   - pon
  109 + pon,
  110 + ptm
110 111 });
111 112 OnlineService.I.setData(gameconfig)
112 113 LogService.I.active();
... ...