@singcl/ad-execute-manager 2.0.0-alpha.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +20 -20
- package/README.md +545 -113
- package/dist/ad/InterstitialAdFather.d.ts +39 -7
- package/dist/ad/InterstitialAdNovel.d.ts +4 -0
- package/dist/ad/RewardAdFather.d.ts +57 -7
- package/dist/ad/RewardAdNovel.d.ts +76 -16
- package/dist/{helper → analytics}/AdAnalyticsJS.d.ts +9 -0
- package/dist/core/AdExecuteManager.d.ts +107 -1
- package/dist/core/_util.d.ts +18 -0
- package/dist/helper/SerializableError.d.ts +5 -1
- package/dist/index.cjs +2 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.js +2 -1
- package/dist/{helper → other}/RewardAdSceneTriggerManager.d.ts +6 -0
- package/dist/typings/ad.d.ts +32 -8
- package/dist/typings/create-interstitial-ad.d.ts +42 -0
- package/dist/typings/create-rewarded-video-ad.d.ts +42 -0
- package/package.json +30 -23
- package/dist/ad/index.d.ts +0 -4
- package/dist/core/index.d.ts +0 -2
- package/dist/helper/index.d.ts +0 -10
- package/dist/subpackages/ad/index.js +0 -1
- package/dist/subpackages/core/index.js +0 -1
- package/dist/subpackages/helper/index.js +0 -1
- package/dist/subpackages/utils/index.js +0 -1
- /package/dist/{helper → other}/LovelUnlockManager.d.ts +0 -0
- /package/dist/{helper → other}/RewardAdGlobalRecorder.d.ts +0 -0
|
@@ -2,6 +2,10 @@ export default InterstitialAdFather;
|
|
|
2
2
|
export type IRewordAdConfig = import("../typings/ad.js").IRewordAdConfig;
|
|
3
3
|
export type CallbackCollection = import("../typings/ad.js").CallbackCollection;
|
|
4
4
|
export type IConstructArgs = import("../typings/ad.js").IConstructArgs;
|
|
5
|
+
/**
|
|
6
|
+
* 激励视频实例
|
|
7
|
+
*/
|
|
8
|
+
export type InterstitialAd = import("../typings/create-interstitial-ad.js").InterstitialAd;
|
|
5
9
|
export type IRewardedVideoAd = {
|
|
6
10
|
/**
|
|
7
11
|
* 显示激励视频广告
|
|
@@ -24,23 +28,32 @@ declare class InterstitialAdFather {
|
|
|
24
28
|
* @param {Object} adInstance 广告实例
|
|
25
29
|
* @param {Object} ctx 上下文对象,用于传递数据和状态
|
|
26
30
|
* @param {Object} ctx.options 广告执行选项
|
|
27
|
-
* @param {Object} ctx.options.log 是否打印日志
|
|
28
31
|
* @param {Object} ctx.collection 回调集合
|
|
29
32
|
* @returns {Promise} 广告执行结果的Promise
|
|
30
33
|
*/
|
|
31
34
|
static executeWithManager(adInstance: any, ctx: {
|
|
32
|
-
options:
|
|
33
|
-
log: any;
|
|
34
|
-
};
|
|
35
|
+
options: any;
|
|
35
36
|
collection: any;
|
|
36
37
|
}): Promise<any>;
|
|
37
38
|
/**
|
|
38
39
|
* @param {IConstructArgs} args
|
|
39
40
|
*/
|
|
40
41
|
constructor(args: IConstructArgs);
|
|
42
|
+
/** @private */
|
|
43
|
+
/** @type {Logger} */
|
|
44
|
+
_logger: Logger;
|
|
41
45
|
_initSign: string;
|
|
42
46
|
_preserveOnEnd: boolean;
|
|
43
|
-
|
|
47
|
+
/**
|
|
48
|
+
* 激励视频实例
|
|
49
|
+
* @type {InterstitialAd | null}
|
|
50
|
+
*/
|
|
51
|
+
_interstitialAd: InterstitialAd | null;
|
|
52
|
+
/**
|
|
53
|
+
* 激励视频实例
|
|
54
|
+
* @type {InterstitialAd | null}
|
|
55
|
+
*/
|
|
56
|
+
__ad__: InterstitialAd | null;
|
|
44
57
|
_ttErrorMsgs: string[];
|
|
45
58
|
_ttErrorCodes: number[];
|
|
46
59
|
_adConfig: {};
|
|
@@ -88,8 +101,26 @@ declare class InterstitialAdFather {
|
|
|
88
101
|
* 任务执行完成后始终执行的一个方法
|
|
89
102
|
* @abstract 任务执行完成后始终执行的一个方法,子类需要用到时实现此方法
|
|
90
103
|
* @param {object} [_args] 执行结果信息
|
|
91
|
-
|
|
92
|
-
|
|
104
|
+
* @param {number} [_args.scene] 场景信息
|
|
105
|
+
* @param {string} _args.id 任务id
|
|
106
|
+
* @param {object} [_args.apiError] 广告api错误信息
|
|
107
|
+
* @param {number} [_args.adTypeR] 广告类型 1 激励视频 2插屏广告
|
|
108
|
+
* @param {object} _args.recovered 后台恢复重试
|
|
109
|
+
* @param {boolean} [_args.recovered.retry] 后台恢复预估是否重试
|
|
110
|
+
* @param {number} [_args.recovered.count] 后台恢复预估重试次数
|
|
111
|
+
* @param {string} [_args.recovered.message] 后台恢复预估重试原因
|
|
112
|
+
*/
|
|
113
|
+
record(_args?: {
|
|
114
|
+
scene?: number;
|
|
115
|
+
id: string;
|
|
116
|
+
apiError?: object;
|
|
117
|
+
adTypeR?: number;
|
|
118
|
+
recovered: {
|
|
119
|
+
retry?: boolean;
|
|
120
|
+
count?: number;
|
|
121
|
+
message?: string;
|
|
122
|
+
};
|
|
123
|
+
}): this;
|
|
93
124
|
/**
|
|
94
125
|
*
|
|
95
126
|
* @param {({isEnded: boolean, count: number}) => void} callback
|
|
@@ -129,3 +160,4 @@ declare class InterstitialAdFather {
|
|
|
129
160
|
*/
|
|
130
161
|
placeholder(): any;
|
|
131
162
|
}
|
|
163
|
+
import { Logger } from '../helper/Logger';
|
|
@@ -339,6 +339,8 @@ declare class InterstitialAdNovel extends InterstitialAdFather {
|
|
|
339
339
|
collection?: import("../typings/ad.js").CallbackCollection;
|
|
340
340
|
}): Promise<(IEndArgs & ICloseArgs) | undefined>;
|
|
341
341
|
/**
|
|
342
|
+
* ATTENTION: 应用一旦进入后台,90%概率.show() 方法的.then() 回调将不会被执行, .catch() 回调也不会被执行。
|
|
343
|
+
* 此时将进入超时处理逻辑
|
|
342
344
|
* @override
|
|
343
345
|
* @param {object} [ctx] 广告执行上下文
|
|
344
346
|
* @param {import('../typings/ad.js').IRewordAdConfig} [ctx.options] 广告执行选项
|
|
@@ -351,6 +353,8 @@ declare class InterstitialAdNovel extends InterstitialAdFather {
|
|
|
351
353
|
collection?: import("../typings/ad.js").CallbackCollection;
|
|
352
354
|
}, next?: Function): Promise<(IEndArgs & ICloseArgs) | undefined>;
|
|
353
355
|
/**
|
|
356
|
+
* ATTENTION: 应用一旦进入后台,90%概率.show() 方法的.then() 回调将不会被执行, .catch() 回调也不会被执行。
|
|
357
|
+
* 此时将进入超时处理逻辑
|
|
354
358
|
* @param {object} [ctx] 广告执行上下文
|
|
355
359
|
* @param {object} [ctx.options] 广告执行选项
|
|
356
360
|
* @param {number} [ctx.options.scene] 广告执行场景
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
export default RewardAdFather;
|
|
2
2
|
export type IRewordAdConfig = import("../typings/ad.js").IRewordAdConfig;
|
|
3
3
|
export type CallbackCollection = import("../typings/ad.js").CallbackCollection;
|
|
4
|
+
export type RecoveredInfo = import("../typings/ad.js").RecoveredInfo;
|
|
4
5
|
export type IConstructArgs = import("../typings/ad.js").IConstructArgs;
|
|
6
|
+
export type RewardedVideoAd = import("../typings/create-rewarded-video-ad.js").RewardedVideoAd;
|
|
5
7
|
export type IRewardedVideoAd = {
|
|
6
8
|
/**
|
|
7
9
|
* 显示激励视频广告
|
|
@@ -24,25 +26,36 @@ declare class RewardAdFather {
|
|
|
24
26
|
* @param {Object} adInstance 广告实例
|
|
25
27
|
* @param {Object} ctx 上下文对象,用于传递数据和状态
|
|
26
28
|
* @param {Object} ctx.options 广告执行选项
|
|
27
|
-
* @param {Object} ctx.options.log 是否打印日志
|
|
28
29
|
* @param {Object} ctx.collection 回调集合
|
|
29
30
|
* @returns {Promise} 广告执行结果的Promise
|
|
30
31
|
*/
|
|
31
32
|
static executeWithManager(adInstance: any, ctx: {
|
|
32
|
-
options:
|
|
33
|
-
log: any;
|
|
34
|
-
};
|
|
33
|
+
options: any;
|
|
35
34
|
collection: any;
|
|
36
35
|
}): Promise<any>;
|
|
37
36
|
/**
|
|
38
37
|
* @param {IConstructArgs} args
|
|
39
38
|
*/
|
|
40
39
|
constructor(args: IConstructArgs);
|
|
40
|
+
/** @private */
|
|
41
|
+
/** @type {Logger} */
|
|
42
|
+
_logger: Logger;
|
|
43
|
+
_adTimeoutTime: number;
|
|
41
44
|
_initSign: string;
|
|
42
45
|
_preserveOnEnd: boolean;
|
|
43
|
-
|
|
46
|
+
/**
|
|
47
|
+
* 激励视频实例
|
|
48
|
+
* @type {RewardedVideoAd | null}
|
|
49
|
+
*/
|
|
50
|
+
_rewardAd: RewardedVideoAd | null;
|
|
51
|
+
/**
|
|
52
|
+
* 激励视频实例
|
|
53
|
+
* @type {RewardedVideoAd | null}
|
|
54
|
+
*/
|
|
55
|
+
__ad__: RewardedVideoAd | null;
|
|
44
56
|
_ttErrorMsgs: string[];
|
|
45
57
|
_ttErrorCodes: number[];
|
|
58
|
+
__bindAdErrorForeverHandler: any;
|
|
46
59
|
_adConfig: {};
|
|
47
60
|
/**
|
|
48
61
|
* 初始化
|
|
@@ -53,12 +66,29 @@ declare class RewardAdFather {
|
|
|
53
66
|
*/
|
|
54
67
|
initialize(params: IRewordAdConfig, callback?: (v: IRewardedVideoAd) => void): this;
|
|
55
68
|
initialized(): boolean;
|
|
69
|
+
/**
|
|
70
|
+
* 激励视频展示失败时始终执行的一个方法
|
|
71
|
+
* @private
|
|
72
|
+
* @param {{errMsg: string; errCode: number}} e 错误信息
|
|
73
|
+
*/
|
|
74
|
+
private __adErrorForeverHandler;
|
|
75
|
+
/**
|
|
76
|
+
* 激励视频展示失败时始终执行的一个方法
|
|
77
|
+
* @abstract 激励视频展示失败时始终执行的一个方法,子类需要用到时实现此方法
|
|
78
|
+
* @param {{errMsg: string; errCode: number}} _e 错误信息
|
|
79
|
+
* @returns
|
|
80
|
+
*/
|
|
81
|
+
adErrorForeverHandler(_e: {
|
|
82
|
+
errMsg: string;
|
|
83
|
+
errCode: number;
|
|
84
|
+
}): any;
|
|
56
85
|
/**
|
|
57
86
|
* 执行广告展示
|
|
58
87
|
* @abstract
|
|
59
88
|
* @param {Object} [ctx] 上下文对象,用于传递数据和状态
|
|
60
89
|
* @param {IRewordAdConfig} [ctx.options] 广告执行选项
|
|
61
90
|
* @param {CallbackCollection} [ctx.collection] 回调集合
|
|
91
|
+
* @param {RecoveredInfo} [ctx.recovered] 恢复重试信息
|
|
62
92
|
* @param {Function} next 执行下一个任务的回调函数,在洋葱模型中手动调用以继续执行流程
|
|
63
93
|
* @returns {Promise<unknown>} 广告执行结果的Promise
|
|
64
94
|
* @throws {Error} 子类必须实现此方法
|
|
@@ -66,6 +96,7 @@ declare class RewardAdFather {
|
|
|
66
96
|
ad(ctx?: {
|
|
67
97
|
options?: IRewordAdConfig;
|
|
68
98
|
collection?: CallbackCollection;
|
|
99
|
+
recovered?: RecoveredInfo;
|
|
69
100
|
}, next?: Function): Promise<unknown>;
|
|
70
101
|
/**
|
|
71
102
|
* 确保广告按顺序执行
|
|
@@ -88,8 +119,26 @@ declare class RewardAdFather {
|
|
|
88
119
|
* 任务执行完成后始终执行的一个方法
|
|
89
120
|
* @abstract 任务执行完成后始终执行的一个方法,子类需要用到时实现此方法
|
|
90
121
|
* @param {object} [_args] 执行结果信息
|
|
91
|
-
|
|
92
|
-
|
|
122
|
+
* @param {number} [_args.scene] 场景信息
|
|
123
|
+
* @param {string} _args.id 任务id
|
|
124
|
+
* @param {object} [_args.apiError] 广告api错误信息
|
|
125
|
+
* @param {number} [_args.adTypeR] 广告类型 1 激励视频 2插屏广告
|
|
126
|
+
* @param {object} _args.recovered 后台恢复重试
|
|
127
|
+
* @param {boolean} [_args.recovered.retry] 后台恢复预估是否重试
|
|
128
|
+
* @param {number} [_args.recovered.count] 后台恢复预估重试次数
|
|
129
|
+
* @param {string} [_args.recovered.message] 后台恢复预估重试原因
|
|
130
|
+
*/
|
|
131
|
+
record(_args?: {
|
|
132
|
+
scene?: number;
|
|
133
|
+
id: string;
|
|
134
|
+
apiError?: object;
|
|
135
|
+
adTypeR?: number;
|
|
136
|
+
recovered: {
|
|
137
|
+
retry?: boolean;
|
|
138
|
+
count?: number;
|
|
139
|
+
message?: string;
|
|
140
|
+
};
|
|
141
|
+
}): this;
|
|
93
142
|
/**
|
|
94
143
|
*
|
|
95
144
|
* @param {({isEnded: boolean, count: number}) => void} callback
|
|
@@ -129,3 +178,4 @@ declare class RewardAdFather {
|
|
|
129
178
|
*/
|
|
130
179
|
placeholder(): any;
|
|
131
180
|
}
|
|
181
|
+
import { Logger } from '../helper/Logger';
|
|
@@ -52,6 +52,10 @@ export type IConstructArgs = {
|
|
|
52
52
|
* 初始化标识
|
|
53
53
|
*/
|
|
54
54
|
sign?: string;
|
|
55
|
+
/**
|
|
56
|
+
* 是否开启日志
|
|
57
|
+
*/
|
|
58
|
+
log?: boolean;
|
|
55
59
|
/**
|
|
56
60
|
* 是否保留tt激励视频广告实例
|
|
57
61
|
*/
|
|
@@ -60,6 +64,10 @@ export type IConstructArgs = {
|
|
|
60
64
|
* 是否需要在超时情况下结束广告
|
|
61
65
|
*/
|
|
62
66
|
needEndOnTimeout?: boolean;
|
|
67
|
+
/**
|
|
68
|
+
* 关闭广告时候是否需要主动结束任务
|
|
69
|
+
*/
|
|
70
|
+
proactive?: boolean;
|
|
63
71
|
/**
|
|
64
72
|
* 激励视频参数 (可选)
|
|
65
73
|
*/
|
|
@@ -126,8 +134,10 @@ export type IRewardedVideoAd = {
|
|
|
126
134
|
/**
|
|
127
135
|
* @typedef IConstructArgs
|
|
128
136
|
* @property {string} [sign] 初始化标识
|
|
137
|
+
* @property {boolean} [log] 是否开启日志
|
|
129
138
|
* @property {boolean} [preserveOnEnd] 是否保留tt激励视频广告实例
|
|
130
139
|
* @property {boolean} [needEndOnTimeout] 是否需要在超时情况下结束广告
|
|
140
|
+
* @property {boolean} [proactive] 关闭广告时候是否需要主动结束任务
|
|
131
141
|
* @property {IRewordAdConfig=} [adConfig] 激励视频参数 (可选)
|
|
132
142
|
* @property {IConnection=} [collection] 回调集合
|
|
133
143
|
*/
|
|
@@ -185,7 +195,6 @@ declare class RewardAdNovel extends RewardAdFather {
|
|
|
185
195
|
_scene: number;
|
|
186
196
|
_adTypeR: 1;
|
|
187
197
|
_adTimeout: any;
|
|
188
|
-
_adTimeoutTime: number;
|
|
189
198
|
_adBeforeShowTimer: any;
|
|
190
199
|
_adBeforeShowTime: number;
|
|
191
200
|
_adSpeedCloseTimer: any;
|
|
@@ -193,6 +202,10 @@ declare class RewardAdNovel extends RewardAdFather {
|
|
|
193
202
|
_needEndOnTimeout: boolean;
|
|
194
203
|
/** @deprecated TODO 移除 */
|
|
195
204
|
_needSpeedEndOnTimeout: boolean;
|
|
205
|
+
/**
|
|
206
|
+
* @description 关闭广告时候是否需要主动结束任务
|
|
207
|
+
*/
|
|
208
|
+
_proactive: boolean;
|
|
196
209
|
bindAdCloseLister: any;
|
|
197
210
|
bindAdErrorLister: any;
|
|
198
211
|
bindAdLoadLister: any;
|
|
@@ -217,7 +230,18 @@ declare class RewardAdNovel extends RewardAdFather {
|
|
|
217
230
|
}): void;
|
|
218
231
|
novelConfig: RewardAdNovelConfig;
|
|
219
232
|
_onInnerExecuteBefore(): any;
|
|
220
|
-
|
|
233
|
+
/**
|
|
234
|
+
* @param {object} _args
|
|
235
|
+
* @param {string} _args.scene 广告执行场景 必填
|
|
236
|
+
* @param {number} [_args.result] 广告执行成功结果 必填
|
|
237
|
+
* @param {import('../typings/ad.js').RecoveredInfo} [_args.recovered] 恢复重试信息
|
|
238
|
+
* @returns
|
|
239
|
+
*/
|
|
240
|
+
_onInnerAdShowSuccess(_args: {
|
|
241
|
+
scene: string;
|
|
242
|
+
result?: number;
|
|
243
|
+
recovered?: import("../typings/ad.js").RecoveredInfo;
|
|
244
|
+
}): any;
|
|
221
245
|
/**
|
|
222
246
|
* 广告展示超时设置
|
|
223
247
|
* @param {object} args
|
|
@@ -230,6 +254,20 @@ declare class RewardAdNovel extends RewardAdFather {
|
|
|
230
254
|
timeout?: number;
|
|
231
255
|
end: Function;
|
|
232
256
|
}): void;
|
|
257
|
+
/**
|
|
258
|
+
* 子类可以选择覆盖此方法
|
|
259
|
+
* 添加超时情况下结束任务前的回调
|
|
260
|
+
* @param {object} args
|
|
261
|
+
* @param {string} args.scene 广告执行场景 必填
|
|
262
|
+
* @param {number} args.timeout 广告超时时间 单位ms 必填
|
|
263
|
+
*/
|
|
264
|
+
_adTimeoutBeforeEnd(args: {
|
|
265
|
+
scene: string;
|
|
266
|
+
timeout: number;
|
|
267
|
+
}): {
|
|
268
|
+
scene: string;
|
|
269
|
+
timeout: number;
|
|
270
|
+
};
|
|
233
271
|
/**
|
|
234
272
|
* 广告展示前定时器
|
|
235
273
|
* @param {object} args
|
|
@@ -259,13 +297,15 @@ declare class RewardAdNovel extends RewardAdFather {
|
|
|
259
297
|
* @param {object} _args
|
|
260
298
|
* @param {string} _args.scene 广告执行场景 必填
|
|
261
299
|
* @param {string} [_args.msg] 广告执行成功原因
|
|
262
|
-
* @param {0|1} _args.result 广告执行成功结果
|
|
300
|
+
* @param {0|1} _args.result 广告执行成功结果 必填
|
|
301
|
+
* @param {import('../typings/ad.js').RecoveredInfo} [_args.recovered] 恢复重试信息
|
|
263
302
|
* @returns
|
|
264
303
|
*/
|
|
265
304
|
protected _adShowSuccessAnalytics(_args: {
|
|
266
305
|
scene: string;
|
|
267
306
|
msg?: string;
|
|
268
307
|
result: 0 | 1;
|
|
308
|
+
recovered?: import("../typings/ad.js").RecoveredInfo;
|
|
269
309
|
}): any;
|
|
270
310
|
/**
|
|
271
311
|
* 广告展示失败分析
|
|
@@ -291,13 +331,20 @@ declare class RewardAdNovel extends RewardAdFather {
|
|
|
291
331
|
* @param {object} _args
|
|
292
332
|
* @param {string} _args.scene 广告执行场景 必填
|
|
293
333
|
* @param {string} [_args.msg] 广告执行成功原因
|
|
294
|
-
* @param {0|1} _args.result 广告执行成功结果
|
|
334
|
+
* @param {0|1} _args.result 广告执行成功结果 必填
|
|
335
|
+
* @param {object} [_args.frequency] 广告执行重试参数
|
|
336
|
+
* @param {number} _args.frequency.total 广告执行总次数 必填
|
|
337
|
+
* @param {number} _args.frequency.current 广告执行当前次数 必填
|
|
295
338
|
* @returns
|
|
296
339
|
*/
|
|
297
340
|
protected _adLoadSuccessAnalytics(_args: {
|
|
298
341
|
scene: string;
|
|
299
342
|
msg?: string;
|
|
300
343
|
result: 0 | 1;
|
|
344
|
+
frequency?: {
|
|
345
|
+
total: number;
|
|
346
|
+
current: number;
|
|
347
|
+
};
|
|
301
348
|
}): any;
|
|
302
349
|
/**
|
|
303
350
|
* 广告加载失败分析
|
|
@@ -329,7 +376,7 @@ declare class RewardAdNovel extends RewardAdFather {
|
|
|
329
376
|
ad_is_completed: number;
|
|
330
377
|
ad_count: number;
|
|
331
378
|
}): any;
|
|
332
|
-
get rewardAd():
|
|
379
|
+
get rewardAd(): import("../typings/create-rewarded-video-ad.js").RewardedVideoAd;
|
|
333
380
|
/**
|
|
334
381
|
* 确保广告按顺序执行
|
|
335
382
|
* @override
|
|
@@ -347,19 +394,23 @@ declare class RewardAdNovel extends RewardAdFather {
|
|
|
347
394
|
* @param {object} [ctx] 广告执行上下文
|
|
348
395
|
* @param {import('../typings/ad.js').IRewordAdConfig} [ctx.options] 广告执行选项
|
|
349
396
|
* @param {import('../typings/ad.js').CallbackCollection} [ctx.collection] 回调集合
|
|
397
|
+
* @param {import('../typings/ad.js').RecoveredInfo} [ctx.recovered] 恢复重试信息
|
|
350
398
|
* @param {Function} next 执行下一个任务的回调函数,手动调用以继续执行流程
|
|
351
399
|
* @returns {Promise.<IEndArgs & ICloseArgs | Undefined>}
|
|
352
400
|
*/
|
|
353
401
|
override ad(ctx?: {
|
|
354
402
|
options?: import("../typings/ad.js").IRewordAdConfig;
|
|
355
403
|
collection?: import("../typings/ad.js").CallbackCollection;
|
|
404
|
+
recovered?: import("../typings/ad.js").RecoveredInfo;
|
|
356
405
|
}, next?: Function): Promise<(IEndArgs & ICloseArgs) | undefined>;
|
|
406
|
+
_recovered: import("../typings/ad.js").RecoveredInfo;
|
|
357
407
|
/**
|
|
358
408
|
* @param {object} [ctx] 广告执行上下文
|
|
359
409
|
* @param {object} [ctx.options] 广告执行选项
|
|
360
410
|
* @param {number} [ctx.options.scene] 广告执行场景 必填
|
|
361
411
|
* @param {number} [ctx.options.timeout] 广告超时时间 单位ms
|
|
362
412
|
* @param {object} ctx.collection 回调集合
|
|
413
|
+
* @param {import('../typings/ad.js').RecoveredInfo} [ctx.recovered] 恢复重试信息
|
|
363
414
|
* @param {(v?: unknown) => void} ctx.collection.resolve 广告执行成功的回调函数
|
|
364
415
|
* @param {(v?: unknown) => void} [ctx.collection.reject] 广告执行失败的回调函数
|
|
365
416
|
* @param {(v?: unknown) => void} [ctx.collection.before] 广告执行前的回调函数
|
|
@@ -372,16 +423,11 @@ declare class RewardAdNovel extends RewardAdFather {
|
|
|
372
423
|
scene?: number;
|
|
373
424
|
timeout?: number;
|
|
374
425
|
};
|
|
375
|
-
collection:
|
|
376
|
-
|
|
377
|
-
reject?: (v?: unknown) => void;
|
|
378
|
-
before?: (v?: unknown) => void;
|
|
379
|
-
success?: (v?: unknown) => void;
|
|
380
|
-
prelude?: (v?: unknown) => void;
|
|
381
|
-
};
|
|
426
|
+
collection: object;
|
|
427
|
+
recovered?: import("../typings/ad.js").RecoveredInfo;
|
|
382
428
|
}, next?: Function): void;
|
|
383
|
-
_before:
|
|
384
|
-
_success:
|
|
429
|
+
_before: any;
|
|
430
|
+
_success: any;
|
|
385
431
|
/**
|
|
386
432
|
* 广告加载
|
|
387
433
|
* @returns
|
|
@@ -397,10 +443,24 @@ declare class RewardAdNovel extends RewardAdFather {
|
|
|
397
443
|
_outerFinishedCallback(args: any): void;
|
|
398
444
|
/**
|
|
399
445
|
* 关闭激励视频
|
|
400
|
-
* 子类重写该方法时,必须调用this._clearAdTimeout();清除超时定时器
|
|
401
446
|
* @param {ICloseArgs} args
|
|
402
447
|
*/
|
|
403
|
-
|
|
448
|
+
__adCloseLister__(args: ICloseArgs): void;
|
|
449
|
+
/**
|
|
450
|
+
* 关闭激励视频结束任务
|
|
451
|
+
* 子类可以重写该方法,如果子类不提供该方法,则使用默认实现
|
|
452
|
+
* 如果子类需要主动结束任务,则需要设置proactive为true,同时主动调用end方法
|
|
453
|
+
* @param {object} args
|
|
454
|
+
* @param {(ctx: object) => void} args.end 结束任务 如果proactive为true,则需要主动调用end方法,否则不需要调用
|
|
455
|
+
* @param {(ctx: object) => void} args.conn 调用传入的回调函数 如果proactive为true,则需要主动调用conn方法,否则不需要调用
|
|
456
|
+
*/
|
|
457
|
+
adCloseLister(args: {
|
|
458
|
+
end: (ctx: object) => void;
|
|
459
|
+
conn: (ctx: object) => void;
|
|
460
|
+
}): {
|
|
461
|
+
end: (ctx: object) => void;
|
|
462
|
+
conn: (ctx: object) => void;
|
|
463
|
+
};
|
|
404
464
|
adErrorLister(e: any): void;
|
|
405
465
|
apiAdErrorLister(e: any): void;
|
|
406
466
|
/**
|
|
@@ -7,6 +7,10 @@ export type IConstructorArgs = {
|
|
|
7
7
|
* 初始化标识
|
|
8
8
|
*/
|
|
9
9
|
sign: string;
|
|
10
|
+
/**
|
|
11
|
+
* 是否开启日志
|
|
12
|
+
*/
|
|
13
|
+
log?: boolean;
|
|
10
14
|
/**
|
|
11
15
|
* 是否需要上报
|
|
12
16
|
*/
|
|
@@ -25,6 +29,7 @@ export type ICommonInfo = {
|
|
|
25
29
|
/**
|
|
26
30
|
* @typedef {object} IConstructorArgs
|
|
27
31
|
* @property {string} sign 初始化标识
|
|
32
|
+
* @property {boolean} [log] 是否开启日志
|
|
28
33
|
* @property {boolean} [needReport] 是否需要上报
|
|
29
34
|
* @property {ICommonInfo} [commonConfig] 公共用户信息
|
|
30
35
|
*
|
|
@@ -56,6 +61,9 @@ declare class AdAnalyticsJS {
|
|
|
56
61
|
* @param {IConstructorArgs} args
|
|
57
62
|
*/
|
|
58
63
|
constructor(args: IConstructorArgs);
|
|
64
|
+
/** @private */
|
|
65
|
+
/** @type {Logger} */
|
|
66
|
+
_logger: Logger;
|
|
59
67
|
_initSign: string;
|
|
60
68
|
_needReport: boolean;
|
|
61
69
|
/** @type {ICommonInfo | null} */
|
|
@@ -130,3 +138,4 @@ declare class AdAnalyticsJS {
|
|
|
130
138
|
*/
|
|
131
139
|
placeholder(): any;
|
|
132
140
|
}
|
|
141
|
+
import { Logger } from '../helper/Logger';
|
|
@@ -32,6 +32,24 @@ export type AdTask = {
|
|
|
32
32
|
* 广告任务是否已被拒绝
|
|
33
33
|
*/
|
|
34
34
|
_isRejected: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* 广告任务后台恢复前台时预估重试次数
|
|
37
|
+
*/
|
|
38
|
+
_retryCount: number;
|
|
39
|
+
/**
|
|
40
|
+
* 广告任务后台恢复前台时预估重试次数的原因
|
|
41
|
+
*/
|
|
42
|
+
_retryMsg: string;
|
|
43
|
+
};
|
|
44
|
+
export type ErrorRetryStrategy = {
|
|
45
|
+
/**
|
|
46
|
+
* 是否重试超时错误
|
|
47
|
+
*/
|
|
48
|
+
timeout?: boolean;
|
|
49
|
+
/**
|
|
50
|
+
* 是否重试后台错误
|
|
51
|
+
*/
|
|
52
|
+
background?: boolean;
|
|
35
53
|
};
|
|
36
54
|
export type IConstructArgs = {
|
|
37
55
|
/**
|
|
@@ -42,6 +60,18 @@ export type IConstructArgs = {
|
|
|
42
60
|
* 是否打印日志
|
|
43
61
|
*/
|
|
44
62
|
log?: boolean;
|
|
63
|
+
/**
|
|
64
|
+
* 是否启用前后台监听, 进入后台时候未执行的任务放入任务栈,等待进入前台恢复执行
|
|
65
|
+
*/
|
|
66
|
+
enableVisibilityListener?: boolean;
|
|
67
|
+
/**
|
|
68
|
+
* 最大重试次数, 默认为1 0表示不重试
|
|
69
|
+
*/
|
|
70
|
+
maxRetryCount?: number;
|
|
71
|
+
/**
|
|
72
|
+
* 进入后台时广告展示错误时重试策略
|
|
73
|
+
*/
|
|
74
|
+
errorRetryStrategy?: ErrorRetryStrategy;
|
|
45
75
|
};
|
|
46
76
|
declare class AdExecuteManager {
|
|
47
77
|
/**
|
|
@@ -55,6 +85,18 @@ declare class AdExecuteManager {
|
|
|
55
85
|
* @returns {AdExecuteManager}
|
|
56
86
|
*/
|
|
57
87
|
static getInstance(args?: IConstructArgs): AdExecuteManager;
|
|
88
|
+
/**
|
|
89
|
+
* 获取单例实例
|
|
90
|
+
* @param {IConstructArgs} [args]
|
|
91
|
+
* @returns {AdExecuteManager}
|
|
92
|
+
*/
|
|
93
|
+
static build(args?: IConstructArgs): AdExecuteManager;
|
|
94
|
+
/**
|
|
95
|
+
* 获取单例实例
|
|
96
|
+
* @param {IConstructArgs} [args]
|
|
97
|
+
* @returns {AdExecuteManager}
|
|
98
|
+
*/
|
|
99
|
+
static "new"(args?: IConstructArgs): AdExecuteManager;
|
|
58
100
|
/**
|
|
59
101
|
* 获取单例实例
|
|
60
102
|
* @returns {AdExecuteManager}
|
|
@@ -82,7 +124,71 @@ declare class AdExecuteManager {
|
|
|
82
124
|
* @type {AdTask|null}
|
|
83
125
|
*/
|
|
84
126
|
_currentTask: AdTask | null;
|
|
127
|
+
/**
|
|
128
|
+
* @type {boolean}
|
|
129
|
+
*/
|
|
130
|
+
_isForeground: boolean;
|
|
131
|
+
/**
|
|
132
|
+
* @type {Function|null}
|
|
133
|
+
*/
|
|
134
|
+
_appShowListener: Function | null;
|
|
135
|
+
/**
|
|
136
|
+
* @type {Function|null}
|
|
137
|
+
*/
|
|
138
|
+
_appHideListener: Function | null;
|
|
139
|
+
/**
|
|
140
|
+
* @type {boolean}
|
|
141
|
+
*/
|
|
142
|
+
_enableVisibilityListener: boolean;
|
|
143
|
+
/**
|
|
144
|
+
* @type {number}
|
|
145
|
+
*/
|
|
146
|
+
_maxRetryCount: number;
|
|
147
|
+
/**
|
|
148
|
+
* @type {Array.<AdTask>}
|
|
149
|
+
*/
|
|
150
|
+
_retryQueue: Array<AdTask>;
|
|
151
|
+
/**
|
|
152
|
+
* 进入后台时广告展示错误时重试策略
|
|
153
|
+
*/
|
|
154
|
+
_errorRetryStrategy: {
|
|
155
|
+
timeout: boolean;
|
|
156
|
+
background: boolean;
|
|
157
|
+
};
|
|
85
158
|
logger: Logger;
|
|
159
|
+
initialize(_args: any): this;
|
|
160
|
+
/**
|
|
161
|
+
* 初始化前后台监听器
|
|
162
|
+
* @private
|
|
163
|
+
*/
|
|
164
|
+
private _initVisibilityListener;
|
|
165
|
+
/**
|
|
166
|
+
* 处理应用进入后台
|
|
167
|
+
* @private
|
|
168
|
+
*/
|
|
169
|
+
private _handleAppHide;
|
|
170
|
+
/**
|
|
171
|
+
* 处理应用进入前台
|
|
172
|
+
* @private
|
|
173
|
+
*/
|
|
174
|
+
private _handleAppShow;
|
|
175
|
+
/**
|
|
176
|
+
* 销毁前后台监听器
|
|
177
|
+
*/
|
|
178
|
+
destroyVisibilityListener(): void;
|
|
179
|
+
/**
|
|
180
|
+
* 启用前后台监听
|
|
181
|
+
*/
|
|
182
|
+
enableVisibilityListener(): void;
|
|
183
|
+
/**
|
|
184
|
+
* 禁用前后台监听
|
|
185
|
+
*/
|
|
186
|
+
disableVisibilityListener(): void;
|
|
187
|
+
/**
|
|
188
|
+
* 获取前后台监听器状态
|
|
189
|
+
* @returns {boolean} 是否启用
|
|
190
|
+
*/
|
|
191
|
+
isVisibilityListenerEnabled(): boolean;
|
|
86
192
|
/**
|
|
87
193
|
* 添加广告任务
|
|
88
194
|
* @param {import('../ad/RewardAdFather.js').default} adInstance RewardAdFather的子类实例
|
|
@@ -106,7 +212,7 @@ declare class AdExecuteManager {
|
|
|
106
212
|
clearTasks(): void;
|
|
107
213
|
/**
|
|
108
214
|
* 获取当前未完成的任务总数
|
|
109
|
-
*
|
|
215
|
+
* 包括任务栈中待执行的任务、中间件链中未完成的任务和重试队列中的任务
|
|
110
216
|
* @returns {number} 未完成的任务数量
|
|
111
217
|
*/
|
|
112
218
|
getTaskCount(): number;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 判断是否需要重试
|
|
3
|
+
* @param {object} param
|
|
4
|
+
* @param {object} param.apiError 广告错误信息
|
|
5
|
+
* @param {number} param.configuredAdTimeout 配置的广告超时时间
|
|
6
|
+
* @param {object} [param.errorRetryStrategy] 错误重试策略
|
|
7
|
+
* @param {boolean} [param.errorRetryStrategy.timeout] 是否需要重试超时错误
|
|
8
|
+
* @param {boolean} [param.errorRetryStrategy.background] 是否需要重试后台错误
|
|
9
|
+
* @returns
|
|
10
|
+
*/
|
|
11
|
+
export function needRetryAdError({ apiError, configuredAdTimeout, errorRetryStrategy }: {
|
|
12
|
+
apiError: object;
|
|
13
|
+
configuredAdTimeout: number;
|
|
14
|
+
errorRetryStrategy?: {
|
|
15
|
+
timeout?: boolean;
|
|
16
|
+
background?: boolean;
|
|
17
|
+
};
|
|
18
|
+
}): boolean;
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
export class SerializableError extends Error {
|
|
2
|
-
constructor(message: any);
|
|
2
|
+
constructor(message: any, options?: {});
|
|
3
3
|
stack: string;
|
|
4
|
+
errMsg: any;
|
|
5
|
+
errorCode: any;
|
|
4
6
|
toJSON(): {
|
|
5
7
|
name: string;
|
|
6
8
|
message: string;
|
|
7
9
|
stack: string;
|
|
10
|
+
errMsg: any;
|
|
11
|
+
errorCode: any;
|
|
8
12
|
};
|
|
9
13
|
}
|