Commit cd5f2a5156d56f43a2e044375255b88193e6473a

Authored by 宋庆平
1 parent 335b5598

300s关键行为打点

sdk/Analytics.ts
@@ -29,10 +29,6 @@ export class Analytics { @@ -29,10 +29,6 @@ export class Analytics {
29 loadingFinish() { 29 loadingFinish() {
30 return WXSDK.stat.loadingFinish(); 30 return WXSDK.stat.loadingFinish();
31 } 31 }
32 - // 用户停留30s打点  
33 - stay(time) {  
34 - return WXSDK.stat.stay(time)  
35 - }  
36 // 关键行为 32 // 关键行为
37 behaviors() { 33 behaviors() {
38 return WXSDK.stat.behaviors() 34 return WXSDK.stat.behaviors()
@@ -93,5 +89,4 @@ export class Analytics { @@ -93,5 +89,4 @@ export class Analytics {
93 89
94 } 90 }
95 export enum EventKey { 91 export enum EventKey {
96 -  
97 } 92 }
sdk/SDKTools.ts
@@ -358,6 +358,10 @@ export class SDKTools { @@ -358,6 +358,10 @@ export class SDKTools {
358 static behavior() { 358 static behavior() {
359 return WXSDK.game.behavior() 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,6 +95,7 @@ export const HostKeys = {
95 totalrankList: 'game/totalrank/list', //世界排行榜 95 totalrankList: 'game/totalrank/list', //世界排行榜
96 adList: 'api/adplan/list', //广告计划列表 96 adList: 'api/adplan/list', //广告计划列表
97 behavior: 'api/douyin/behavior', //抖音投放关键行为 97 behavior: 'api/douyin/behavior', //抖音投放关键行为
  98 + attribute: 'api/member/attribute/set', //修改用户属性
98 99
99 //订单 100 //订单
100 orderReport: 'api/order/v2/mimas', //订单信息上报 101 orderReport: 'api/order/v2/mimas', //订单信息上报
wxsdk/http/SDKApi.ts
@@ -28,6 +28,8 @@ export class SDKApi { @@ -28,6 +28,8 @@ export class SDKApi {
28 public static adList = (...args) => SDKHttp.httpPost(`${DataService.I.GameApi}${HostKeys.adList}`, ...args); 28 public static adList = (...args) => SDKHttp.httpPost(`${DataService.I.GameApi}${HostKeys.adList}`, ...args);
29 // 29 //
30 public static behavior = (...args) => SDKHttp.httpPost(`${DataService.I.GameApi}${HostKeys.behavior}`, ...args); 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 //LoginApi 35 //LoginApi
wxsdk/http/SDKHttp.ts
@@ -25,7 +25,7 @@ export default class SDKHttp { @@ -25,7 +25,7 @@ export default class SDKHttp {
25 if (data && typeof data === "object") { 25 if (data && typeof data === "object") {
26 data = JSON.stringify(data); 26 data = JSON.stringify(data);
27 } 27 }
28 - //console.error("sign", url, JSON.stringify(data)) 28 + // console.error("sign", url, JSON.stringify(data))
29 data = data || ""; 29 data = data || "";
30 if (method == "GET" && data != "") { 30 if (method == "GET" && data != "") {
31 data = JSON.parse(data); 31 data = JSON.parse(data);
wxsdk/lib/sdk.d.ts
@@ -383,7 +383,8 @@ interface _LoginInnerData { @@ -383,7 +383,8 @@ interface _LoginInnerData {
383 isnew?:number 383 isnew?:number
384 logindays?:number 384 logindays?:number
385 amount?:number, 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,10 +62,13 @@ export default class DataService {
62 this.setLogindays(data.logindays); 62 this.setLogindays(data.logindays);
63 63
64 if (data.hasOwnProperty('amount')) 64 if (data.hasOwnProperty('amount'))
65 - this.setLogindays(data.amount); 65 + this.setAmount(data.amount);
66 66
67 if (data.hasOwnProperty('pon')) 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,14 +99,33 @@ export default class DataService {
96 return this; 99 return this;
97 } 100 }
98 101
  102 + setAmount(val: any) {
  103 + this.setValue('amount', val);
  104 + return this;
  105 + }
  106 +
99 get amount() { 107 get amount() {
100 return this._data.amount; 108 return this._data.amount;
101 } 109 }
102 - 110 +
  111 + setPon(val: any) {
  112 + this.setValue('pon', val);
  113 + return this;
  114 + }
  115 +
103 // 用户类型:1微信投放2抖音3自然量0未知 116 // 用户类型:1微信投放2抖音3自然量0未知
104 get pon() { 117 get pon() {
105 return this._data.pon; 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 get Scene() { 131 get Scene() {
wxsdk/service/GameService.ts
1 import DataService from "./DataService"; 1 import DataService from "./DataService";
2 import { SDKApi } from "../http/SDKApi"; 2 import { SDKApi } from "../http/SDKApi";
3 -import { GAMEDATA, __LOG__ } from "../base/SDKConst"; 3 +import { GAMEDATA, SDKVersion, __LOG__ } from "../base/SDKConst";
4 import WxLogin from "../wx/WxLogin"; 4 import WxLogin from "../wx/WxLogin";
5 import WxApi from "../wx/WxApi"; 5 import WxApi from "../wx/WxApi";
6 import WxPay from "../wx/WxPay"; 6 import WxPay from "../wx/WxPay";
@@ -62,22 +62,6 @@ export default class GameService { @@ -62,22 +62,6 @@ export default class GameService {
62 adList(adtyp) { 62 adList(adtyp) {
63 return SDKApi.adList({ adtyp, uid: DataService.I.UserId, token: DataService.I.Token }) 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 subScribe(tmplIds: Array<string>, ids: Array<string>): Promise<any> { 67 subScribe(tmplIds: Array<string>, ids: Array<string>): Promise<any> {
@@ -175,6 +159,23 @@ export default class GameService { @@ -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,7 +221,7 @@ export default class LogService {
221 ...this.buildParams() 221 ...this.buildParams()
222 }) 222 })
223 this.checkLogin(fun); 223 this.checkLogin(fun);
224 - // 30秒及时 224 + // 30秒 计时 和 300秒计时 打点
225 this.startStay() 225 this.startStay()
226 } 226 }
227 227
@@ -299,11 +299,16 @@ export default class LogService { @@ -299,11 +299,16 @@ export default class LogService {
299 newUserTime++; 299 newUserTime++;
300 StorageUtils.I.set("newUserTime", newUserTime) 300 StorageUtils.I.set("newUserTime", newUserTime)
301 let newUserDot = StorageUtils.I.get("newUserDot") || 0; 301 let newUserDot = StorageUtils.I.get("newUserDot") || 0;
302 - if (newUserDot === 1) clearInterval(this.stayInterval); 302 + if (newUserDot === 2) clearInterval(this.stayInterval);
303 // console.log("newUserTime", newUserTime, newUserDot) 303 // console.log("newUserTime", newUserTime, newUserDot)
304 - if (newUserTime >= 30) { 304 + if (newUserTime >= 30 && newUserDot == 0) {
305 StorageUtils.I.set("newUserDot", 1); 305 StorageUtils.I.set("newUserDot", 1);
306 this.loadingFinishStay(30); 306 this.loadingFinishStay(30);
  307 + }
  308 + if (newUserTime >= 300) {
  309 + StorageUtils.I.set("newUserDot", 2);
  310 + // this.loadingFinishStay(300);// 300秒计时
  311 + this.attributePtm();
307 clearInterval(this.stayInterval); 312 clearInterval(this.stayInterval);
308 } 313 }
309 } 314 }
@@ -318,6 +323,22 @@ export default class LogService { @@ -318,6 +323,22 @@ export default class LogService {
318 } 323 }
319 this.checkLogin(fun); 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 * 用户停留30s打点 2021-1-6 废弃 344 * 用户停留30s打点 2021-1-6 废弃
@@ -474,6 +495,7 @@ export default class LogService { @@ -474,6 +495,7 @@ export default class LogService {
474 let logindays = DataService.I.logindays; 495 let logindays = DataService.I.logindays;
475 let amount = DataService.I.amount; 496 let amount = DataService.I.amount;
476 let pon = DataService.I.pon; 497 let pon = DataService.I.pon;
  498 + let ptm = DataService.I.ptm;
477 return { 499 return {
478 gameid, 500 gameid,
479 channel, 501 channel,
@@ -490,7 +512,8 @@ export default class LogService { @@ -490,7 +512,8 @@ export default class LogService {
490 logindays, 512 logindays,
491 amount, 513 amount,
492 pon, 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,6 +39,7 @@ export default class SdkData {
39 public logindays: number; // 登录天数 39 public logindays: number; // 登录天数
40 public amount: number; // 充值金额 40 public amount: number; // 充值金额
41 public pon: number; // 用户类型:1微信投放2抖音3自然量0未知 41 public pon: number; // 用户类型:1微信投放2抖音3自然量0未知
  42 + public ptm:number;
42 public cule_token: string; // 用户通过广告调起微信小游戏的唯一编码 43 public cule_token: string; // 用户通过广告调起微信小游戏的唯一编码
43 public creative_id: string; //创意ID 44 public creative_id: string; //创意ID
44 public advertister_id: string; //广告账户ID 45 public advertister_id: string; //广告账户ID
@@ -83,6 +84,7 @@ export default class SdkData { @@ -83,6 +84,7 @@ export default class SdkData {
83 this.logindays = 0; 84 this.logindays = 0;
84 this.amount = 0; 85 this.amount = 0;
85 this.pon = 0; 86 this.pon = 0;
  87 + this.ptm = 0;
86 this.cule_token =''; 88 this.cule_token ='';
87 this.creative_id =''; 89 this.creative_id ='';
88 this.advertister_id =''; 90 this.advertister_id ='';
wxsdk/utils/SignUtils.ts
@@ -11,7 +11,7 @@ export default class SignUtils { @@ -11,7 +11,7 @@ export default class SignUtils {
11 11
12 createSign(params: any) { 12 createSign(params: any) {
13 let signStr = this.createQuery(params) + '' + GAMEDATA.appkey; 13 let signStr = this.createQuery(params) + '' + GAMEDATA.appkey;
14 - //console.error("signStr",signStr) 14 + // console.error("signStr",signStr)
15 return Md5.hashStr(signStr); 15 return Md5.hashStr(signStr);
16 } 16 }
17 17
wxsdk/wx/WxLogin.ts
@@ -94,7 +94,7 @@ export default class WxLogin { @@ -94,7 +94,7 @@ export default class WxLogin {
94 if (data) { 94 if (data) {
95 // 设置登录信息 95 // 设置登录信息
96 if (data.data) { 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 LogService.I.setLogind({ 98 LogService.I.setLogind({
99 channel, 99 channel,
100 userId: uid, 100 userId: uid,
@@ -106,7 +106,8 @@ export default class WxLogin { @@ -106,7 +106,8 @@ export default class WxLogin {
106 expire, 106 expire,
107 logindays, 107 logindays,
108 amount, 108 amount,
109 - pon 109 + pon,
  110 + ptm
110 }); 111 });
111 OnlineService.I.setData(gameconfig) 112 OnlineService.I.setData(gameconfig)
112 LogService.I.active(); 113 LogService.I.active();