Commit 335b5598a1a81eac9d6725526bc17942ad4e3ee7
1 parent
fedd4dca
Exists in
master
and in
3 other branches
X
Showing
12 changed files
with
130 additions
and
54 deletions
Show diff stats
sdk/Analytics.ts
sdk/SDKTools.ts
... | ... | @@ -34,6 +34,11 @@ export class SDKTools { |
34 | 34 | return WXSDK.data.openId; |
35 | 35 | } |
36 | 36 | |
37 | + static get pon() { | |
38 | + return WXSDK.data.pon; | |
39 | + } | |
40 | + | |
41 | + | |
37 | 42 | // 是否当天注册用户 |
38 | 43 | static get isnew() { |
39 | 44 | try { |
... | ... | @@ -318,7 +323,7 @@ export class SDKTools { |
318 | 323 | * @param opts |
319 | 324 | * @returns |
320 | 325 | */ |
321 | - static pay(params: {payid:string, goodid:string, money: number; orderid: string }, opts: any = {}) { | |
326 | + static pay(params: { payid: string, goodid: string, money: number; orderid: string }, opts: any = {}) { | |
322 | 327 | return WXSDK.game.pay(params, opts) |
323 | 328 | } |
324 | 329 | /** |
... | ... | @@ -334,8 +339,8 @@ export class SDKTools { |
334 | 339 | * @param orderid 订单号 |
335 | 340 | * @returns |
336 | 341 | */ |
337 | - static preorder(goodid:string,orderid:string) { | |
338 | - return WXSDK.game.preorder(goodid,orderid) | |
342 | + static preorder(goodid: string, orderid: string) { | |
343 | + return WXSDK.game.preorder(goodid, orderid) | |
339 | 344 | } |
340 | 345 | |
341 | 346 | |
... | ... | @@ -349,6 +354,12 @@ export class SDKTools { |
349 | 354 | } |
350 | 355 | |
351 | 356 | |
357 | + //抖音投放关键行为 | |
358 | + static behavior() { | |
359 | + return WXSDK.game.behavior() | |
360 | + } | |
361 | + | |
362 | + | |
352 | 363 | } |
353 | 364 | |
354 | 365 | /** | ... | ... |
sdk/shareTools.ts
wxsdk/base/SDKConst.ts
1 | 1 | // 游戏配置数据 只需要改动这里的配置信息 |
2 | 2 | // 游戏配置数据 只需要改动这里的配置信息 |
3 | 3 | export const GAMEDATA = { |
4 | - game_id: '10000', | |
5 | - channel_id: '10080', | |
6 | - version: '1.0.0', //游戏版本号,发版前+1 | |
7 | - appkey: 'cf2ea5aca60b562d927805c52876a96c', | |
8 | - interstitialAdId: 'adunit-638f9158bce2c31e',//插屏ID | |
9 | - bannerId: '',//banner | |
10 | - gridId: '',//格子 | |
11 | - customId: 'adunit-3ecef510636baa07',//原生模板单个 //adunit-fb925feb16d2c13b | |
12 | - videoAd: 'adunit-638f9158bce2c31e',//初始化视频广告id | |
13 | - shareMessageToFriend: { // 暂时只支持一个场景值 | |
14 | - scene: 10, //定向分享场景值1-50 配>0的会初始化 | |
15 | - sharekey: 'shareMessageToFriendScene',//定向分享对应后台的分享key | |
16 | - share_id: 26,//定向分享对应后台的分享key | |
17 | - }, | |
18 | - default_share: { | |
19 | - content: '分享标题.....', | |
20 | - icon: '分享图链接', | |
21 | - id: '9999', | |
22 | - key: 'default', | |
23 | - title: '默认', | |
24 | - typ: 1, | |
25 | - videoid: '' | |
26 | - }, | |
27 | - MidasPay: { // 米大师虚拟支付配置 | |
28 | - OfferId: "0000000000", // 在米大师申请的应用id | |
29 | - ZoneId: "1", // 分区ID,默认:1 | |
30 | - Mode: "game", // 默认:game | |
31 | - CurrencyType: "CNY", // 默认:CNY | |
32 | - Platform: '' // 申请接入时的平台 | |
33 | - } | |
4 | + game_id: '10001',//游戏id | |
5 | + channel_id: '10001',//渠道id 暂时和游戏id一致 | |
6 | + version: '1.0.1', //版本号 中台控制正式还是测试服,尽量保持和小游戏版本一致 | |
7 | + appkey: 'd959274a83ea3b95bd1d9b765683eff6',//中台appkey | |
8 | + interstitialAdId: 'adunit-4bd19de3c351233e',//插屏ID | |
9 | + bannerId: 'adunit-25341fff11681315',//banner | |
10 | + gridId: 'adunit-491a39ffc9a330a5',//格子 | |
11 | + customId: 'adunit-193590de82ede6a4',//原生模板单个 | |
12 | + customIds: 'adunit-c905cad189ee8a74',//原生模板多个 | |
13 | + shareMessageToFriend: { // 暂时只支持一个场景值 | |
14 | + scene: 0, //定向分享场景值1-50 配>0的会初始化 | |
15 | + sharekey: 'shareMessageToFriendScene',//定向分享对应后台的分享key | |
16 | + share_id: 26,//定向分享对应后台的分享key | |
17 | + }, | |
18 | + default_share: { //默认分享数据在拉取不到中台分享数据的时候用 | |
19 | + content: '全新版本的连连消,等你来玩!',//分享标题 *找运营提供 | |
20 | + icon: 'xxxx',//分享图链接 *找运营提供 | |
21 | + id: '9999',//默认id 写死9999 | |
22 | + key: 'default',//默认分享key 写死default | |
23 | + title: '默认',//无需修改 | |
24 | + typ: 1,//分享类型 写死1 | |
25 | + videoid: '',//默认的视频广告id 填空就行 | |
26 | + }, | |
27 | + MidasPay: { // 米大师虚拟支付配置 *找运营提供 | |
28 | + OfferId: "9999999999", // 在米大师申请的应用id *找运营提供 | |
29 | + ZoneId: "1", // 分区ID,默认:1 | |
30 | + Mode: "game", // 默认:game | |
31 | + CurrencyType: "CNY", // 默认:CNY | |
32 | + Platform: '' // 申请接入时的平台 | |
33 | + } | |
34 | 34 | } |
35 | 35 | |
36 | 36 | |
37 | 37 | // sdk版本 |
38 | -export const SDKVersion = 'v1.0'; | |
38 | +export const SDKVersion = 'v1.0.1'; | |
39 | 39 | // 是否打印 |
40 | 40 | export const __LOG__ = false; |
41 | 41 | |
... | ... | @@ -94,6 +94,7 @@ export const HostKeys = { |
94 | 94 | totalrankAdd: 'game/totalrank/add', //排行榜添加分数 |
95 | 95 | totalrankList: 'game/totalrank/list', //世界排行榜 |
96 | 96 | adList: 'api/adplan/list', //广告计划列表 |
97 | + behavior: 'api/douyin/behavior', //抖音投放关键行为 | |
97 | 98 | |
98 | 99 | //订单 |
99 | 100 | orderReport: 'api/order/v2/mimas', //订单信息上报 | ... | ... |
wxsdk/http/SDKApi.ts
... | ... | @@ -26,6 +26,8 @@ export class SDKApi { |
26 | 26 | public static totalrankList = (...args) => SDKHttp.httpPost(`${DataService.I.GameApi}${HostKeys.totalrankList}`, ...args); |
27 | 27 | //广告计划列表 |
28 | 28 | public static adList = (...args) => SDKHttp.httpPost(`${DataService.I.GameApi}${HostKeys.adList}`, ...args); |
29 | + // | |
30 | + public static behavior = (...args) => SDKHttp.httpPost(`${DataService.I.GameApi}${HostKeys.behavior}`, ...args); | |
29 | 31 | |
30 | 32 | |
31 | 33 | //LoginApi | ... | ... |
wxsdk/service/DataService.ts
... | ... | @@ -99,6 +99,8 @@ export default class DataService { |
99 | 99 | get amount() { |
100 | 100 | return this._data.amount; |
101 | 101 | } |
102 | + | |
103 | + // 用户类型:1微信投放2抖音3自然量0未知 | |
102 | 104 | get pon() { |
103 | 105 | return this._data.pon; |
104 | 106 | } |
... | ... | @@ -434,6 +436,23 @@ export default class DataService { |
434 | 436 | return this; |
435 | 437 | } |
436 | 438 | |
439 | + setCuleToken(cule_token) { | |
440 | + this.setValue('cule_token', cule_token) | |
441 | + return this; | |
442 | + } | |
443 | + setCreativeId(creative_id) { | |
444 | + this.setValue('creative_id', creative_id) | |
445 | + return this; | |
446 | + } | |
447 | + setAdvertisterId(advertister_id) { | |
448 | + this.setValue('advertister_id', advertister_id) | |
449 | + return this; | |
450 | + } | |
451 | + setRequestId(request_id) { | |
452 | + this.setValue('request_id', request_id) | |
453 | + return this; | |
454 | + } | |
455 | + | |
437 | 456 | get IsCross(): boolean { |
438 | 457 | return this._data.isCross; |
439 | 458 | } | ... | ... |
wxsdk/service/GameService.ts
... | ... | @@ -62,6 +62,22 @@ 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 | + } | |
65 | 81 | |
66 | 82 | |
67 | 83 | subScribe(tmplIds: Array<string>, ids: Array<string>): Promise<any> { | ... | ... |
wxsdk/service/LogService.ts
1 | 1 | import DataService from "./DataService"; |
2 | -import { __LOG__, GAMEDATA } from "../base/SDKConst"; | |
2 | +import { __LOG__, GAMEDATA, SDKVersion } from "../base/SDKConst"; | |
3 | 3 | import { SDKApi } from "../http/SDKApi"; |
4 | 4 | import WxSystem from "../wx/WxSystem"; |
5 | 5 | import StorageUtils from "../utils/StorageUtils"; |
... | ... | @@ -459,6 +459,7 @@ export default class LogService { |
459 | 459 | */ |
460 | 460 | private buildParams() { |
461 | 461 | let APIVersion = '0.6.0';//固定值 |
462 | + let pkv = SDKVersion; | |
462 | 463 | let gameid = GAMEDATA.game_id; |
463 | 464 | let channel = DataService.I.ChannelId; |
464 | 465 | let brand = WxSystem.I.brand; |
... | ... | @@ -488,7 +489,8 @@ export default class LogService { |
488 | 489 | env, |
489 | 490 | logindays, |
490 | 491 | amount, |
491 | - pon | |
492 | + pon, | |
493 | + pkv | |
492 | 494 | }; |
493 | 495 | } |
494 | 496 | ... | ... |
wxsdk/service/entity/SdkData.ts
... | ... | @@ -36,10 +36,14 @@ export default class SdkData { |
36 | 36 | public isCross: boolean; // 是否开启交叉悬浮框推广位 |
37 | 37 | public isDrawer: boolean; // 是否开启交叉抽屉推广位 |
38 | 38 | public isGuessLike: boolean; // 是否开启交叉猜你喜欢推广位 |
39 | - public logindays:number; // 登录天数 | |
40 | - public amount:number; // 充值金额 | |
41 | - public pon:number; // 用户类型 | |
42 | - | |
39 | + public logindays: number; // 登录天数 | |
40 | + public amount: number; // 充值金额 | |
41 | + public pon: number; // 用户类型:1微信投放2抖音3自然量0未知 | |
42 | + public cule_token: string; // 用户通过广告调起微信小游戏的唯一编码 | |
43 | + public creative_id: string; //创意ID | |
44 | + public advertister_id: string; //广告账户ID | |
45 | + public request_id: string; // 请求下发ID | |
46 | + | |
43 | 47 | |
44 | 48 | constructor() { |
45 | 49 | this.token = ''; |
... | ... | @@ -79,6 +83,10 @@ export default class SdkData { |
79 | 83 | this.logindays = 0; |
80 | 84 | this.amount = 0; |
81 | 85 | this.pon = 0; |
86 | + this.cule_token =''; | |
87 | + this.creative_id =''; | |
88 | + this.advertister_id =''; | |
89 | + this.request_id =''; | |
82 | 90 | } |
83 | 91 | } |
84 | 92 | ... | ... |
wxsdk/utils/SignUtils.ts
... | ... | @@ -70,8 +70,8 @@ export default class SignUtils { |
70 | 70 | let key = ''; |
71 | 71 | let query = ''; |
72 | 72 | for (let i = 0, len = keys.length; i < len; i++) { |
73 | - // 为空,为 0的参数不参与签名,参数名为ver的参数不参与签名, 字符集为 utf-8 | |
74 | - if (params[keys[i]] === '' || params[keys[i]] === '0' || params[keys[i]] === 0 || keys[i] === 'ver') continue | |
73 | + // 为空,为 0的参数不参与签名,参数名为ver,pkv的参数不参与签名, 字符集为 utf-8 | |
74 | + if (params[keys[i]] === '' || params[keys[i]] === '0' || params[keys[i]] === 0 || keys[i] === 'ver'|| keys[i] === 'pkv') continue | |
75 | 75 | key = keys[i]; |
76 | 76 | i && (query += ''); |
77 | 77 | if(SDKUtils.isArray(params[key])){ | ... | ... |
wxsdk/wx/WxInit.ts
... | ... | @@ -37,7 +37,14 @@ export default class WxInit { |
37 | 37 | weixinadinfo, |
38 | 38 | account_id, |
39 | 39 | service_id, |
40 | - shareMessageToFriendScene | |
40 | + shareMessageToFriendScene, | |
41 | + // 抖音投放相关信息 | |
42 | + cule_token, | |
43 | + ad_id, | |
44 | + creative_id, | |
45 | + advertister_id, | |
46 | + request_id | |
47 | + // 抖音投放相关信息 end | |
41 | 48 | } = query; |
42 | 49 | |
43 | 50 | let fromChannel = channelId || channel_id || channel || td_channelid; |
... | ... | @@ -47,21 +54,16 @@ export default class WxInit { |
47 | 54 | if (infoArr && infoArr.length) |
48 | 55 | fromChannel = infoArr[0]; |
49 | 56 | } |
57 | + // 设置抖音投放转化跟踪 | |
58 | + if(ad_id){ | |
59 | + fromChannel = ad_id; | |
60 | + } | |
50 | 61 | |
51 | 62 | //定向分享统计 |
52 | 63 | if (shareMessageToFriendScene && shareMessageToFriendScene >= 0 && shareMessageToFriendScene <= 50) { |
53 | 64 | share_key = GAMEDATA.shareMessageToFriend.sharekey; |
54 | 65 | share_id = GAMEDATA.shareMessageToFriend.share_id; |
55 | 66 | } |
56 | - // 计算最终渠道ID | |
57 | - // let lchannelId: number; | |
58 | - // let { IntegralChannelId, ChannelId } = CfgManager.I.config; | |
59 | - // if (fromChannel) | |
60 | - // lchannelId = fromChannel; | |
61 | - // else if (scene === SceneCode.WX_INTEGRAL && IntegralChannelId) | |
62 | - // lchannelId = IntegralChannelId; | |
63 | - // else | |
64 | - // lchannelId = ChannelId; | |
65 | 67 | |
66 | 68 | __LOG__ && console.warn(`====> PCSDK wxinit query user_invite_uid:${user_invite_uid}; fromChannel:${fromChannel}; channelId:${fromChannel}; scene:${scene}; share_id:${share_id}; share_key:${share_key};`); |
67 | 69 | |
... | ... | @@ -78,7 +80,12 @@ export default class WxInit { |
78 | 80 | .setQueryUserInviteUid(user_invite_uid || 0) |
79 | 81 | .setQueryExtData({ account_id, service_id }) |
80 | 82 | .setSystemId() |
81 | - .setLaunchSource(); | |
83 | + .setLaunchSource() | |
84 | + .setCuleToken(cule_token) | |
85 | + .setCreativeId(creative_id) | |
86 | + .setAdvertisterId(advertister_id) | |
87 | + .setRequestId(request_id) | |
88 | + //cule_token=cule_token123&creative_id=creative_id213&ad_id=ad_id9999&request_id=request_id456&advertister_id=advertister_id9876 | |
82 | 89 | // 设置网络类型 |
83 | 90 | WxApi.I.getNetworkType() |
84 | 91 | .then((ret: _NetworkTypeSuccessObject) => this.setNetworkType(ret)) | ... | ... |
wxsdk/wx/WxLogin.ts
... | ... | @@ -136,6 +136,10 @@ export default class WxLogin { |
136 | 136 | let scene = DataService.I.Scene + ''; |
137 | 137 | let sharekey = DataService.I.ShareKey; |
138 | 138 | let shareid = DataService.I.ShareId + ''; |
139 | + let cule_token = DataService.I.Data.cule_token; | |
140 | + let creative_id = DataService.I.Data.creative_id; | |
141 | + let advertister_id = DataService.I.Data.advertister_id; | |
142 | + let request_id = DataService.I.Data.request_id; | |
139 | 143 | return { |
140 | 144 | channel, |
141 | 145 | brand, |
... | ... | @@ -147,7 +151,11 @@ export default class WxLogin { |
147 | 151 | shareuid, |
148 | 152 | scene, |
149 | 153 | sharekey, |
150 | - shareid | |
154 | + shareid, | |
155 | + cule_token, | |
156 | + creative_id, | |
157 | + advertister_id, | |
158 | + request_id | |
151 | 159 | }; |
152 | 160 | } |
153 | 161 | ... | ... |