tencentads-cli 1.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 ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (C) 2026 Tencent. All rights reserved.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,197 @@
1
+ # tencentads-cli
2
+
3
+ 通用腾讯广告 API CLI 工具 — 封装鉴权与 API 调用。
4
+
5
+ 零运行时依赖,同时提供 **CLI 命令行** 和 **Node.js SDK** 两种使用方式。
6
+
7
+ ## 安装
8
+
9
+ ```bash
10
+ # 全局安装(CLI 工具)
11
+ npm install -g tencentads-cli
12
+
13
+ # 项目依赖(SDK)
14
+ npm install tencentads-cli
15
+ ```
16
+
17
+ ## 配置鉴权
18
+
19
+ 在使用之前,需要保存 API Key 到本地凭证文件 `~/.tencent-ads/credentials.json`:
20
+
21
+ ```bash
22
+ # 方式一:手动创建
23
+ mkdir -p ~/.tencent-ads
24
+ echo '{"apiKey":"YOUR_API_KEY"}' > ~/.tencent-ads/credentials.json
25
+
26
+ # 方式二:通过环境变量自定义存储路径
27
+ export TENCENT_ADS_CONFIG_DIR=/your/custom/path
28
+ ```
29
+
30
+ 查看当前鉴权状态:
31
+
32
+ ```bash
33
+ tencent-ads auth status
34
+ ```
35
+
36
+ ## CLI 使用
37
+
38
+ ### JSON 模式
39
+
40
+ ```bash
41
+ # GET 请求
42
+ tencent-ads api '{"method":"GET","path":"/api/v3.0/adgroups/get","account_id":"123456"}'
43
+
44
+ # POST 请求
45
+ tencent-ads api '{"method":"POST","path":"/api/v3.0/adgroups/add","account_id":"123456","body":{"campaign_id":100}}'
46
+
47
+ # 带查询参数
48
+ tencent-ads api '{"method":"GET","path":"/api/v3.0/campaigns/get","account_id":"123456","params":{"page":1,"page_size":10}}'
49
+ ```
50
+
51
+ ### Flag 模式
52
+
53
+ ```bash
54
+ # GET 请求
55
+ tencent-ads api --method GET --path /api/v3.0/adgroups/get --account-id 123456
56
+
57
+ # POST 请求
58
+ tencent-ads api --method POST --path /api/v3.0/adgroups/add --account-id 123456 --body '{"campaign_id":100}'
59
+
60
+ # 带查询参数
61
+ tencent-ads api --method GET --path /api/v3.0/campaigns/get --account-id 123456 --params '{"page":1,"page_size":10}'
62
+ ```
63
+
64
+ ### 查看帮助
65
+
66
+ ```bash
67
+ tencent-ads help
68
+ ```
69
+
70
+ ## SDK 使用
71
+
72
+ ### callApi — 高级调用函数
73
+
74
+ 自动加载本地凭证,返回结构化结果:
75
+
76
+ ```typescript
77
+ import { callApi } from 'tencentads-cli';
78
+
79
+ const result = await callApi({
80
+ method: 'GET',
81
+ path: '/api/v3.0/adgroups/get',
82
+ accountId: '123456',
83
+ params: { page: 1, page_size: 10 },
84
+ });
85
+
86
+ if (result.success) {
87
+ console.log(result.data);
88
+ } else {
89
+ console.error(result.error.message);
90
+ }
91
+ ```
92
+
93
+ ### TencentAdsClient — HTTP 客户端
94
+
95
+ 支持自定义鉴权、超时和重试策略:
96
+
97
+ ```typescript
98
+ import { TencentAdsClient, ENDPOINTS } from 'tencentads-cli';
99
+
100
+ const client = new TencentAdsClient({
101
+ auth: {
102
+ applyAuth(headers) {
103
+ headers.set('X-MKT-API-Key', 'YOUR_API_KEY');
104
+ headers.set('Host', 'api.e.qq.com');
105
+ },
106
+ },
107
+ baseUrl: ENDPOINTS.MARKETING_API,
108
+ timeout: 30000,
109
+ retry: { maxRetries: 3, baseDelay: 1000 },
110
+ });
111
+
112
+ // GET
113
+ const data = await client.get('/api/v3.0/campaigns/get', { account_id: '123456' });
114
+
115
+ // POST
116
+ const resp = await client.post('/api/v3.0/adgroups/add', { campaign_id: 100 });
117
+ ```
118
+
119
+ ### TencentAdsAuth — 凭证管理
120
+
121
+ ```typescript
122
+ import { TencentAdsAuth } from 'tencentads-cli';
123
+
124
+ const auth = new TencentAdsAuth();
125
+
126
+ // 保存 API Key
127
+ auth.saveApiKey('your-api-key');
128
+
129
+ // 读取凭证
130
+ const cred = auth.read();
131
+ // => { apiKey: 'your-api-key', updatedAt: '2025-01-01T00:00:00.000Z' }
132
+
133
+ // 查看鉴权状态
134
+ const status = auth.getStatus(); // 'active' | 'not_configured'
135
+ const info = auth.getInfo();
136
+ ```
137
+
138
+ ### 枚举工具
139
+
140
+ 内置腾讯广告 API 常用枚举及转换工具:
141
+
142
+ ```typescript
143
+ import {
144
+ resolveEnum,
145
+ resolveEnumKey,
146
+ deriveProductType,
147
+ resolveTargetingFields,
148
+ MARKETING_GOAL,
149
+ MARKETING_CARRIER_TYPE,
150
+ } from 'tencentads-cli';
151
+
152
+ // 枚举名 → 数值
153
+ resolveEnum('MARKETING_GOAL', 'MARKETING_GOAL_PRODUCT_SALES'); // => 2
154
+
155
+ // 数值 → 枚举名
156
+ resolveEnumKey('MARKETING_GOAL', 2); // => 'MARKETING_GOAL_PRODUCT_SALES'
157
+
158
+ // 自动推导 product_type
159
+ deriveProductType('MARKETING_CARRIER_TYPE_WECHAT_OFFICIAL_ACCOUNT');
160
+
161
+ // 智能展开定向字段(支持中文简写)
162
+ resolveTargetingFields({
163
+ os: 'ANDROID_10+',
164
+ device_price: '2500以上',
165
+ education: '本科',
166
+ });
167
+ ```
168
+
169
+ **可用枚举:**
170
+
171
+ | 枚举 | 说明 |
172
+ |------|------|
173
+ | `MARKETING_GOAL` | 营销目标(拉新、促销、品牌等) |
174
+ | `MARKETING_SUB_GOAL` | 营销子目标 |
175
+ | `MARKETING_CARRIER_TYPE` | 推广载体类型(Android/iOS/微信等) |
176
+ | `MARKETING_TARGET_TYPE` | 推广业务类型 |
177
+ | `SITE_SET` | 广告投放版位 |
178
+ | `SMART_DELIVERY_PLATFORM` | 智能投放平台 |
179
+ | `EXPLORATION_STRATEGY` | 探索策略 |
180
+ | `CONFIGURED_STATUS` | 配置状态 |
181
+
182
+ ## 特性
183
+
184
+ - **零运行时依赖** — 仅使用 Node.js 内置模块
185
+ - **TypeScript** — 完整类型定义,开箱即用
186
+ - **自动重试** — 指数退避策略,默认重试 3 次
187
+ - **鉴权管理** — API Key 凭证自动加载
188
+ - **枚举映射** — 双向转换 + 中文定向字段智能展开
189
+ - **ESM 模块** — 原生 ES Module 支持
190
+
191
+ ## 环境要求
192
+
193
+ - Node.js >= 20.0.0
194
+
195
+ ## License
196
+
197
+ [MIT](./LICENSE)
@@ -0,0 +1,24 @@
1
+ /**
2
+ * HTTP client for Tencent Ads API with retry logic.
3
+ */
4
+ import type { TencentAdsConfig } from "./types.js";
5
+ export declare class TencentAdsClient {
6
+ private config;
7
+ constructor(config: TencentAdsConfig);
8
+ request<T>(options: {
9
+ method: "GET" | "POST";
10
+ path: string;
11
+ params?: Record<string, any>;
12
+ body?: any;
13
+ headers?: Record<string, string>;
14
+ }): Promise<T>;
15
+ get<T>(path: string, params?: Record<string, any>): Promise<T>;
16
+ post<T>(path: string, body?: any, params?: Record<string, any>): Promise<T>;
17
+ private buildUrl;
18
+ private requestWithRetry;
19
+ private executeRequest;
20
+ private handleResponse;
21
+ private addQueryParams;
22
+ private shouldRetry;
23
+ checkAuth(): Promise<boolean>;
24
+ }
@@ -0,0 +1 @@
1
+ function _0x162b(_0x21128b,_0x56602f){_0x21128b=_0x21128b-0x1ad;const _0x32f5d7=_0x32f5();let _0x162b7a=_0x32f5d7[_0x21128b];if(_0x162b['yjHwWO']===undefined){var _0xa0a9e2=function(_0x2649e0){const _0x288a1d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x45da9d='',_0x214544='';for(let _0x28eaba=0x0,_0x4a1331,_0xff16f3,_0x161639=0x0;_0xff16f3=_0x2649e0['charAt'](_0x161639++);~_0xff16f3&&(_0x4a1331=_0x28eaba%0x4?_0x4a1331*0x40+_0xff16f3:_0xff16f3,_0x28eaba++%0x4)?_0x45da9d+=String['fromCharCode'](0xff&_0x4a1331>>(-0x2*_0x28eaba&0x6)):0x0){_0xff16f3=_0x288a1d['indexOf'](_0xff16f3);}for(let _0x5c8819=0x0,_0x4f2feb=_0x45da9d['length'];_0x5c8819<_0x4f2feb;_0x5c8819++){_0x214544+='%'+('00'+_0x45da9d['charCodeAt'](_0x5c8819)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x214544);};_0x162b['QyFqVw']=_0xa0a9e2,_0x162b['BZeZAM']={},_0x162b['yjHwWO']=!![];}const _0x13661f=_0x32f5d7[0x0],_0x536279=_0x21128b+_0x13661f,_0x10dda3=_0x162b['BZeZAM'][_0x536279];return!_0x10dda3?(_0x162b7a=_0x162b['QyFqVw'](_0x162b7a),_0x162b['BZeZAM'][_0x536279]=_0x162b7a):_0x162b7a=_0x10dda3,_0x162b7a;}function _0x32f5(){const _0xfb6e8a=['lIbcB2r5oIa','zxHLy3v0zvjLCxvLC3q','BwvZC2fNzv9JBG','Ahr0Ca','rxHWzwn0zwqGsLnptIbYzxnWB25ZzsbIDxqGz290ia','otHZzK96ENq','zgf0yq','C2HVDwXKuMv0CNK','y29Kzq','lI4U','yM9KEq','CgfYyw1Z','ywjVCNq','ntGWmJK2y0rXsevq','y29UzMLN','Bwf4uMv0CMLLCW','AxncDwzMzxi','ue9tva','yMfZzvvYBa','AgfUzgXLuMvZCg9UC2u','nZe1mdjNC2rYtMC','z2v0','Dgv4Da','CMvXDwvZDa','mtC4mtbIuM9esuC','y2HLy2TbDxrO','C2LNBMfS','BwvZC2fNzq','qwjVCNrfCNjVCG','Cg9ZDa','mtuYndG0m0fgz1LHzG','mZq1wvjUr2Tk','DhjHy2vFAwq','Cgf0Aa','uMvXDwvZDcbMywLSzwq','yMfZzurLBgf5','yxv0AgvUDgLJyxrL','Bwv0Ag9K','nJy4mZiXCxLpqMHi','yxbWzw5K','mty1otiWog9iqKHwua','AxnwywXPza','Dg9tDhjPBMC','yNvPBgrvCMW','ywrKuxvLCNLqyxjHBxm','Bxm6ia','y29UDgvUDc10ExbL','yxbWBgLJyxrPB24VANnVBG','CMv0CNLdB25MAwC','Cg93','DgLTzw91Da','C3rHDhvZvgv4Da','ode2m0jfuMHPzW','AgvHzgvYCW','C3rHCNrZv2L0Aa','nJGWotu0Cwz6DxDS','CMvXDwvZDfDPDgHszxrYEq','C3rYAw5NAwz5','CMvWBgfJzq','r0vu','yxv0AfbYB3zPzgvY','Aw5JBhvKzxm'];_0x32f5=function(){return _0xfb6e8a;};return _0x32f5();}const _0x4997a2=_0x162b;(function(_0x4ed371,_0x597352){const _0x180c0b=_0x162b,_0x4d708b=_0x4ed371();while(!![]){try{const _0x5ca928=parseInt(_0x180c0b(0x1cd))/0x1+parseInt(_0x180c0b(0x1de))/0x2+parseInt(_0x180c0b(0x1c5))/0x3+parseInt(_0x180c0b(0x1cf))/0x4+parseInt(_0x180c0b(0x1c6))/0x5*(-parseInt(_0x180c0b(0x1bb))/0x6)+parseInt(_0x180c0b(0x1ea))/0x7*(parseInt(_0x180c0b(0x1b4))/0x8)+-parseInt(_0x180c0b(0x1db))/0x9*(parseInt(_0x180c0b(0x1bf))/0xa);if(_0x5ca928===_0x597352)break;else _0x4d708b['push'](_0x4d708b['shift']());}catch(_0x59154e){_0x4d708b['push'](_0x4d708b['shift']());}}}(_0x32f5,0x7c73f));import{TencentAdsError}from'./types.js';const DEFAULT_TIMEOUT=0x7530,_0x45da9d={};_0x45da9d[_0x4997a2(0x1b6)]=0x3,_0x45da9d[_0x4997a2(0x1ca)]=0x3e8;const DEFAULT_RETRY_CONFIG=_0x45da9d;export class TencentAdsClient{[_0x4997a2(0x1b5)];constructor(_0x5c8819){const _0x2e10b1=_0x162b,_0x4f2feb={..._0x5c8819};_0x4f2feb['timeout']=_0x5c8819[_0x2e10b1(0x1d9)]||DEFAULT_TIMEOUT,_0x4f2feb['retryConfig']=_0x5c8819[_0x2e10b1(0x1d7)]||DEFAULT_RETRY_CONFIG,this[_0x2e10b1(0x1b5)]=_0x4f2feb;}async[_0x4997a2(0x1be)](_0x58b8f1){const _0x563ecd=_0x162b,_0x2eac5d=_0x58b8f1[_0x563ecd(0x1c8)][_0x563ecd(0x1dd)](_0x563ecd(0x1e8))?_0x58b8f1[_0x563ecd(0x1c8)]:this[_0x563ecd(0x1d2)](_0x58b8f1['path']),_0x2366d3={};_0x2366d3[_0x563ecd(0x1cc)]=_0x58b8f1[_0x563ecd(0x1cc)],_0x2366d3['url']=_0x2eac5d,_0x2366d3['headers']={'Content-Type':_0x563ecd(0x1d6),..._0x58b8f1[_0x563ecd(0x1dc)]},_0x2366d3['params']=_0x58b8f1[_0x563ecd(0x1b2)],_0x2366d3[_0x563ecd(0x1b1)]=_0x58b8f1['body'];let _0x17e02c=_0x2366d3;return _0x17e02c=await this['config'][_0x563ecd(0x1e3)][_0x563ecd(0x1cb)](_0x17e02c),this['requestWithRetry'](_0x17e02c);}async[_0x4997a2(0x1bc)](_0x5a694a,_0x2277f){const _0x139ba3=_0x162b,_0x3fe05d={};return _0x3fe05d[_0x139ba3(0x1cc)]=_0x139ba3(0x1e2),_0x3fe05d['path']=_0x5a694a,_0x3fe05d['params']=_0x2277f,this['request'](_0x3fe05d);}async[_0x4997a2(0x1c4)](_0x1cff6c,_0x414bfe,_0x368308){const _0x434d7f=_0x162b,_0x15561e={};return _0x15561e[_0x434d7f(0x1cc)]=_0x434d7f(0x1b8),_0x15561e['path']=_0x1cff6c,_0x15561e[_0x434d7f(0x1b1)]=_0x414bfe,_0x15561e[_0x434d7f(0x1b2)]=_0x368308,this[_0x434d7f(0x1be)](_0x15561e);}[_0x4997a2(0x1d2)](_0x26395f){const _0x3fe9fb=_0x162b,_0xf412bc=this[_0x3fe9fb(0x1b5)][_0x3fe9fb(0x1b9)][_0x3fe9fb(0x1e1)](/\/$/,''),_0x54ef9f=_0x26395f[_0x3fe9fb(0x1dd)]('/')?_0x26395f:'/'+_0x26395f;return''+_0xf412bc+_0x54ef9f;}async[_0x4997a2(0x1df)](_0x337dee,_0x2ba5b0=0x1){const _0x1a2e68=_0x162b;try{return await this[_0x1a2e68(0x1e6)](_0x337dee);}catch(_0x122165){if(this[_0x1a2e68(0x1ae)](_0x122165,_0x2ba5b0)){const _0xb12aff=this['config']['retryConfig'][_0x1a2e68(0x1ca)]*Math[_0x1a2e68(0x1d8)](0x2,_0x2ba5b0-0x1);return await new Promise(_0xd826f1=>setTimeout(_0xd826f1,_0xb12aff)),this[_0x1a2e68(0x1df)](_0x337dee,_0x2ba5b0+0x1);}throw _0x122165;}}async[_0x4997a2(0x1e6)](_0x505cd3){const _0x3102b5=_0x162b,{method:_0x45868d,url:_0x5092cb,headers:_0x4505cd,params:_0x17c8f5,body:_0x5ddb76}=_0x505cd3,_0x166f3f=_0x17c8f5?this[_0x3102b5(0x1d3)](_0x5092cb,_0x17c8f5):_0x5092cb,_0x1f74e3=new AbortController(),_0x3dba3c=setTimeout(()=>_0x1f74e3[_0x3102b5(0x1b3)](),this[_0x3102b5(0x1b5)][_0x3102b5(0x1d9)]);try{const _0x143225=Buffer[_0x3102b5(0x1b7)](_0x5ddb76),_0x410510=_0x5ddb76 instanceof Blob||_0x5ddb76 instanceof ArrayBuffer||_0x143225,_0x2c57f0=_0x5ddb76?_0x410510?_0x143225?new Uint8Array(_0x5ddb76):_0x5ddb76:JSON[_0x3102b5(0x1e0)](_0x5ddb76):undefined,_0x44be85={};_0x44be85[_0x3102b5(0x1cc)]=_0x45868d,_0x44be85[_0x3102b5(0x1dc)]=_0x4505cd,_0x44be85['body']=_0x2c57f0,_0x44be85[_0x3102b5(0x1c1)]=_0x1f74e3['signal'];const _0x2b31c7=await fetch(_0x166f3f,_0x44be85);return clearTimeout(_0x3dba3c),await this[_0x3102b5(0x1ba)](_0x2b31c7);}catch(_0x3fb083){clearTimeout(_0x3dba3c);if(_0x3fb083 instanceof TencentAdsError)throw _0x3fb083;if(_0x3fb083 instanceof Error){if(_0x3fb083['name']===_0x3102b5(0x1c3))throw new Error('Request\x20timeout\x20after\x20'+this[_0x3102b5(0x1b5)]['timeout']+_0x3102b5(0x1d4)+_0x45868d+'\x20'+_0x166f3f);throw new Error('Request\x20failed:\x20'+_0x45868d+'\x20'+_0x166f3f+'\x20—\x20'+_0x3fb083[_0x3102b5(0x1c2)]);}throw _0x3fb083;}}async['handleResponse'](_0x3fde95){const _0x17049f=_0x162b,_0x74c7a0=_0x3fde95[_0x17049f(0x1dc)][_0x17049f(0x1bc)](_0x17049f(0x1d5));if(!_0x74c7a0?.[_0x17049f(0x1e4)]('application/json')){let _0x435e93='';try{const _0x3f7772=await _0x3fde95[_0x17049f(0x1bd)]();_0x435e93=_0x3f7772['length']>0x1f4?_0x3f7772['substring'](0x0,0x1f4)+_0x17049f(0x1b0):_0x3f7772;}catch{}throw new Error(_0x17049f(0x1e9)+_0x74c7a0+'.\x20Status:\x20'+_0x3fde95['status']+'\x20'+_0x3fde95[_0x17049f(0x1da)]+_0x17049f(0x1e5)+_0x435e93);}const _0x259ebb=await _0x3fde95['json']();if(_0x259ebb['code']!==0x0)throw new TencentAdsError(_0x259ebb[_0x17049f(0x1af)],_0x259ebb[_0x17049f(0x1c2)],_0x259ebb[_0x17049f(0x1e7)],_0x259ebb[_0x17049f(0x1c7)]);return _0x259ebb[_0x17049f(0x1ad)];}['addQueryParams'](_0x3d4c7c,_0x5ae4e4){const _0x383fc3=_0x162b,_0x2bb906=new URL(_0x3d4c7c);for(const [_0x3beaaf,_0x576a57]of Object['entries'](_0x5ae4e4)){if(_0x576a57!==undefined&&_0x576a57!==null){const _0x554b27=typeof _0x576a57==='object'?JSON[_0x383fc3(0x1e0)](_0x576a57):String(_0x576a57);_0x2bb906['searchParams'][_0x383fc3(0x1ce)](_0x3beaaf,_0x554b27);}}return _0x2bb906[_0x383fc3(0x1d1)]();}[_0x4997a2(0x1ae)](_0x492c07,_0x5b47dd){const _0x492ec6=_0x162b;if(_0x5b47dd>=this[_0x492ec6(0x1b5)][_0x492ec6(0x1d7)][_0x492ec6(0x1b6)])return![];if(_0x492c07 instanceof Error&&_0x492c07['message']['includes'](_0x492ec6(0x1c9)))return!![];if(_0x492c07 instanceof TencentAdsError)return[0x1ad,0x1f4,0x1f6,0x1f7,0x1f8][_0x492ec6(0x1e4)](_0x492c07[_0x492ec6(0x1af)]);return![];}async[_0x4997a2(0x1c0)](){const _0x281b11=_0x162b;return this['config'][_0x281b11(0x1e3)][_0x281b11(0x1d0)]();}}
package/dist/api.d.ts ADDED
@@ -0,0 +1,19 @@
1
+ /**
2
+ * High-level Tencent Ads API call function.
3
+ *
4
+ * Authentication is handled automatically inside callApi():
5
+ * 1. Reads API Key from ~/.tencent-ads/credentials.json via TencentAdsAuth
6
+ * 2. Applies X-MKT-API-Key header, calls api.e.qq.com directly
7
+ * 3. Returns a structured error if no credentials are configured
8
+ *
9
+ * Callers (skill scripts) only need to specify method, path, accountId, params/body.
10
+ * They should NOT read or pass credentials themselves.
11
+ */
12
+ import type { CallApiParams, CallApiResult } from "./types.js";
13
+ /**
14
+ * Call a Tencent Ads API endpoint.
15
+ *
16
+ * Authentication is resolved automatically from local credential storage.
17
+ * Callers do NOT need to read or pass credentials.
18
+ */
19
+ export declare function callApi(params: CallApiParams): Promise<CallApiResult>;
package/dist/api.js ADDED
@@ -0,0 +1 @@
1
+ const _0x1e99b4=_0x2b9a;(function(_0x462b71,_0x2100e8){const _0x5a8d8c=_0x2b9a,_0x1f19ea=_0x462b71();while(!![]){try{const _0x292f12=-parseInt(_0x5a8d8c(0xba))/0x1*(parseInt(_0x5a8d8c(0xac))/0x2)+-parseInt(_0x5a8d8c(0xc9))/0x3*(-parseInt(_0x5a8d8c(0xcb))/0x4)+-parseInt(_0x5a8d8c(0xca))/0x5*(-parseInt(_0x5a8d8c(0xb2))/0x6)+parseInt(_0x5a8d8c(0xc6))/0x7+-parseInt(_0x5a8d8c(0xc0))/0x8*(parseInt(_0x5a8d8c(0xc2))/0x9)+-parseInt(_0x5a8d8c(0xb4))/0xa*(parseInt(_0x5a8d8c(0xae))/0xb)+parseInt(_0x5a8d8c(0xb1))/0xc;if(_0x292f12===_0x2100e8)break;else _0x1f19ea['push'](_0x1f19ea['shift']());}catch(_0x118323){_0x1f19ea['push'](_0x1f19ea['shift']());}}}(_0x5e07,0x23c36));import{TencentAdsClient}from'./api-client.js';import{TencentAdsAuth}from'./auth.js';import{TencentAdsError}from'./types.js';function _0x5e07(){const _0x303698=['yxv0AgvUDgLJyxrL','zxjYB3i','ntf1zwD5BxK','nuX2seTTqG','mJeZotjvEwTbzMC','DhLWzq','yxbWBgLJyxrPB24VANnVBG','vgvUy2vUDefKC0vYCM9Y','y29Kzq','mMXfA05Ayq','CgfYyw1Z','otu0oerfCxnIBW','C3vJy2vZCW','igzVCIbHy2nVDw50oIa','mtuYmtyWmeT2zMLAvW','mtq5nJaXnMf4EePmrW','yxv0AfbYB3zPzgvY','mtyWmerkAhjmsW','BgvUz3rO','rxjYB3i','yxbPs2v5','tM8GqvbjieTLEsbWCM92AwrLza','yxbPlMuUCxeUy29T','mJm5mdiXyMPJrxfw','BwvZC2fNzq','BwvZC2fNzv9JBG','AxnwywXPza','yMfZzvvYBa','5PYQ5OM+5yIW6iw+6k6V5BM/5zgk6k6K6k+b5yET5O2U77Ym6k+35ywi6l+q6kgmihrLBMnLBNqTywrZigf1DgGG6ywn572UiefqssblzxK','mJiXnLLPvK1YEq','DhjHy2vFAwq','mJeZm3LXt1LgrG','AgvHzgvYCW','tufss0vusu5hx0fqsq','ywnJB3vUDeLK','odyWodG4qNPlvfHA'];_0x5e07=function(){return _0x303698;};return _0x5e07();}import{ENDPOINTS}from'./endpoints.js';class ApiKeyAuthProvider{[_0x1e99b4(0xc5)];['apiKey'];constructor(_0x33107a,_0x201d23){const _0x161a58=_0x2b9a;this[_0x161a58(0xc5)]=_0x33107a,this[_0x161a58(0xb7)]=_0x201d23;}async[_0x1e99b4(0xc7)](_0x2e6fec){const _0x49827a=_0x2b9a;if(!this[_0x49827a(0xb7)])throw new Error(_0x49827a(0xb8)+(this[_0x49827a(0xc5)]?_0x49827a(0xb0)+this[_0x49827a(0xc5)]:'')+'.');const _0x24b629={'Host':_0x49827a(0xb9),'X-MKT-API-Key':this[_0x49827a(0xb7)],'Content-Type':_0x49827a(0xcd),..._0x2e6fec[_0x49827a(0xc3)]},_0x46bf2d=_0x24b629,_0x361fc3={..._0x2e6fec};return _0x361fc3['headers']=_0x46bf2d,_0x361fc3['params']={..._0x2e6fec[_0x49827a(0xad)]},_0x361fc3;}async[_0x1e99b4(0xbd)](){const _0x2161c3=_0x2b9a;return!!this['apiKey']&&this[_0x2161c3(0xb7)][_0x2161c3(0xb5)]>0x0;}}function resolveAuth(_0x4c2e8a){const _0x266baf=_0x2b9a,_0x30046e=new TencentAdsAuth(),_0xef7bef=_0x30046e['read']();if(_0xef7bef?.[_0x266baf(0xb7)])return{'authProvider':new ApiKeyAuthProvider(_0x4c2e8a,_0xef7bef['apiKey']),'baseUrl':ENDPOINTS[_0x266baf(0xc4)]};const _0x1a1493={};return _0x1a1493[_0x266baf(0xc8)]=_0x266baf(0xbf),_0x1a1493;}function _0x2b9a(_0x5dc4cd,_0x52c321){_0x5dc4cd=_0x5dc4cd-0xab;const _0x5e0792=_0x5e07();let _0x2b9a4d=_0x5e0792[_0x5dc4cd];if(_0x2b9a['vKMZUv']===undefined){var _0x177034=function(_0x515596){const _0x277921='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x48db06='',_0x269a55='';for(let _0xdbdd5b=0x0,_0x35248a,_0x17f7e6,_0x54d18c=0x0;_0x17f7e6=_0x515596['charAt'](_0x54d18c++);~_0x17f7e6&&(_0x35248a=_0xdbdd5b%0x4?_0x35248a*0x40+_0x17f7e6:_0x17f7e6,_0xdbdd5b++%0x4)?_0x48db06+=String['fromCharCode'](0xff&_0x35248a>>(-0x2*_0xdbdd5b&0x6)):0x0){_0x17f7e6=_0x277921['indexOf'](_0x17f7e6);}for(let _0x7c2f4c=0x0,_0x30fdb6=_0x48db06['length'];_0x7c2f4c<_0x30fdb6;_0x7c2f4c++){_0x269a55+='%'+('00'+_0x48db06['charCodeAt'](_0x7c2f4c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x269a55);};_0x2b9a['UqBNtH']=_0x177034,_0x2b9a['ASUYri']={},_0x2b9a['vKMZUv']=!![];}const _0x441a28=_0x5e0792[0x0],_0x545f7e=_0x5dc4cd+_0x441a28,_0x36fa3a=_0x2b9a['ASUYri'][_0x545f7e];return!_0x36fa3a?(_0x2b9a4d=_0x2b9a['UqBNtH'](_0x2b9a4d),_0x2b9a['ASUYri'][_0x545f7e]=_0x2b9a4d):_0x2b9a4d=_0x36fa3a,_0x2b9a4d;}export async function callApi(_0x377714){const _0x3fbf75=_0x2b9a,{method:_0x45433a,path:_0x10cf63,accountId:_0x39bc87,params:_0x5337ee,body:_0x37d0c5,headers:_0x4a1e89,baseUrl:_0x10d972}=_0x377714;try{const _0xc8adca=resolveAuth(_0x39bc87);if('error'in _0xc8adca){const _0x531c75={};_0x531c75[_0x3fbf75(0xcc)]=_0x3fbf75(0xb6),_0x531c75[_0x3fbf75(0xbb)]=_0xc8adca[_0x3fbf75(0xc8)];const _0x1ead21={};return _0x1ead21[_0x3fbf75(0xaf)]=![],_0x1ead21[_0x3fbf75(0xc8)]=_0x531c75,_0x1ead21;}const _0x2c6d12={};_0x2c6d12[_0x3fbf75(0xb3)]=_0xc8adca[_0x3fbf75(0xb3)],_0x2c6d12[_0x3fbf75(0xbe)]=_0x10d972??_0xc8adca[_0x3fbf75(0xbe)];const _0x344837=new TencentAdsClient(_0x2c6d12),_0x4b960a={};_0x4b960a['method']=_0x45433a,_0x4b960a['path']=_0x10cf63,_0x4b960a[_0x3fbf75(0xad)]=_0x5337ee,_0x4b960a['body']=_0x37d0c5,_0x4b960a[_0x3fbf75(0xc3)]=_0x4a1e89;const _0x2173c6=await _0x344837['request'](_0x4b960a),_0x23209c={};return _0x23209c[_0x3fbf75(0xaf)]=!![],_0x23209c['data']=_0x2173c6,_0x23209c;}catch(_0x1534b1){if(_0x1534b1 instanceof TencentAdsError){const _0x3e47c0={};_0x3e47c0[_0x3fbf75(0xcc)]=_0x3fbf75(0xce),_0x3e47c0[_0x3fbf75(0xab)]=_0x1534b1[_0x3fbf75(0xab)],_0x3e47c0['message']=_0x1534b1['message'],_0x3e47c0[_0x3fbf75(0xbc)]=_0x1534b1[_0x3fbf75(0xbc)],_0x3e47c0[_0x3fbf75(0xc1)]=_0x1534b1[_0x3fbf75(0xc1)];const _0x1886db={};return _0x1886db[_0x3fbf75(0xaf)]=![],_0x1886db[_0x3fbf75(0xc8)]=_0x3e47c0,_0x1886db;}return{'success':![],'error':{'type':'Error','message':_0x1534b1 instanceof Error?_0x1534b1['message']:String(_0x1534b1)}};}}
package/dist/auth.d.ts ADDED
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Tencent Ads authentication manager.
3
+ *
4
+ * Credential storage: ~/.tencent-ads/credentials.json
5
+ * (can be overridden via constructor or TENCENT_ADS_CONFIG_DIR env var)
6
+ *
7
+ * Authentication method: API Key (X-MKT-API-Key header, direct to api.e.qq.com)
8
+ *
9
+ * Write path:
10
+ * Agent 在对话中引导用户提供 API Key → 调用 tencent-ads-auth skill 的
11
+ * auth-save-apikey.mjs 脚本 → TencentAdsAuth.saveApiKey() 写入文件。
12
+ *
13
+ * Read path:
14
+ * callApi() 内部 → TencentAdsAuth.read() → 从文件读取 API Key。
15
+ */
16
+ import type { AuthStatus, AuthInfo } from "./types.js";
17
+ export declare class TencentAdsAuth {
18
+ private filePath;
19
+ constructor(configDir?: string);
20
+ /** Get the config directory path */
21
+ get configDir(): string;
22
+ /** Get the credentials file path */
23
+ get credentialsFilePath(): string;
24
+ /**
25
+ * Read API Key from ~/.tencent-ads/credentials.json.
26
+ */
27
+ read(): {
28
+ apiKey: string;
29
+ updatedAt?: string;
30
+ } | null;
31
+ /**
32
+ * Save API Key to ~/.tencent-ads/credentials.json.
33
+ */
34
+ saveApiKey(apiKey: string): void;
35
+ getStatus(): AuthStatus;
36
+ getInfo(): AuthInfo;
37
+ }
package/dist/auth.js ADDED
@@ -0,0 +1 @@
1
+ const _0x214ef4=_0x29ce;(function(_0x425498,_0x2e8e6b){const _0x10defe=_0x29ce,_0x1bfc62=_0x425498();while(!![]){try{const _0x48fde1=-parseInt(_0x10defe(0x1b8))/0x1+parseInt(_0x10defe(0x1a8))/0x2*(parseInt(_0x10defe(0x1bb))/0x3)+-parseInt(_0x10defe(0x1cf))/0x4+parseInt(_0x10defe(0x1a9))/0x5*(parseInt(_0x10defe(0x1c0))/0x6)+parseInt(_0x10defe(0x1ba))/0x7*(parseInt(_0x10defe(0x1ce))/0x8)+-parseInt(_0x10defe(0x1d0))/0x9+parseInt(_0x10defe(0x1af))/0xa;if(_0x48fde1===_0x2e8e6b)break;else _0x1bfc62['push'](_0x1bfc62['shift']());}catch(_0x550a96){_0x1bfc62['push'](_0x1bfc62['shift']());}}}(_0x3f97,0x53c2a));import _0x2b2ac2 from'node:fs';import _0x29e7e5 from'node:path';function _0x3f97(){const _0x18ea0d=['nZuXnKLkzenVua','mZi4ntK5nwjgEwzUEq','BgvUz3rO','CMvHzezPBgvtEw5J','Dg9ju09tDhjPBMC','zw52','y3jLzgvUDgLHBfbYzxzPzxC','mJmXmZG0meLYu2fNtG','y3jLzgvUDgLHBhmUANnVBG','yxbPs2v5','y29UzMLNrgLY','C3rHDhvZ','yxv0Ae1LDgHVza','z2v0u3rHDhvZ','C3vIC3rYAw5N','DxrMltG','otm2ntLhy0L0AeC','y3jLzgvUDgLHBhngAwXLugf0Aa','ote0ouzWwxnOrW','mtm4qMLOrerU','lNrLBMnLBNqTywrZ','DhjPBq','CMvHza','C3rVCMfNzvbHDgG','nLvergDZAa','CMvJDxjZAxzL','C3rYAw5N','yxbPx2TLEq','DxbKyxrLzef0','D3jPDgvgAwXLu3LUyW','ywn0AxzL','zgLYBMfTzq','zMLSzvbHDgG','lI4U','C3rYAw5NAwz5','CMvWBgfJzq','BM90x2nVBMzPz3vYzwq','CgfYC2u','ody0z1v1wNDf','mtGYmdC5nKPkv1fdsa','mJC5nJaWm0TfuNnprG','AM9PBG','zxHPC3rZu3LUyW','BwTKAxjtEw5J'];_0x3f97=function(){return _0x18ea0d;};return _0x3f97();}import{homedir}from'node:os';function _0x29ce(_0x2d6fc8,_0x767857){_0x2d6fc8=_0x2d6fc8-0x1a5;const _0x3f977e=_0x3f97();let _0x29ce27=_0x3f977e[_0x2d6fc8];if(_0x29ce['abOUgK']===undefined){var _0x259f98=function(_0x51f48d){const _0xc300db='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3ef545='',_0x511046='';for(let _0x2b2ac2=0x0,_0x29e7e5,_0x254aae,_0x57c26a=0x0;_0x254aae=_0x51f48d['charAt'](_0x57c26a++);~_0x254aae&&(_0x29e7e5=_0x2b2ac2%0x4?_0x29e7e5*0x40+_0x254aae:_0x254aae,_0x2b2ac2++%0x4)?_0x3ef545+=String['fromCharCode'](0xff&_0x29e7e5>>(-0x2*_0x2b2ac2&0x6)):0x0){_0x254aae=_0xc300db['indexOf'](_0x254aae);}for(let _0x3a2e81=0x0,_0x317f01=_0x3ef545['length'];_0x3a2e81<_0x317f01;_0x3a2e81++){_0x511046+='%'+('00'+_0x3ef545['charCodeAt'](_0x3a2e81)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x511046);};_0x29ce['UmvhQw']=_0x259f98,_0x29ce['nhGSYL']={},_0x29ce['abOUgK']=!![];}const _0x3c67ea=_0x3f977e[0x0],_0xc92132=_0x2d6fc8+_0x3c67ea,_0x4c88bf=_0x29ce['nhGSYL'][_0xc92132];return!_0x4c88bf?(_0x29ce27=_0x29ce['UmvhQw'](_0x29ce27),_0x29ce['nhGSYL'][_0xc92132]=_0x29ce27):_0x29ce27=_0x4c88bf,_0x29ce27;}const DEFAULT_CONFIG_DIR=_0x29e7e5[_0x214ef4(0x1a5)](homedir(),_0x214ef4(0x1bc)),CREDENTIALS_FILENAME=_0x214ef4(0x1b0);export class TencentAdsAuth{[_0x214ef4(0x1c8)];constructor(_0x254aae){const _0x40ce9f=_0x29ce,_0x57c26a=_0x254aae||process[_0x40ce9f(0x1ad)]['TENCENT_ADS_CONFIG_DIR']||DEFAULT_CONFIG_DIR;this[_0x40ce9f(0x1c8)]=_0x29e7e5[_0x40ce9f(0x1a5)](_0x57c26a,CREDENTIALS_FILENAME);}get[_0x214ef4(0x1b2)](){const _0x1f4a48=_0x29ce;return _0x29e7e5[_0x1f4a48(0x1c7)](this[_0x1f4a48(0x1c8)]);}get[_0x214ef4(0x1b9)](){const _0x157090=_0x29ce;return this[_0x157090(0x1c8)];}['read'](){const _0x4e98bc=_0x29ce;if(!_0x2b2ac2[_0x4e98bc(0x1a6)](this[_0x4e98bc(0x1c8)]))return null;try{const _0x3a2e81=_0x2b2ac2[_0x4e98bc(0x1ab)](this[_0x4e98bc(0x1c8)],_0x4e98bc(0x1b7))[_0x4e98bc(0x1cb)](/^\uFEFF/,''),_0x317f01=JSON[_0x4e98bc(0x1cd)](_0x3a2e81);if(_0x317f01[_0x4e98bc(0x1b1)]&&typeof _0x317f01[_0x4e98bc(0x1b1)]===_0x4e98bc(0x1c2)&&_0x317f01[_0x4e98bc(0x1b1)][_0x4e98bc(0x1bd)]())return{'apiKey':_0x317f01[_0x4e98bc(0x1b1)][_0x4e98bc(0x1bd)](),'updatedAt':_0x317f01[_0x4e98bc(0x1c4)]};return null;}catch{return null;}}['saveApiKey'](_0x46e6c2){const _0x15c28b=_0x29ce,_0x2fac2e={'apiKey':_0x46e6c2,'updatedAt':new Date()[_0x15c28b(0x1ac)]()},_0x159051=_0x29e7e5[_0x15c28b(0x1c7)](this['filePath']);if(!_0x2b2ac2['existsSync'](_0x159051)){const _0xdf0067={};_0xdf0067[_0x15c28b(0x1c1)]=!![],_0x2b2ac2[_0x15c28b(0x1a7)](_0x159051,_0xdf0067);}_0x2b2ac2[_0x15c28b(0x1c5)](this[_0x15c28b(0x1c8)],JSON[_0x15c28b(0x1ca)](_0x2fac2e,null,0x2),_0x15c28b(0x1b7));}['getStatus'](){const _0x1f02f2=_0x29ce,_0x50fe65=this[_0x1f02f2(0x1be)]();if(!_0x50fe65?.[_0x1f02f2(0x1b1)])return _0x1f02f2(0x1cc);return _0x1f02f2(0x1c6);}['getInfo'](){const _0x2d50b8=_0x29ce,_0x3997c3=this[_0x2d50b8(0x1be)](),_0x2656bb=this[_0x2d50b8(0x1b5)]();let _0x47fc8c;_0x3997c3?.[_0x2d50b8(0x1b1)]&&(_0x47fc8c=_0x3997c3['apiKey'][_0x2d50b8(0x1aa)]>0x14?_0x3997c3[_0x2d50b8(0x1b1)][_0x2d50b8(0x1b6)](0x0,0x14)+_0x2d50b8(0x1c9):_0x3997c3[_0x2d50b8(0x1b1)]);const _0xcb7efe={};return _0xcb7efe['integrationId']='tencent-ads',_0xcb7efe[_0x2d50b8(0x1b4)]=_0x2d50b8(0x1c3),_0xcb7efe[_0x2d50b8(0x1b3)]=_0x2656bb,_0xcb7efe['updatedAt']=_0x3997c3?.[_0x2d50b8(0x1c4)]??null,_0xcb7efe[_0x2d50b8(0x1ae)]=_0x47fc8c,_0xcb7efe[_0x2d50b8(0x1bf)]=this[_0x2d50b8(0x1c8)],_0xcb7efe;}}
package/dist/bin.d.ts ADDED
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * tencent-ads CLI binary entry point.
4
+ *
5
+ * Provides a standalone CLI tool for Tencent Ads API operations:
6
+ * tencent-ads api <json> — Call an API endpoint
7
+ * tencent-ads auth status — Check authentication status
8
+ *
9
+ * This CLI is designed to be called by both humans and AI agent tools.
10
+ * Credentials are read from ~/.tencent-ads/credentials.json
11
+ * (written by tencent-ads-auth skill's auth-save-apikey.mjs script).
12
+ */
13
+ export {};
package/dist/bin.js ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ function _0x5bcb(_0x542329,_0x5e7bb5){_0x542329=_0x542329-0x1cc;const _0x1aa595=_0x1aa5();let _0x5bcbf9=_0x1aa595[_0x542329];if(_0x5bcb['ViyUVc']===undefined){var _0x6e1be0=function(_0xb67114){const _0x840f42='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x8bbebf='',_0x1dbc41='';for(let _0x304879=0x0,_0x1ed078,_0x1a815a,_0x4976c3=0x0;_0x1a815a=_0xb67114['charAt'](_0x4976c3++);~_0x1a815a&&(_0x1ed078=_0x304879%0x4?_0x1ed078*0x40+_0x1a815a:_0x1a815a,_0x304879++%0x4)?_0x8bbebf+=String['fromCharCode'](0xff&_0x1ed078>>(-0x2*_0x304879&0x6)):0x0){_0x1a815a=_0x840f42['indexOf'](_0x1a815a);}for(let _0x498e6c=0x0,_0xb85781=_0x8bbebf['length'];_0x498e6c<_0xb85781;_0x498e6c++){_0x1dbc41+='%'+('00'+_0x8bbebf['charCodeAt'](_0x498e6c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1dbc41);};_0x5bcb['ajUuXv']=_0x6e1be0,_0x5bcb['HxqBbY']={},_0x5bcb['ViyUVc']=!![];}const _0x4a3014=_0x1aa595[0x0],_0xc57dcb=_0x542329+_0x4a3014,_0x567c78=_0x5bcb['HxqBbY'][_0xc57dcb];return!_0x567c78?(_0x5bcbf9=_0x5bcb['ajUuXv'](_0x5bcbf9),_0x5bcb['HxqBbY'][_0xc57dcb]=_0x5bcbf9):_0x5bcbf9=_0x567c78,_0x5bcbf9;}const _0x37d8c4=_0x5bcb;(function(_0x4dbb1a,_0x689cfd){const _0x235c72=_0x5bcb,_0x38560c=_0x4dbb1a();while(!![]){try{const _0xf7cc77=parseInt(_0x235c72(0x1dc))/0x1*(parseInt(_0x235c72(0x1e5))/0x2)+-parseInt(_0x235c72(0x1e1))/0x3+-parseInt(_0x235c72(0x1cd))/0x4+parseInt(_0x235c72(0x1f1))/0x5+-parseInt(_0x235c72(0x1ec))/0x6*(-parseInt(_0x235c72(0x1f5))/0x7)+parseInt(_0x235c72(0x1d5))/0x8*(-parseInt(_0x235c72(0x1de))/0x9)+parseInt(_0x235c72(0x1cc))/0xa;if(_0xf7cc77===_0x689cfd)break;else _0x38560c['push'](_0x38560c['shift']());}catch(_0x55121a){_0x38560c['push'](_0x38560c['shift']());}}}(_0x1aa5,0x7c593));import{TencentAdsAuth}from'./auth.js';import{callApi}from'./api.js';const auth=new TencentAdsAuth();async function main(){const _0x5bc5af=_0x5bcb,_0x1dbc41=process[_0x5bc5af(0x1d9)][_0x5bc5af(0x1d7)](0x2),_0x304879=_0x1dbc41[0x0];switch(_0x304879){case _0x5bc5af(0x1ed):await handleApi(_0x1dbc41[_0x5bc5af(0x1d7)](0x1));break;case _0x5bc5af(0x1ea):case'auth-status':_0x304879===_0x5bc5af(0x1d8)||_0x1dbc41[0x1]===_0x5bc5af(0x1f6)?handleAuthStatus():printAuthUsage();break;case _0x5bc5af(0x1f4):case _0x5bc5af(0x1fb):case'-h':printUsage();break;default:!_0x304879?printUsage():(console[_0x5bc5af(0x1e3)](_0x5bc5af(0x1e2)+_0x304879),printUsage(),process['exit'](0x1));}}function _0x1aa5(){const _0x50d9e3=['yxv0Ac1ZDgf0Dxm','yxjNDG','ls1TzxrOB2q','zxHPDa','ndmYmtGZrM9RzNnb','C3rHCNrZv2L0Aa','mJm0oxjKAu93Bq','cLvZywDLoGOGihrLBMnLBNqTywrZigfWAsaNEYjTzxrOB2qIoIjhrvqIlcjWyxrOiJOIl2fWAs92mY4Wl2fKz3jVDxbZl2DLDciSiMfJy291BNrFAwqIoIiXmJmIFsC','ls1IB2r5','mJq5mdqZoevADxHdCa','vw5RBM93BIbJB21Tyw5KoIa','zxjYB3i','rMf0ywWGzxjYB3i6ia','neTWt2Tkua','Dg9vChbLCKnHC2u','sw52ywXPzcaTlxbHCMfTCYbku09ooIa','DhLWzq','Cgf0Aa','yxv0Aa','twLZC2LUzYbYzxf1AxjLzcaNywnJB3vUDf9PzcCGyxjNDw1LBNqU','mtGZmdeYteHjAevt','yxbP','Bg9N','CgfYC2u','C3vJy2vZCW','nZu4nxz0zuD6Dq','ls1Hy2nVDw50lwLK','vgvUy2vUDefKC0vYCM9Y','AgvSCa','mte5CwLVuu1I','C3rHDhvZ','r0vu','DgvZDa','yM9KEq','CgfYyw1Z','ls1OzwXW','zgf0yq','DgvUy2vUDc1HzhmG4OcuioIfVUIUR+w5V+wrIIbbueKGq0Xjiow3PEwfTWOkvxnHz2u6cIaGDgvUy2vUDc1HzhmGyxbPidXQC29UpIaGicaGicaGicaGicaGicaGicaGienHBgWGyw4GqvbjigvUzhbVAw50cIaGDgvUy2vUDc1HzhmGyxv0AcbZDgf0DxmGicaGicaGicaGicaGicaGicaGienOzwnRigf1DgHLBNrPy2f0Aw9Uihn0yxr1CWOGihrLBMnLBNqTywrZigHLBhaGicaGicaGicaGicaGicaGicaGicaGicaGicbtAg93ihrOAxmGAgvSCaOkqvbjiev4yw1WBgvZoGOGihrLBMnLBNqTywrZigfWAsaNEYjTzxrOB2qIoIjhrvqIlcjWyxrOiJOIl2fWAs92mY4Wl2fKz3jVDxbZl2DLDciSiMfJy291BNrFAwqIoIiXmJmIFsCkicb0zw5Jzw50lwfKCYbHCgKGj3SIBwv0Ag9KiJOIue9tvciSiNbHDgGIoIiVyxbPl3yZlJaVywrNCM91ChmVywrKiIWIywnJB3vUDf9Pzci6iJeYmYiSiMjVzhKIoNSUlI59FsCkcKnYzwrLBNrPywXZoGOGifn0B3jLzcbHDcb+lY50zw5Jzw50lwfKCY9JCMvKzw50AwfSCY5QC29UicH3CML0DgvUigj5ihrLBMnLBNqTywrZlwf1DgGGC2TPBgWPlG','qvbjignHBgWGzMfPBgvKoGO','mJeXmZa2meHrrhH2uq','mZG5mtG4rNrPseTX','sw52ywXPzcbku09oigfYz3vTzw50oIa','BgvUz3rO','z2v0sw5MBW','cKv4CgvJDgvKigzVCM1HDdOGj3SIBwv0Ag9KiJOIr0vuiIWICgf0Aci6iI9HCgKVDJmUmc9HzgDYB3vWCY9NzxqIlcjHy2nVDw50x2LKiJOImtiZiN0N','Bwv0Ag9K','C3rYAw5NAwz5','BwvZC2fNzq','ndG3mKzzy2HLsG','y2f0y2G','C2XPy2u'];_0x1aa5=function(){return _0x50d9e3;};return _0x1aa5();}function printUsage(){const _0x6c8bdd=_0x5bcb;console[_0x6c8bdd(0x1ee)](_0x6c8bdd(0x1fd));}function printAuthUsage(){const _0x259f5d=_0x5bcb;console['error']('Usage:\x0a\x20\x20tencent-ads\x20auth\x20status\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Check\x20authentication\x20status'),process[_0x259f5d(0x1db)](0x1);}function handleAuthStatus(){const _0x129af1=_0x5bcb,_0x1ed078=auth[_0x129af1(0x1d0)]();console[_0x129af1(0x1ee)](JSON['stringify'](_0x1ed078,null,0x2));}async function handleApi(_0x1a815a){const _0xfa481=_0x5bcb;let _0x4976c3=_0xfa481(0x1f7),_0x498e6c='',_0xb85781='',_0x14f51e,_0x452150;if(_0x1a815a[_0xfa481(0x1cf)]>=0x1&&_0x1a815a[0x0][_0xfa481(0x1dd)]('{'))try{const _0x44bd28=JSON['parse'](_0x1a815a[0x0]);_0x4976c3=(_0x44bd28[_0xfa481(0x1d2)]||_0xfa481(0x1f7))['toUpperCase'](),_0x498e6c=_0x44bd28['path']||'',_0xb85781=String(_0x44bd28['account_id']??''),_0x14f51e=_0x44bd28['params'],_0x452150=_0x44bd28[_0xfa481(0x1f9)];}catch(_0x304de9){console[_0xfa481(0x1e3)](_0xfa481(0x1ce)+(_0x304de9 instanceof Error?_0x304de9[_0xfa481(0x1d4)]:String(_0x304de9))),console['error'](_0xfa481(0x1d1)),process[_0xfa481(0x1db)](0x1);}else for(let _0x48c1c8=0x0;_0x48c1c8<_0x1a815a[_0xfa481(0x1cf)];_0x48c1c8++){switch(_0x1a815a[_0x48c1c8]){case _0xfa481(0x1da):_0x4976c3=(_0x1a815a[++_0x48c1c8]||_0xfa481(0x1f7))[_0xfa481(0x1e6)]();break;case'--path':_0x498e6c=_0x1a815a[++_0x48c1c8]||'';break;case _0xfa481(0x1f2):_0xb85781=_0x1a815a[++_0x48c1c8]||'';break;case'--params':try{_0x14f51e=JSON[_0xfa481(0x1ef)](_0x1a815a[++_0x48c1c8]||'{}');}catch(_0x38cb32){console[_0xfa481(0x1e3)](_0xfa481(0x1e7)+(_0x38cb32 instanceof Error?_0x38cb32[_0xfa481(0x1d4)]:String(_0x38cb32))),process[_0xfa481(0x1db)](0x1);}break;case _0xfa481(0x1e0):try{_0x452150=JSON[_0xfa481(0x1ef)](_0x1a815a[++_0x48c1c8]||'{}');}catch(_0x581a75){console[_0xfa481(0x1e3)]('Invalid\x20--body\x20JSON:\x20'+(_0x581a75 instanceof Error?_0x581a75[_0xfa481(0x1d4)]:String(_0x581a75))),process['exit'](0x1);}break;}}!_0x498e6c&&(console[_0xfa481(0x1e3)]('Missing\x20required\x20\x27path\x27\x20argument.'),console[_0xfa481(0x1e3)](_0xfa481(0x1df)),process[_0xfa481(0x1db)](0x1));!_0xb85781&&(console[_0xfa481(0x1e3)](_0xfa481(0x1eb)),process[_0xfa481(0x1db)](0x1));const _0x1721e5={};_0x1721e5['method']=_0x4976c3,_0x1721e5[_0xfa481(0x1e9)]=_0x498e6c,_0x1721e5['accountId']=_0xb85781,_0x1721e5[_0xfa481(0x1fa)]=_0x14f51e,_0x1721e5[_0xfa481(0x1f9)]=_0x452150;const _0x5a237d=await callApi(_0x1721e5);if(!_0x5a237d[_0xfa481(0x1f0)]){const _0x5010ab=_0x5a237d['error'],_0x5cf259=_0x5010ab[_0xfa481(0x1e8)]===_0xfa481(0x1f3)?JSON[_0xfa481(0x1d3)](_0x5010ab,null,0x2):_0x5010ab['message'],_0x5ae2c4=/Access token is empty|Authentication is not valid|AUTH_REQUIRED|AUTH_EXPIRED/i[_0xfa481(0x1f8)](_0x5cf259),_0x393871=_0x5ae2c4?'\x0a\x0aAUTH_EXPIRED:\x20API\x20Key\x20has\x20expired\x20or\x20is\x20invalid.\x20Please\x20re-authenticate.':'';console['error'](_0xfa481(0x1fe)+_0x4976c3+'\x20'+_0x498e6c+'\x20(account:\x20'+_0xb85781+')\x0a'+_0x5cf259+_0x393871),process[_0xfa481(0x1db)](0x1);}console[_0xfa481(0x1ee)](JSON[_0xfa481(0x1d3)](_0x5a237d[_0xfa481(0x1fc)],null,0x2));}main()[_0x37d8c4(0x1d6)](_0x157b0a=>{const _0x417656=_0x5bcb;console['error'](_0x417656(0x1e4)+(_0x157b0a instanceof Error?_0x157b0a[_0x417656(0x1d4)]:String(_0x157b0a))),process['exit'](0x1);});
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Tencent Ads API Endpoints
3
+ */
4
+ export declare const ENDPOINTS: {
5
+ /** Marketing API — direct API endpoint with API Key authentication */
6
+ readonly MARKETING_API: "https://api.e.qq.com";
7
+ /** Ads Platform (legacy) — ad.qq.com */
8
+ readonly ADS_PLATFORM: "https://ad.qq.com";
9
+ };
10
+ export type EndpointType = keyof typeof ENDPOINTS;
@@ -0,0 +1 @@
1
+ const _0x31c37d=_0x3c2b;(function(_0x47ac7b,_0x5cec64){const _0x26aeba=_0x3c2b,_0x2af846=_0x47ac7b();while(!![]){try{const _0x3575f3=-parseInt(_0x26aeba(0x72))/0x1*(parseInt(_0x26aeba(0x67))/0x2)+parseInt(_0x26aeba(0x6d))/0x3*(-parseInt(_0x26aeba(0x71))/0x4)+-parseInt(_0x26aeba(0x69))/0x5+parseInt(_0x26aeba(0x6a))/0x6*(parseInt(_0x26aeba(0x6e))/0x7)+-parseInt(_0x26aeba(0x68))/0x8+-parseInt(_0x26aeba(0x6f))/0x9+parseInt(_0x26aeba(0x73))/0xa;if(_0x3575f3===_0x5cec64)break;else _0x2af846['push'](_0x2af846['shift']());}catch(_0x11ea2e){_0x2af846['push'](_0x2af846['shift']());}}}(_0x6e25,0xdff9e));const _0x376d68={};function _0x3c2b(_0x1c0035,_0x158888){_0x1c0035=_0x1c0035-0x67;const _0x6e2590=_0x6e25();let _0x3c2b6d=_0x6e2590[_0x1c0035];if(_0x3c2b['mlHoNo']===undefined){var _0xd6e58c=function(_0x303cc3){const _0x300cdd='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x376d68='',_0x569dc2='';for(let _0x221608=0x0,_0x12a68b,_0x19bf98,_0x52fd44=0x0;_0x19bf98=_0x303cc3['charAt'](_0x52fd44++);~_0x19bf98&&(_0x12a68b=_0x221608%0x4?_0x12a68b*0x40+_0x19bf98:_0x19bf98,_0x221608++%0x4)?_0x376d68+=String['fromCharCode'](0xff&_0x12a68b>>(-0x2*_0x221608&0x6)):0x0){_0x19bf98=_0x300cdd['indexOf'](_0x19bf98);}for(let _0x223ce6=0x0,_0x5a54=_0x376d68['length'];_0x223ce6<_0x5a54;_0x223ce6++){_0x569dc2+='%'+('00'+_0x376d68['charCodeAt'](_0x223ce6)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x569dc2);};_0x3c2b['IHGjxs']=_0xd6e58c,_0x3c2b['AGaxmE']={},_0x3c2b['mlHoNo']=!![];}const _0xb042f8=_0x6e2590[0x0],_0x8f686c=_0x1c0035+_0xb042f8,_0x35e77b=_0x3c2b['AGaxmE'][_0x8f686c];return!_0x35e77b?(_0x3c2b6d=_0x3c2b['IHGjxs'](_0x3c2b6d),_0x3c2b['AGaxmE'][_0x8f686c]=_0x3c2b6d):_0x3c2b6d=_0x35e77b,_0x3c2b6d;}_0x376d68[_0x31c37d(0x6b)]=_0x31c37d(0x6c),_0x376d68['ADS_PLATFORM']=_0x31c37d(0x70);export const ENDPOINTS=_0x376d68;function _0x6e25(){const _0x2fd9df=['mMfAD2L3uG','nde0mdKYmfbcrxPXCG','ndiYmtu2merwyMLtAW','ndC5ndzrAMnMtu0','tufss0vusu5hx0fqsq','Ahr0Chm6lY9HCgKUzs5XCs5JB20','mti2nMXdCwfcDG','mte5mg96BxLvBa','mty1mdG5nZLOA0r0t3O','Ahr0Chm6lY9Hzc5XCs5JB20','mta1otjvug5AquW','ntiZndu3t3rNrg5U','ndm5nJeWnZb3DhL3Cuy'];_0x6e25=function(){return _0x2fd9df;};return _0x6e25();}
@@ -0,0 +1,329 @@
1
+ /**
2
+ * Tencent Ads CLI — Enums
3
+ *
4
+ * 公共枚举 key↔value 映射,以及枚举解析/推导工具函数。
5
+ * 所有 skill 脚本共享此模块,确保:
6
+ * 1. SKILL 对外暴露字符串 key(如 "MARKETING_GOAL_USER_GROWTH")
7
+ * 2. 脚本调用底层 API 时,由本模块将 key 转为数值 value
8
+ * 3. product_type 由 marketing_carrier_type + delivery_scene 自动推导
9
+ */
10
+ export declare const MARKETING_GOAL: {
11
+ readonly MARKETING_GOAL_UNKNOWN: 0;
12
+ readonly MARKETING_GOAL_USER_GROWTH: 1;
13
+ readonly MARKETING_GOAL_PRODUCT_SALES: 2;
14
+ readonly MARKETING_GOAL_LEAD_RETENTION: 3;
15
+ readonly MARKETING_GOAL_BRAND_PROMOTION: 4;
16
+ readonly MARKETING_GOAL_INCREASE_FANS_INTERACTION: 5;
17
+ };
18
+ export declare const MARKETING_SUB_GOAL: {
19
+ readonly MARKETING_SUB_GOAL_UNKNOWN: 0;
20
+ readonly MARKETING_SUB_GOAL_NEW_GAME_RESERVE: 1;
21
+ readonly MARKETING_SUB_GOAL_NEW_GAME_TEST: 2;
22
+ readonly MARKETING_SUB_GOAL_NEW_GAME_LAUNCH: 3;
23
+ readonly MARKETING_SUB_GOAL_PLATEAU_PHASE_LAUNCH: 4;
24
+ readonly MARKETING_SUB_GOAL_MINI_GAME_NEW_CUSTOMER_GROWTH: 5;
25
+ readonly MARKETING_SUB_GOAL_MINI_GAME_RETURN_CUSTOMER_ENGAGEMENT: 6;
26
+ readonly MARKETING_SUB_GOAL_APP_ACQUISITION: 7;
27
+ readonly MARKETING_SUB_GOAL_APP_ACTIVATION: 8;
28
+ readonly MARKETING_SUB_GOAL_NOT_INSTALL_USER: 9;
29
+ readonly MARKETING_SUB_GOAL_PRE_INSTALL_USER: 10;
30
+ readonly MARKETING_SUB_GOAL_UNLOADED_USER: 11;
31
+ readonly MARKETING_SUB_GOAL_SHORT_INACTIVE_USER: 12;
32
+ readonly MARKETING_SUB_GOAL_LONG_INACTIVE_USER: 13;
33
+ readonly MARKETING_SUB_GOAL_GAME_VERSION_UPGRADE: 14;
34
+ readonly MARKETING_SUB_GOAL_NEW_STORE_OPENING: 15;
35
+ readonly MARKETING_SUB_GOAL_EVENING_PROMOTION: 16;
36
+ readonly MARKETING_SUB_GOAL_SPECIAL_RELEASE: 17;
37
+ };
38
+ export declare const MARKETING_CARRIER_TYPE: {
39
+ readonly MARKETING_CARRIER_TYPE_UNKNOWN: 0;
40
+ readonly MARKETING_CARRIER_TYPE_APP_ANDROID: 1;
41
+ readonly MARKETING_CARRIER_TYPE_APP_IOS: 2;
42
+ readonly MARKETING_CARRIER_TYPE_WECHAT_OFFICIAL_ACCOUNT: 3;
43
+ readonly MARKETING_CARRIER_TYPE_JUMP_PAGE: 4;
44
+ readonly MARKETING_CARRIER_TYPE_WECHAT_MINI_GAME: 5;
45
+ readonly MARKETING_CARRIER_TYPE_WECHAT_CHANNELS_LIVE: 6;
46
+ readonly MARKETING_CARRIER_TYPE_WECHAT_CHANNELS: 7;
47
+ readonly MARKETING_CARRIER_TYPE_WECHAT_CHANNELS_LIVE_RESERVATION: 8;
48
+ readonly MARKETING_CARRIER_TYPE_MINI_PROGRAM_WECHAT: 9;
49
+ readonly MARKETING_CARRIER_TYPE_APP_QUICK_APP: 10;
50
+ readonly MARKETING_CARRIER_TYPE_PC_GAME: 13;
51
+ readonly MARKETING_CARRIER_TYPE_QQ_MINI_GAME: 14;
52
+ readonly MARKETING_CARRIER_TYPE_APP_HARMONY: 55;
53
+ };
54
+ export declare const MARKETING_TARGET_TYPE: {
55
+ readonly MARKETING_TARGET_TYPE_UNKNOWN: 0;
56
+ readonly MARKETING_TARGET_TYPE_APP_ANDROID: 1;
57
+ readonly MARKETING_TARGET_TYPE_APP_IOS: 2;
58
+ readonly MARKETING_TARGET_TYPE_WECHAT_OFFICIAL_ACCOUNT: 3;
59
+ readonly MARKETING_TARGET_TYPE_PRODUCT: 4;
60
+ readonly MARKETING_TARGET_TYPE_TRAFFIC: 5;
61
+ readonly MARKETING_TARGET_TYPE_LOCAL_STORE: 7;
62
+ readonly MARKETING_TARGET_TYPE_WECHAT_MINI_GAME: 8;
63
+ readonly MARKETING_TARGET_TYPE_CONSUMER_PRODUCT: 9;
64
+ readonly MARKETING_TARGET_TYPE_WECHAT_CHANNELS: 10;
65
+ readonly MARKETING_TARGET_TYPE_WECHAT_CHANNELS_LIVE: 11;
66
+ readonly MARKETING_TARGET_TYPE_WECHAT_CHANNELS_LIVE_RESERVATION: 12;
67
+ readonly MARKETING_TARGET_TYPE_MINI_PROGRAM_WECHAT: 13;
68
+ readonly MARKETING_TARGET_TYPE_APP_QUICK_APP: 14;
69
+ readonly MARKETING_TARGET_TYPE_CONSUME_MEDICAL: 15;
70
+ readonly MARKETING_TARGET_TYPE_COMPREHENSIVE_HOUSEKEEPING: 16;
71
+ readonly MARKETING_TARGET_TYPE_FICTION: 19;
72
+ readonly MARKETING_TARGET_TYPE_SHORT_DRAMA: 20;
73
+ readonly MARKETING_TARGET_TYPE_AUDIOVISUAL_ENTERTAINMENT: 21;
74
+ readonly MARKETING_TARGET_TYPE_BEAUTY_AND_PERSONAL_CARE: 22;
75
+ readonly MARKETING_TARGET_TYPE_WEDDING_AND_PORTRAIT_PHOTOGRAPHY: 23;
76
+ readonly MARKETING_TARGET_TYPE_FRANCHISE_BRAND: 24;
77
+ readonly MARKETING_TARGET_TYPE_ENTERPRISE_SERVICES: 25;
78
+ readonly MARKETING_TARGET_TYPE_EXHIBITION_BOOTH_DESIGN: 26;
79
+ readonly MARKETING_TARGET_TYPE_INSURANCE: 27;
80
+ readonly MARKETING_TARGET_TYPE_BANK: 28;
81
+ readonly MARKETING_TARGET_TYPE_CREDIT: 29;
82
+ readonly MARKETING_TARGET_TYPE_INVESTMENT_CONSULTING: 30;
83
+ readonly MARKETING_TARGET_TYPE_REAL_ESTATE: 31;
84
+ readonly MARKETING_TARGET_TYPE_TELECOMMUNICATIONS_OPERATOR: 32;
85
+ readonly MARKETING_TARGET_TYPE_TOURIST_ATTRACTIONS_TICKETS: 33;
86
+ readonly MARKETING_TARGET_TYPE_RENOVATION_SERVICES: 34;
87
+ readonly MARKETING_TARGET_TYPE_FURNITURE_AND_BUILDING_MATERIALS: 35;
88
+ readonly MARKETING_TARGET_TYPE_EXHIBITION_SALES: 36;
89
+ readonly MARKETING_TARGET_TYPE_MEDICINE_INDUSTRY_COMMERCIAL: 37;
90
+ readonly MARKETING_TARGET_TYPE_FINANCE: 38;
91
+ readonly MARKETING_TARGET_TYPE_LOCAL_STORE_PACKAGE: 39;
92
+ readonly MARKETING_TARGET_TYPE_CATERING_AND_LEISURE: 40;
93
+ readonly MARKETING_TARGET_TYPE_CHAIN_RESTAURANT: 41;
94
+ readonly MARKETING_TARGET_TYPE_COMMODITY_SET: 42;
95
+ readonly MARKETING_TARGET_TYPE_TOURIST_TRAVEL_ROUTE: 43;
96
+ readonly MARKETING_TARGET_TYPE_TOURIST_CRUISE_LINE: 44;
97
+ readonly MARKETING_TARGET_TYPE_TOURIST_HOTEL_SERVICE: 45;
98
+ readonly MARKETING_TARGET_TYPE_TOURIST_AIRLINE_TICKETS: 46;
99
+ readonly MARKETING_TARGET_TYPE_LOCAL_STORE_COMBINE_WITH_PRODUCT: 47;
100
+ readonly MARKETING_TARGET_TYPE_ACTIVITY: 48;
101
+ readonly MARKETING_TARGET_TYPE_STORE: 49;
102
+ readonly MARKETING_TARGET_TYPE_MINI_GAME_QQ: 50;
103
+ readonly MARKETING_TARGET_TYPE_PC_GAME: 53;
104
+ readonly MARKETING_TARGET_TYPE_WECHAT_WORK: 54;
105
+ readonly MARKETING_TARGET_TYPE_LIVE_STREAM_ROOM: 55;
106
+ readonly MARKETING_TARGET_TYPE_PERSONAL_STORE: 56;
107
+ readonly MARKETING_TARGET_TYPE_PLATFORM_CHANNEL: 57;
108
+ readonly MARKETING_TARGET_TYPE_TWO_WHEEL_VEHICLE: 58;
109
+ readonly MARKETING_TARGET_TYPE_GOVERNMENT_AFFAIRS: 59;
110
+ readonly MARKETING_TARGET_TYPE_CAR_ECOLOGY: 60;
111
+ readonly MARKETING_TARGET_TYPE_WECHAT_STORE_PRODUCT: 61;
112
+ readonly MARKETING_TARGET_TYPE_APP_HARMONY: 62;
113
+ readonly MARKETING_TARGET_TYPE_WECHAT_STORE_PRODUCT_SET: 63;
114
+ readonly MARKETING_TARGET_TYPE_PRODUCT_AGGREGATION_PAGE: 64;
115
+ readonly MARKETING_TARGET_TYPE_WECHAT_STORE: 65;
116
+ readonly MARKETING_TARGET_TYPE_RESALE_AND_COMMERCIAL_LAND: 66;
117
+ readonly MARKETING_TARGET_TYPE_VIDEO_PROGRAM: 67;
118
+ };
119
+ export declare const SITE_SET: {
120
+ readonly SITE_SET_QZONE: 1;
121
+ readonly SITE_SET_QQCLIENT: 9;
122
+ readonly SITE_SET_MUSIC: 14;
123
+ readonly SITE_SET_MOBILE_UNION: 15;
124
+ readonly SITE_SET_KUAISHOU: 103;
125
+ readonly SITE_SET_QQCOM: 19;
126
+ readonly SITE_SET_WECHAT: 21;
127
+ readonly SITE_SET_MOBILE_MYAPP: 22;
128
+ readonly SITE_SET_MOBILE_INNER: 25;
129
+ readonly SITE_SET_TENCENT_NEWS: 27;
130
+ readonly SITE_SET_TENCENT_VIDEO: 28;
131
+ readonly SITE_SET_TENCENT_KUAIBAO: 29;
132
+ readonly SITE_SET_MOBILE_YYB: 31;
133
+ readonly SITE_SET_PCQQ: 104;
134
+ readonly SITE_SET_KANDIAN: 100;
135
+ readonly SITE_SET_QQ_MUSIC_GAME: 101;
136
+ readonly SITE_SET_MOMENTS: 102;
137
+ readonly SITE_SET_MINI_GAME_WECHAT: 106;
138
+ readonly SITE_SET_MINI_GAME_QQ: 107;
139
+ readonly SITE_SET_MOBILE_GAME: 108;
140
+ readonly SITE_SET_QQSHOPPING: 109;
141
+ readonly SITE_SET_TENCENT_VIDEO_OTT: 110;
142
+ readonly SITE_SET_CHANNELS: 113;
143
+ readonly SITE_SET_OVERSEAS_UNION: 114;
144
+ readonly SITE_SET_WECHAT_SEARCH: 115;
145
+ readonly SITE_SET_WECHAT_PLUGIN: 116;
146
+ readonly SITE_SET_FREETRADE: 117;
147
+ readonly SITE_SET_QBSEARCH: 118;
148
+ readonly SITE_SET_FREETRADE_FINDER: 119;
149
+ readonly SITE_SET_BROWSER_MOBILE: 120;
150
+ readonly SITE_SET_BROWSER_PC: 121;
151
+ readonly SITE_SET_SEARCH_SCENE: 122;
152
+ readonly SITE_SET_CHANNELS_CONTENT_PROMOTION: 128;
153
+ readonly SITE_SET_FREETRADE_WEAPP: 127;
154
+ readonly SITE_SET_TENCENT_AD_NETWORK_OVERSEA: 130;
155
+ readonly SITE_SET_YUNXUAN: 134;
156
+ readonly SITE_SET_SEARCH_MOBILE_UNION: 136;
157
+ readonly SITE_SET_EXPAND: 9999;
158
+ readonly SITE_SET_SMART: 9998;
159
+ };
160
+ export declare const SMART_DELIVERY_PLATFORM: {
161
+ readonly SMART_DELIVERY_PLATFORM_EDITION_STANDARD: 0;
162
+ readonly SMART_DELIVERY_PLATFORM_EDITION_ECOLOGY_PLAYLET: 1001;
163
+ readonly SMART_DELIVERY_PLATFORM_EDITION_ECOLOGY_LEADS: 1002;
164
+ readonly SMART_DELIVERY_PLATFORM_EDITION_MINI_GAME_PROMOTION: 1003;
165
+ readonly SMART_DELIVERY_PLATFORM_EDITION_ECOLOGY_LEADS_LINK_PREFERENCE: 1004;
166
+ readonly SMART_DELIVERY_PLATFORM_EDITION_BIG_GAME_PROMOTION: 1012;
167
+ readonly SMART_DELIVERY_PLATFORM_EDITION_MINI_GAME_MIXED_MONETIZATION: 1013;
168
+ readonly SMART_DELIVERY_PLATFORM_EDITION_PERIODIC_STABILIZATION: 1015;
169
+ readonly SMART_DELIVERY_PLATFORM_EDITION_MULTI_OPTIMIZATION: 1016;
170
+ readonly SMART_DELIVERY_PLATFORM_EDITION_DRUG_PRODUCT: 1018;
171
+ readonly SMART_DELIVERY_PLATFORM_EDITION_FICTION: 1019;
172
+ readonly SMART_DELIVERY_PLATFORM_EDITION_WECHAT_MINI_GAME_LONG_TERM_ROI: 2011;
173
+ readonly SMART_DELIVERY_PLATFORM_EDITION_WECHAT_MINI_GAME_MONETIZATION: 2014;
174
+ readonly SMART_DELIVERY_PLATFORM_EDITION_WECHAT_STORE_SINGLE_PRODUCT: 3001;
175
+ readonly SMART_DELIVERY_PLATFORM_EDITION_WECHAT_STORE_PRODUCT_OR_LIVE: 3002;
176
+ readonly SMART_DELIVERY_PLATFORM_EDITION_WECHAT_STORE_MANAGEMENT: 3003;
177
+ readonly SMART_DELIVERY_PLATFORM_EDITION_WECHAT_STORE_LIVE: 3004;
178
+ readonly SMART_DELIVERY_PLATFORM_EDITION_WECHAT_STORE_PRODUCT: 3005;
179
+ readonly SMART_DELIVERY_PLATFORM_EDITION_QYT_LIVE: 4001;
180
+ readonly SMART_DELIVERY_PLATFORM_EDITION_QYT_WECHAT_STORE: 4002;
181
+ readonly SMART_DELIVERY_PLATFORM_EDITION_QYT_STORE_PAGE: 4003;
182
+ readonly SMART_DELIVERY_PLATFORM_EDITION_CPS_MANUAL: 5001;
183
+ readonly SMART_DELIVERY_PLATFORM_EDITION_CPS_INTELLIGENT: 5002;
184
+ readonly SMART_DELIVERY_PLATFORM_EDITION_GAME_APP: 6001;
185
+ readonly SMART_DELIVERY_PLATFORM_EDITION_READING_APP: 6002;
186
+ };
187
+ export declare const SMART_BID_TYPE: {
188
+ readonly SMART_BID_TYPE_CUSTOM: 0;
189
+ readonly SMART_BID_TYPE_SYSTEMATIC: 1;
190
+ };
191
+ export declare const EXPLORATION_STRATEGY: {
192
+ readonly EXPLORATION_UNKNOW: 0;
193
+ readonly AUTOMATIC_EXPLORATION: 1;
194
+ readonly STEADY_EXPLORATION: 2;
195
+ };
196
+ export declare const AUTO_DERIVED_CREATIVE_METHOD_TYPE: {
197
+ readonly AUTO_DERIVED_CREATIVE_METHOD_TYPE_UNKNOWN: 0;
198
+ readonly AUTO_DERIVED_CREATIVE_METHOD_TYPE_TEMPLATE: 1;
199
+ readonly AUTO_DERIVED_CREATIVE_METHOD_TYPE_OUTPAINTING: 2;
200
+ readonly AUTO_DERIVED_CREATIVE_METHOD_TYPE_MINI_IMAGE: 3;
201
+ readonly AUTO_DERIVED_CREATIVE_METHOD_TYPE_MIX_CUT: 4;
202
+ readonly AUTO_DERIVED_CREATIVE_METHOD_TYPE_NOVEL_DRAMA_IMAGE: 5;
203
+ readonly AUTO_DERIVED_CREATIVE_METHOD_TYPE_DRAMA_MIX_CUT: 6;
204
+ readonly AUTO_DERIVED_CREATIVE_METHOD_TYPE_DRAMA_TRANSFORM: 7;
205
+ readonly AUTO_DERIVED_CREATIVE_METHOD_TYPE_CONTEXT: 8;
206
+ readonly AUTO_DERIVED_CREATIVE_METHOD_TYPE_HOME_IMAGE: 9;
207
+ readonly AUTO_DERIVED_CREATIVE_METHOD_TYPE_SMARTGAME_IMG_BG: 10;
208
+ readonly AUTO_DERIVED_CREATIVE_METHOD_TYPE_SMARTGAME_NINE_IMG: 11;
209
+ readonly AUTO_DERIVED_CREATIVE_METHOD_TYPE_MINIDRAMA_NINE_IMG: 12;
210
+ };
211
+ export declare const CONFIGURED_STATUS: {
212
+ readonly AD_STATUS_NORMAL: 1;
213
+ readonly AD_STATUS_SUSPEND: 10;
214
+ };
215
+ /**
216
+ * 将枚举字符串 key 解析为数值 value。
217
+ *
218
+ * - 如果传入的已经是数字(number 或纯数字字符串),直接返回该数值
219
+ * - 如果传入的是字符串 key,按 enumName 查找对应数值
220
+ * - 查不到时抛出 Error
221
+ *
222
+ * @param enumName 枚举类型名,如 "marketing_goal"、"marketing_carrier_type"
223
+ * @param keyOrValue 字符串 key(如 "MARKETING_GOAL_USER_GROWTH")或数值
224
+ * @returns 对应的数值 value
225
+ *
226
+ * @example
227
+ * resolveEnum("marketing_goal", "MARKETING_GOAL_USER_GROWTH") // → 1
228
+ * resolveEnum("marketing_goal", 1) // → 1
229
+ * resolveEnum("marketing_goal", "1") // → 1
230
+ */
231
+ export declare function resolveEnum(enumName: string, keyOrValue: string | number): number;
232
+ /**
233
+ * 将数值 value 解析为枚举字符串 key。
234
+ *
235
+ * @param enumName 枚举类型名
236
+ * @param value 数值
237
+ * @returns 对应的字符串 key,找不到时返回 undefined
238
+ *
239
+ * @example
240
+ * resolveEnumKey("marketing_goal", 1) // → "MARKETING_GOAL_USER_GROWTH"
241
+ */
242
+ export declare function resolveEnumKey(enumName: string, value: number): string | undefined;
243
+ /**
244
+ * 根据 marketing_carrier_type 和 delivery_scene 推导 product_type。
245
+ *
246
+ * 映射规则(来源:tencent-ads-conversions/SKILL.md):
247
+ *
248
+ * | marketing_carrier_type | product_type | 条件 |
249
+ * |---------------------------------|-------------|------|
250
+ * | WECHAT_CHANNELS_LIVE (6) | 51 | |
251
+ * | WECHAT_CHANNELS (7) | 51 | |
252
+ * | WECHAT_CHANNELS_LIVE_RESERVATION (8) | 51 | |
253
+ * | JUMP_PAGE (4) + 小店场景 | 30 | delivery_scene 属于小店场景 或 marketing_target_type 属于小店 |
254
+ * | JUMP_PAGE (4) + 非小店场景 | 43 | |
255
+ * | WECHAT_MINI_GAME (5) | 46 | |
256
+ * | APP_ANDROID (1) | 12 | |
257
+ * | APP_IOS (2) | 19 | |
258
+ * | WECHAT_OFFICIAL_ACCOUNT (3) | 23 | |
259
+ * | MINI_PROGRAM_WECHAT (9) | 52 | |
260
+ * | APP_QUICK_APP (10) | 53 | |
261
+ * | APP_HARMONY (55) | 55 | |
262
+ *
263
+ * @param carrierType marketing_carrier_type 的字符串 key 或数值
264
+ * @param deliveryScene delivery_scene 数值(用于区分 JUMP_PAGE 的小店/非小店)
265
+ * @param marketingTargetType 可选,marketing_target_type 的字符串 key 或数值(辅助 JUMP_PAGE 判断)
266
+ * @returns product_type 数值,无法推导时返回 null
267
+ */
268
+ export declare function deriveProductType(carrierType: string | number, deliveryScene?: number, marketingTargetType?: string | number): number | null;
269
+ /**
270
+ * 根据 marketing_carrier_type 推导 live_video_mode 和 live_video_sub_mode。
271
+ *
272
+ * 规则:
273
+ * - WECHAT_CHANNELS_LIVE (6): live_video_mode=2, live_video_sub_mode=1(直播)
274
+ * - WECHAT_CHANNELS_LIVE_RESERVATION (8): live_video_mode=2, live_video_sub_mode=2(直播预约)
275
+ * - WECHAT_CHANNELS (7): live_video_mode=1, live_video_sub_mode=0(视频号动态)
276
+ * - 其他: 不需要,返回 null
277
+ *
278
+ * @param carrierType marketing_carrier_type 的字符串 key 或数值
279
+ * @returns { live_video_mode, live_video_sub_mode } 或 null(不需要设置)
280
+ */
281
+ export declare function deriveLiveVideoMode(carrierType: string | number): {
282
+ live_video_mode: number;
283
+ live_video_sub_mode: number;
284
+ } | null;
285
+ /**
286
+ * 判断给定的 marketing_carrier_type 是否需要 live_video_mode/live_video_sub_mode 参数。
287
+ */
288
+ export declare function needsLiveVideoMode(carrierType: string | number): boolean;
289
+ /**
290
+ * 批量将对象中的枚举字段从字符串 key 解析为数值 value。
291
+ * 字段不存在或为 null/undefined 时跳过。
292
+ *
293
+ * @param obj 待转换的对象
294
+ * @param fields 需要转换的字段配置,key 为对象字段名,value 为枚举类型名
295
+ * @returns 新对象,已转换的字段为数值
296
+ *
297
+ * @example
298
+ * resolveEnumFields(
299
+ * { marketing_goal: "MARKETING_GOAL_USER_GROWTH", marketing_sub_goal: "MARKETING_SUB_GOAL_UNKNOWN" },
300
+ * { marketing_goal: "marketing_goal", marketing_sub_goal: "marketing_sub_goal" }
301
+ * )
302
+ * // → { marketing_goal: 1, marketing_sub_goal: 0 }
303
+ */
304
+ export declare function resolveEnumFields(obj: Record<string, unknown>, fields: Record<string, string>): Record<string, unknown>;
305
+ /**
306
+ * 对 targeting 对象中的枚举定向字段进行自动匹配和展开。
307
+ *
308
+ * Agent 只需传简化的自然语言描述,本函数自动匹配为 API 所需的枚举值。
309
+ * 支持的定向维度:user_os、excluded_os、network_type、education、device_price。
310
+ *
311
+ * 就地修改传入的 targeting 对象。
312
+ *
313
+ * @example
314
+ * const targeting = { user_os: ["ANDROID_10+"], network_type: ["4G", "5G"], education: ["本科"] };
315
+ * resolveTargetingFields(targeting);
316
+ * // targeting.user_os → ["ANDROID_VERSION_10", ..., "ANDROID_VERSION_15"]
317
+ * // targeting.network_type → ["NET_4G", "NET_5G"]
318
+ * // targeting.education → ["BACHELOR"]
319
+ */
320
+ export declare function resolveTargetingFields(targeting: Record<string, unknown>): void;
321
+ /**
322
+ * 解析 auto_derived_creative_preference 中的枚举字段。
323
+ * 支持中文描述自动匹配为 API 枚举 key,也兼容直接传枚举 key。
324
+ */
325
+ export declare function resolveAutoDerivedCreativePreference(pref: Record<string, unknown>): void;
326
+ /** 将 site_set 数组中的别名统一纠正为标准枚举 */
327
+ export declare function resolveSiteSetAliases(siteSet: string[]): string[];
328
+ /** 将 exploration_strategy 的中文/别名解析为标准枚举 key,并校验合法性 */
329
+ export declare function resolveExplorationStrategy(value: string): string;
package/dist/enums.js ADDED
@@ -0,0 +1 @@
1
+ const _0x35ca59=_0x261b;(function(_0x5805ab,_0x4f51c5){const _0x3ebc83=_0x261b,_0x573073=_0x5805ab();while(!![]){try{const _0x1da95b=parseInt(_0x3ebc83(0x1d1))/0x1*(-parseInt(_0x3ebc83(0x1c0))/0x2)+parseInt(_0x3ebc83(0x2aa))/0x3+parseInt(_0x3ebc83(0x28e))/0x4+-parseInt(_0x3ebc83(0x2c7))/0x5+parseInt(_0x3ebc83(0x270))/0x6*(-parseInt(_0x3ebc83(0x1e0))/0x7)+-parseInt(_0x3ebc83(0x1b5))/0x8*(parseInt(_0x3ebc83(0x207))/0x9)+parseInt(_0x3ebc83(0x1e9))/0xa;if(_0x1da95b===_0x4f51c5)break;else _0x573073['push'](_0x573073['shift']());}catch(_0xbdae0b){_0x573073['push'](_0x573073['shift']());}}}(_0x475d,0xcc717));const _0x3c8d1b={};_0x3c8d1b[_0x35ca59(0x232)]=0x0,_0x3c8d1b[_0x35ca59(0x2ac)]=0x1,_0x3c8d1b[_0x35ca59(0x1e2)]=0x2,_0x3c8d1b[_0x35ca59(0x231)]=0x3,_0x3c8d1b[_0x35ca59(0x243)]=0x4,_0x3c8d1b[_0x35ca59(0x1a1)]=0x5;export const MARKETING_GOAL=_0x3c8d1b;const _0x2ecc62={};_0x2ecc62[_0x35ca59(0x266)]=0x0,_0x2ecc62[_0x35ca59(0x216)]=0x1,_0x2ecc62[_0x35ca59(0x289)]=0x2,_0x2ecc62[_0x35ca59(0x276)]=0x3,_0x2ecc62[_0x35ca59(0x24d)]=0x4,_0x2ecc62[_0x35ca59(0x1a2)]=0x5,_0x2ecc62[_0x35ca59(0x22b)]=0x6,_0x2ecc62[_0x35ca59(0x23b)]=0x7,_0x2ecc62[_0x35ca59(0x1ce)]=0x8,_0x2ecc62[_0x35ca59(0x217)]=0x9,_0x2ecc62['MARKETING_SUB_GOAL_PRE_INSTALL_USER']=0xa,_0x2ecc62[_0x35ca59(0x2b3)]=0xb,_0x2ecc62['MARKETING_SUB_GOAL_SHORT_INACTIVE_USER']=0xc,_0x2ecc62[_0x35ca59(0x1be)]=0xd,_0x2ecc62[_0x35ca59(0x1fe)]=0xe,_0x2ecc62[_0x35ca59(0x2a0)]=0xf,_0x2ecc62[_0x35ca59(0x241)]=0x10,_0x2ecc62[_0x35ca59(0x1ec)]=0x11;export const MARKETING_SUB_GOAL=_0x2ecc62;const _0x544977={};_0x544977[_0x35ca59(0x2a3)]=0x0,_0x544977['MARKETING_CARRIER_TYPE_APP_ANDROID']=0x1,_0x544977['MARKETING_CARRIER_TYPE_APP_IOS']=0x2,_0x544977[_0x35ca59(0x1d2)]=0x3,_0x544977['MARKETING_CARRIER_TYPE_JUMP_PAGE']=0x4,_0x544977['MARKETING_CARRIER_TYPE_WECHAT_MINI_GAME']=0x5,_0x544977['MARKETING_CARRIER_TYPE_WECHAT_CHANNELS_LIVE']=0x6,_0x544977[_0x35ca59(0x27a)]=0x7,_0x544977['MARKETING_CARRIER_TYPE_WECHAT_CHANNELS_LIVE_RESERVATION']=0x8,_0x544977['MARKETING_CARRIER_TYPE_MINI_PROGRAM_WECHAT']=0x9,_0x544977['MARKETING_CARRIER_TYPE_APP_QUICK_APP']=0xa,_0x544977[_0x35ca59(0x1f1)]=0xd,_0x544977[_0x35ca59(0x246)]=0xe,_0x544977[_0x35ca59(0x1a6)]=0x37;export const MARKETING_CARRIER_TYPE=_0x544977;const _0x161203={};function _0x261b(_0x31b4c8,_0x175b2b){_0x31b4c8=_0x31b4c8-0x1a1;const _0x475d22=_0x475d();let _0x261b99=_0x475d22[_0x31b4c8];if(_0x261b['IEqPEH']===undefined){var _0x420788=function(_0xe90841){const _0x457962='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3c8d1b='',_0x2ecc62='';for(let _0x544977=0x0,_0x161203,_0x4f7d78,_0x339f92=0x0;_0x4f7d78=_0xe90841['charAt'](_0x339f92++);~_0x4f7d78&&(_0x161203=_0x544977%0x4?_0x161203*0x40+_0x4f7d78:_0x4f7d78,_0x544977++%0x4)?_0x3c8d1b+=String['fromCharCode'](0xff&_0x161203>>(-0x2*_0x544977&0x6)):0x0){_0x4f7d78=_0x457962['indexOf'](_0x4f7d78);}for(let _0x137be7=0x0,_0x40cd53=_0x3c8d1b['length'];_0x137be7<_0x40cd53;_0x137be7++){_0x2ecc62+='%'+('00'+_0x3c8d1b['charCodeAt'](_0x137be7)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2ecc62);};_0x261b['VOJuGv']=_0x420788,_0x261b['Tpmpqx']={},_0x261b['IEqPEH']=!![];}const _0x104555=_0x475d22[0x0],_0xb2cfe0=_0x31b4c8+_0x104555,_0x2da281=_0x261b['Tpmpqx'][_0xb2cfe0];return!_0x2da281?(_0x261b99=_0x261b['VOJuGv'](_0x261b99),_0x261b['Tpmpqx'][_0xb2cfe0]=_0x261b99):_0x261b99=_0x2da281,_0x261b99;}_0x161203['MARKETING_TARGET_TYPE_UNKNOWN']=0x0,_0x161203[_0x35ca59(0x1a7)]=0x1,_0x161203[_0x35ca59(0x211)]=0x2,_0x161203[_0x35ca59(0x251)]=0x3,_0x161203[_0x35ca59(0x2b8)]=0x4,_0x161203[_0x35ca59(0x280)]=0x5,_0x161203['MARKETING_TARGET_TYPE_LOCAL_STORE']=0x7,_0x161203[_0x35ca59(0x1d4)]=0x8,_0x161203[_0x35ca59(0x283)]=0x9,_0x161203[_0x35ca59(0x247)]=0xa,_0x161203[_0x35ca59(0x227)]=0xb,_0x161203['MARKETING_TARGET_TYPE_WECHAT_CHANNELS_LIVE_RESERVATION']=0xc,_0x161203[_0x35ca59(0x212)]=0xd,_0x161203[_0x35ca59(0x222)]=0xe,_0x161203[_0x35ca59(0x1e5)]=0xf,_0x161203['MARKETING_TARGET_TYPE_COMPREHENSIVE_HOUSEKEEPING']=0x10,_0x161203[_0x35ca59(0x23e)]=0x13,_0x161203[_0x35ca59(0x1f5)]=0x14,_0x161203[_0x35ca59(0x2bb)]=0x15,_0x161203[_0x35ca59(0x273)]=0x16,_0x161203[_0x35ca59(0x2b0)]=0x17,_0x161203[_0x35ca59(0x1d3)]=0x18,_0x161203[_0x35ca59(0x23f)]=0x19,_0x161203['MARKETING_TARGET_TYPE_EXHIBITION_BOOTH_DESIGN']=0x1a,_0x161203[_0x35ca59(0x2a8)]=0x1b,_0x161203['MARKETING_TARGET_TYPE_BANK']=0x1c,_0x161203['MARKETING_TARGET_TYPE_CREDIT']=0x1d,_0x161203[_0x35ca59(0x228)]=0x1e,_0x161203[_0x35ca59(0x27e)]=0x1f,_0x161203[_0x35ca59(0x236)]=0x20,_0x161203[_0x35ca59(0x223)]=0x21,_0x161203[_0x35ca59(0x1d6)]=0x22,_0x161203['MARKETING_TARGET_TYPE_FURNITURE_AND_BUILDING_MATERIALS']=0x23,_0x161203[_0x35ca59(0x20d)]=0x24,_0x161203['MARKETING_TARGET_TYPE_MEDICINE_INDUSTRY_COMMERCIAL']=0x25,_0x161203[_0x35ca59(0x2a2)]=0x26,_0x161203[_0x35ca59(0x24c)]=0x27,_0x161203['MARKETING_TARGET_TYPE_CATERING_AND_LEISURE']=0x28,_0x161203[_0x35ca59(0x248)]=0x29,_0x161203[_0x35ca59(0x285)]=0x2a,_0x161203[_0x35ca59(0x2c8)]=0x2b,_0x161203[_0x35ca59(0x20f)]=0x2c,_0x161203[_0x35ca59(0x1eb)]=0x2d,_0x161203[_0x35ca59(0x1f3)]=0x2e,_0x161203['MARKETING_TARGET_TYPE_LOCAL_STORE_COMBINE_WITH_PRODUCT']=0x2f,_0x161203[_0x35ca59(0x27b)]=0x30,_0x161203[_0x35ca59(0x20c)]=0x31,_0x161203[_0x35ca59(0x21e)]=0x32,_0x161203['MARKETING_TARGET_TYPE_PC_GAME']=0x35,_0x161203[_0x35ca59(0x269)]=0x36,_0x161203[_0x35ca59(0x1b9)]=0x37,_0x161203[_0x35ca59(0x2c9)]=0x38,_0x161203[_0x35ca59(0x29c)]=0x39,_0x161203[_0x35ca59(0x1ca)]=0x3a,_0x161203[_0x35ca59(0x2ba)]=0x3b,_0x161203[_0x35ca59(0x1c8)]=0x3c,_0x161203[_0x35ca59(0x1df)]=0x3d,_0x161203[_0x35ca59(0x1b1)]=0x3e,_0x161203[_0x35ca59(0x25f)]=0x3f,_0x161203['MARKETING_TARGET_TYPE_PRODUCT_AGGREGATION_PAGE']=0x40,_0x161203[_0x35ca59(0x244)]=0x41,_0x161203[_0x35ca59(0x24b)]=0x42,_0x161203[_0x35ca59(0x202)]=0x43;export const MARKETING_TARGET_TYPE=_0x161203;const _0x4f7d78={};_0x4f7d78[_0x35ca59(0x2c2)]=0x1,_0x4f7d78[_0x35ca59(0x260)]=0x9,_0x4f7d78[_0x35ca59(0x265)]=0xe,_0x4f7d78[_0x35ca59(0x2a6)]=0xf,_0x4f7d78['SITE_SET_KUAISHOU']=0x67,_0x4f7d78[_0x35ca59(0x1cc)]=0x13,_0x4f7d78['SITE_SET_WECHAT']=0x15,_0x4f7d78[_0x35ca59(0x29d)]=0x16,_0x4f7d78[_0x35ca59(0x1ac)]=0x19,_0x4f7d78['SITE_SET_TENCENT_NEWS']=0x1b,_0x4f7d78[_0x35ca59(0x1bd)]=0x1c,_0x4f7d78[_0x35ca59(0x1ab)]=0x1d,_0x4f7d78[_0x35ca59(0x258)]=0x1f,_0x4f7d78[_0x35ca59(0x1e3)]=0x68,_0x4f7d78[_0x35ca59(0x272)]=0x64,_0x4f7d78['SITE_SET_QQ_MUSIC_GAME']=0x65,_0x4f7d78[_0x35ca59(0x1b0)]=0x66,_0x4f7d78[_0x35ca59(0x1e6)]=0x6a,_0x4f7d78[_0x35ca59(0x24a)]=0x6b,_0x4f7d78['SITE_SET_MOBILE_GAME']=0x6c,_0x4f7d78[_0x35ca59(0x2ca)]=0x6d,_0x4f7d78[_0x35ca59(0x2ad)]=0x6e,_0x4f7d78[_0x35ca59(0x1b7)]=0x71,_0x4f7d78[_0x35ca59(0x1bf)]=0x72,_0x4f7d78[_0x35ca59(0x1e7)]=0x73,_0x4f7d78[_0x35ca59(0x249)]=0x74,_0x4f7d78['SITE_SET_FREETRADE']=0x75,_0x4f7d78['SITE_SET_QBSEARCH']=0x76,_0x4f7d78[_0x35ca59(0x21a)]=0x77,_0x4f7d78[_0x35ca59(0x262)]=0x78,_0x4f7d78[_0x35ca59(0x24f)]=0x79,_0x4f7d78[_0x35ca59(0x263)]=0x7a,_0x4f7d78[_0x35ca59(0x1f8)]=0x80,_0x4f7d78[_0x35ca59(0x1d9)]=0x7f,_0x4f7d78[_0x35ca59(0x292)]=0x82,_0x4f7d78[_0x35ca59(0x21d)]=0x86,_0x4f7d78[_0x35ca59(0x1db)]=0x88,_0x4f7d78[_0x35ca59(0x2cc)]=0x270f,_0x4f7d78[_0x35ca59(0x1fb)]=0x270e;export const SITE_SET=_0x4f7d78;const _0x339f92={};_0x339f92[_0x35ca59(0x261)]=0x0,_0x339f92[_0x35ca59(0x29a)]=0x3e9,_0x339f92['SMART_DELIVERY_PLATFORM_EDITION_ECOLOGY_LEADS']=0x3ea,_0x339f92[_0x35ca59(0x224)]=0x3eb,_0x339f92['SMART_DELIVERY_PLATFORM_EDITION_ECOLOGY_LEADS_LINK_PREFERENCE']=0x3ec,_0x339f92[_0x35ca59(0x2cb)]=0x3f4,_0x339f92[_0x35ca59(0x27c)]=0x3f5,_0x339f92[_0x35ca59(0x2b2)]=0x3f7,_0x339f92['SMART_DELIVERY_PLATFORM_EDITION_MULTI_OPTIMIZATION']=0x3f8,_0x339f92[_0x35ca59(0x1ea)]=0x3fa,_0x339f92[_0x35ca59(0x2c5)]=0x3fb,_0x339f92[_0x35ca59(0x1ee)]=0x7db,_0x339f92[_0x35ca59(0x1b6)]=0x7de,_0x339f92[_0x35ca59(0x1b3)]=0xbb9,_0x339f92[_0x35ca59(0x1f9)]=0xbba,_0x339f92[_0x35ca59(0x28d)]=0xbbb,_0x339f92[_0x35ca59(0x264)]=0xbbc,_0x339f92['SMART_DELIVERY_PLATFORM_EDITION_WECHAT_STORE_PRODUCT']=0xbbd,_0x339f92['SMART_DELIVERY_PLATFORM_EDITION_QYT_LIVE']=0xfa1,_0x339f92[_0x35ca59(0x2b4)]=0xfa2,_0x339f92['SMART_DELIVERY_PLATFORM_EDITION_QYT_STORE_PAGE']=0xfa3,_0x339f92['SMART_DELIVERY_PLATFORM_EDITION_CPS_MANUAL']=0x1389,_0x339f92[_0x35ca59(0x1cf)]=0x138a,_0x339f92[_0x35ca59(0x235)]=0x1771,_0x339f92['SMART_DELIVERY_PLATFORM_EDITION_READING_APP']=0x1772;export const SMART_DELIVERY_PLATFORM=_0x339f92;const _0x137be7={};_0x137be7[_0x35ca59(0x226)]=0x0,_0x137be7[_0x35ca59(0x1d7)]=0x1;export const SMART_BID_TYPE=_0x137be7;const _0x40cd53={};_0x40cd53[_0x35ca59(0x2b9)]=0x0,_0x40cd53[_0x35ca59(0x1c9)]=0x1,_0x40cd53[_0x35ca59(0x1af)]=0x2;export const EXPLORATION_STRATEGY=_0x40cd53;const _0x3560c4={};_0x3560c4[_0x35ca59(0x259)]=0x0,_0x3560c4['AUTO_DERIVED_CREATIVE_METHOD_TYPE_TEMPLATE']=0x1,_0x3560c4[_0x35ca59(0x2ae)]=0x2,_0x3560c4[_0x35ca59(0x277)]=0x3,_0x3560c4[_0x35ca59(0x1c3)]=0x4,_0x3560c4[_0x35ca59(0x240)]=0x5,_0x3560c4[_0x35ca59(0x1e8)]=0x6,_0x3560c4[_0x35ca59(0x1d0)]=0x7,_0x3560c4[_0x35ca59(0x208)]=0x8,_0x3560c4['AUTO_DERIVED_CREATIVE_METHOD_TYPE_HOME_IMAGE']=0x9,_0x3560c4[_0x35ca59(0x23d)]=0xa,_0x3560c4[_0x35ca59(0x1a8)]=0xb,_0x3560c4[_0x35ca59(0x2c1)]=0xc;export const AUTO_DERIVED_CREATIVE_METHOD_TYPE=_0x3560c4;const _0x3ca1bc={};_0x3ca1bc[_0x35ca59(0x245)]=0x1,_0x3ca1bc[_0x35ca59(0x1b8)]=0xa;export const CONFIGURED_STATUS=_0x3ca1bc;const _0x48b952={};_0x48b952[_0x35ca59(0x26a)]=MARKETING_GOAL,_0x48b952[_0x35ca59(0x2a1)]=MARKETING_SUB_GOAL,_0x48b952[_0x35ca59(0x278)]=MARKETING_CARRIER_TYPE,_0x48b952[_0x35ca59(0x2c3)]=MARKETING_TARGET_TYPE,_0x48b952[_0x35ca59(0x1bc)]=SITE_SET,_0x48b952[_0x35ca59(0x26e)]=SMART_DELIVERY_PLATFORM,_0x48b952['smart_bid_type']=SMART_BID_TYPE,_0x48b952[_0x35ca59(0x1c6)]=EXPLORATION_STRATEGY,_0x48b952[_0x35ca59(0x275)]=CONFIGURED_STATUS,_0x48b952[_0x35ca59(0x215)]=AUTO_DERIVED_CREATIVE_METHOD_TYPE;const ENUM_REGISTRY=_0x48b952,REVERSE_REGISTRY={};for(const [enumName,map]of Object[_0x35ca59(0x2bc)](ENUM_REGISTRY)){const reverse={};for(const [key,value]of Object[_0x35ca59(0x2bc)](map)){reverse[value]=key;}REVERSE_REGISTRY[enumName]=reverse;}const _0xab2f19={};_0xab2f19[_0x35ca59(0x22a)]=_0x35ca59(0x1b0),_0xab2f19[_0x35ca59(0x1aa)]=_0x35ca59(0x22c),_0xab2f19[_0x35ca59(0x255)]=_0x35ca59(0x1b7),_0xab2f19[_0x35ca59(0x1cd)]='SITE_SET_WECHAT_PLUGIN',_0xab2f19[_0x35ca59(0x274)]=_0x35ca59(0x263),_0xab2f19[_0x35ca59(0x1ad)]='SITE_SET_MOBILE_UNION';function _0x475d(){const _0x1ec528=['v0LFrKK','C2L0zv9Zzxq','u0Lurv9trvrFvevoq0vovf9wsurftW','tufss0vusu5hx1nvqL9ht0fmx0XptKDFsu5bq1rjvKvFvvnfuG','u0Lurv9trvrFt1zfuLnfqvnFvu5jt04','mtmXmJzJsw1QzLO','BgL2zv92AwrLB19TB2rL','ufjjq0vFnduWmf9nt1jf','qvvut19ervjjvKvex0nsrufusvzfx01fveHprf9uwvbfx01jwf9dvvq','qvvut19ervjjvKvex0nsrufusvzfx01fveHprf9uwvbfx1rftvbmqvrf','n+wKQEs7PEs4IUACQUA0U+I3GW','zxHWBg9YyxrPB25FC3rYyxrLz3K','iI4G','tufss0vusu5hx1rbuKDfvf9uwvbfx0nbuL9fq09mt0Dz','qvvut01bveLdx0vyueXpuKfusu9o','tufss0vusu5hx1rbuKDfvf9uwvbfx1rxt19xsevftf9wruHjq0Xf','mZdLPkNMNkRMTlVOT4m','u0Lurv9trvrFuvfdt00','u0Lurv9trvrFv0vdsefux01jtKLFr0fnrv9qtfvhsu4','tufss0vusu5hx1nvqL9ht0fmx0fquf9bq1rjvKfusu9o','u01buLrFrevmsvzfuLLFueXbvezpuK1FrurjveLptL9dufnFsu5uruXmsuDftLq','qvvut19ervjjvKvex0nsrufusvzfx01fveHprf9uwvbfx0rsqu1bx1rsqu5trK9stq','mJuWwKDjEKvX','tufss0vusu5hx0nbuLjjrvjFvfLqrv9xruniqvrFt0zgsunjquXFqundt1vova','tufss0vusu5hx1rbuKDfvf9uwvbfx0zsqu5dseLtrv9cuKfora','tufss0vusu5hx1rbuKDfvf9uwvbfx1Dfq0Hbvf9nsu5jx0Dbtuu','zMLSDgvY','tufss0vusu5hx1rbuKDfvf9uwvbfx1jftK9wqvrjt05Fu0vsvKLdrvm','u01buLrFqKLex1rzuevFu1LtvevnqvrjqW','vw5RBM93BIbLBNvTigTLEsaI','u0Lurv9trvrFrLjfrvrsqurfx1Dfqvbq','CMvWBgfJzq','u0Lurv9trvrFu0vbuKnix01pqKLmrv9vtKLptG','5BEY57Up5RE75yQG6l+h5lYb5lIA5B6U5l+H','sLvosu9sx0npteXfr0u','mttML6xKU6xKUiRMNkRMTlVOT4m','tufss0vusu5hx1rbuKDfvf9uwvbfx1Dfq0Hbvf9tve9srv9quK9evunu','nZDdCxnAtva','r0rux1Dfq0Hbvf9prKzjq0Lbtf9bq0npvu5ux0zpteXpv0ve','tufss0vusu5hx0DpquXFufjprfvdvf9tquXfuW','u0Lurv9trvrFuenruq','qu5euK9jrf9qvvjfx01preu','tufss0vusu5hx1rbuKDfvf9uwvbfx0nptLnvtuvFtuvesunbta','u0Lurv9trvrFtuLosv9hqu1fx1Dfq0Hbva','u0Lurv9trvrFv0vdsefux1nfqvjdsa','qvvut19ervjjvKvex0nsrufusvzfx01fveHprf9uwvbfx0rsqu1bx01jwf9dvvq','ndu4nZq5nZbNEuLUyKK','u01buLrFrevmsvzfuLLFueXbvezpuK1FrurjveLptL9euLvhx1bst0rvq1q','tufss0vusu5hx1rbuKDfvf9uwvbfx1rpvvjju1rFse9uruXFu0vsvKLdrq','tufss0vusu5hx1nvqL9ht0fmx1nqrunjquXFuKvmruftrq','qu5euK9jrf9wrvjtsu9oxW','u01buLrFrevmsvzfuLLFueXbvezpuK1FrurjveLptL9xruniqvrFtuLosv9hqu1fx0XptKDFvevstv9st0K','yxv0B19KzxjPDMvKx2nYzwf0AxzLx21LDgHVzf90ExbLx2XPC3q','sefstu9owq','tufss0vusu5hx0nbuLjjrvjFvfLqrv9qq19hqu1f','BMv0D29YA190ExbL','tufss0vusu5hx1rbuKDfvf9uwvbfx1rpvvjju1rFquLsteLorv9usunlrvrt','mEAxPEs7PEs4IUACQUA0U+I3GW','tufss0vusu5hx1rbuKDfvf9uwvbfx1nit1jux0rsqu1b','tKvuxZjh','5ywZ5RoO6l+h5B6U5l+H5ywS5lYx5y+3','u0Lurv9trvrFq0HbtK5ftfnFq09ovevovf9quK9nt1rjt04','u01buLrFrevmsvzfuLLFueXbvezpuK1FrurjveLptL9xruniqvrFu1rpuKvFufjprfvdvf9puL9msvzf','mttLPkNKU6xKUiRMNkRMTlVOT4m','u0Lurv9trvrFu01buLq','mZdLPkNLHOxMTlVOT4m','5PAh5Qgi55sF5OIq','tufss0vusu5hx1nvqL9ht0fmx0DbtuvFvKvsu0LptL9vueDsqurf','6Akg5y+w6l+h5B6U5l+H5y2H5yI4','v0vdsefux01ptuvovfnFqurFteLlrq','ndxLPkNMNkRMTlVOT4m','tufss0vusu5hx1rbuKDfvf9uwvbfx1zjrevpx1bst0Dsqu0','zxHJBhvKzwrFywn0Aw9UCW','55+T5yMN56Uw6l2S5QIQ','zxHJBhvKzwrFB3m','t05fx0HvtKrsrvjFruLhsfrzx0rbwvnFqunusvzf','ndvXtK9OwMS','qvvut19ervjjvKvex0nsrufusvzfx01fveHprf9uwvbfx0nptLrfwfq','u1rfqurz','56Uw6l2S5QIQ','DhjPBq','tufss0vusu5hx1rbuKDfvf9uwvbfx1nut1jf','tufss0vusu5hx1rbuKDfvf9uwvbfx0vyseLcsvrjt05Fu0fmrvm','vw5RBM93BIbLBNvTihr5Cgu6ici','tufss0vusu5hx1rbuKDfvf9uwvbfx1rpvvjju1rFq1jvsvnfx0XjtKu','A2v5','tufss0vusu5hx1rbuKDfvf9uwvbfx0fquf9jt1m','tufss0vusu5hx1rbuKDfvf9uwvbfx01jtKLFufjpr1jbtv9xruniqvq','mZdLPkNKU6xKUiRMNkRMTlVOT4m','t05fx0HvtKrsrvjFruLhsfrzx0rbwvnFtK9Fqunusvzf','yxv0B19KzxjPDMvKx2nYzwf0AxzLx21LDgHVzf90ExbL','tufss0vusu5hx1nvqL9ht0fmx05fv19hqu1fx1jfu0vsvKu','tufss0vusu5hx1nvqL9ht0fmx05pvf9jtLnuquXmx1vtrvi','Dg9vChbLCKnHC2u','5A+55PYl5y+l5zYi5BM/5zgk5OsF5yw06lAJ','u0Lurv9trvrFrLjfrvrsqurfx0zjtKrfuG','v0vdsefux1DpuKTFq09ovefdvfnFqureruq','ywn0Aw9UCW','u0Lurv9trvrFwvvowfvbtG','tufss0vusu5hx1rbuKDfvf9uwvbfx01jtKLFr0fnrv9ruq','u0vwru5Frefzu19bq1rjvKu','ufjjtufswq','5OI/5A625zU+5PAh','tufss0vusu5hx1rbuKDfvf9uwvbfx0fquf9rvuLds19bufa','tufss0vusu5hx1rbuKDfvf9uwvbfx1rpvvjju1rFqvruuKfdveLptLnFveLds0vuuW','u01buLrFrevmsvzfuLLFueXbvezpuK1FrurjveLptL9nsu5jx0DbtuvFufjptu9usu9o','ufjjq0vFmZuWmf80ntaW','u01buLrFqKLex1rzuevFq1vtve9n','tufss0vusu5hx1rbuKDfvf9uwvbfx1Dfq0Hbvf9dsefotKvmu19msvzf','tufss0vusu5hx1rbuKDfvf9uwvbfx0LovKvtve1ftLrFq09ou1vmveLorW','u0vwru5Frefzu19ot19bq1rjvKu','u0Lurv9trvrFv0vdsefux01ptuvovfm','tufss0vusu5hx1nvqL9ht0fmx01jtKLFr0fnrv9srvrvuK5Fq1vtve9nrvjFru5hquDftuvova','u0Lurv9trvrFv0vdsefu','mtGW5AsP5lUL5lIk5PYQ5Rs76lEd','DxnLCL9VCW','C3rHCNrZv2L0Aa','D2vJAgf0x2fKx2jLAgf2Aw9Y','tufss0vusu5hx0DpquXFtevbrf9srvrftLrjt04','tufss0vusu5hx0DpquXFvu5ltK9xtG','rK9vuLrfru5Frefzu19ot19bq1rjvKu','ndxLPkNKU6xKUiRMNkRMTlVOT4m','u01buLrFrevmsvzfuLLFueXbvezpuK1FrurjveLptL9hqu1fx0fqua','tufss0vusu5hx1rbuKDfvf9uwvbfx1rftevdt01nvu5jq0fusu9ou19puevsqvrpuG','ywrK','6jcL6zsa5zU+5PAh','v0vFq09nx0npuLbFsurFqureruq','qKfdsevmt1i','tufss0vusu5hx1nvqL9ht0fmx0fquf9bq1fvsvnjveLptG','n+AxPEs7PEs4IUACQUA0U+I3GW','qvvut19ervjjvKvex0nsrufusvzfx01fveHprf9uwvbfx1nnqvjur0fnrv9jtuDFqKC','tufss0vusu5hx1rbuKDfvf9uwvbfx0zjq1rjt04','tufss0vusu5hx1rbuKDfvf9uwvbfx0vovevsufjju0vFu0vsvKLdrvm','qvvut19ervjjvKvex0nsrufusvzfx01fveHprf9uwvbfx05pvKvmx0rsqu1bx0LnquDf','tufss0vusu5hx1nvqL9ht0fmx0vwru5jtKDFufjptu9usu9o','DgvZDa','tufss0vusu5hx0DpquXFqLjbtKrFufjptu9usu9o','tufss0vusu5hx1rbuKDfvf9uwvbfx1Dfq0Hbvf9tve9srq','qurFu1rbvfvtx05puK1bta','tufss0vusu5hx0nbuLjjrvjFvfLqrv9ruv9nsu5jx0Dbtuu','tufss0vusu5hx1rbuKDfvf9uwvbfx1Dfq0Hbvf9dsefotKvmuW','tufss0vusu5hx1rbuKDfvf9uwvbfx0niquLox1jfu1rbvvjbtLq','u0Lurv9trvrFv0vdsefux1bmvuDjtG','u0Lurv9trvrFtuLosv9hqu1fx1fr','tufss0vusu5hx1rbuKDfvf9uwvbfx1jfu0fmrv9btKrFq09ntuvsq0Lbtf9mqu5e','tufss0vusu5hx1rbuKDfvf9uwvbfx0Xpq0fmx1nut1jfx1bbq0Tbr0u','tufss0vusu5hx1nvqL9ht0fmx1bmqvrfqvvFueHbu0vFtefvtKni','A2v5CW','u0Lurv9trvrFqLjpv1nfuL9qqW','t05fx0rbwvnFqunusvzf','tufss0vusu5hx1rbuKDfvf9uwvbfx1Dfq0Hbvf9prKzjq0Lbtf9bq0npvu5u','ndxML6xKU6xKUiRMNkRMTlVOT4m','su9t','re9dve9s','u0Lurv9trvrFv0vdsefux0niqu5oruXt','mEwKQEwgHEA0U+I3GW','mttLPkNMNkRMTlVOT4m','u0Lurv9trvrFtu9csuXfx1LzqG','qvvut19ervjjvKvex0nsrufusvzfx01fveHprf9uwvbfx1vos05pv04','quNMQkhMNB8','56IZ5ygL5O6I57sI','v0vdsefux01jtKLFr0fnrv9brf9msuTf','AxnbCNjHEq','ufjjq0vFmJuWmf8ZntaW','tufss0vusu5hx1rbuKDfvf9uwvbfx1Dfq0Hbvf9tve9srv9quK9evunux1nfva','u0Lurv9trvrFuvfdteLftLq','u01buLrFrevmsvzfuLLFueXbvezpuK1FrurjveLptL9tveforefsra','u0Lurv9trvrFqLjpv1nfuL9nt0jjteu','u0Lurv9trvrFu0vbuKnix1ndru5f','u01buLrFrevmsvzfuLLFueXbvezpuK1FrurjveLptL9xruniqvrFu1rpuKvFteLwrq','u0Lurv9trvrFtvvtsum','tufss0vusu5hx1nvqL9ht0fmx1vos05pv04','AgfZ','BgL2zv92AwrLB19ZDwjFBw9Kzq','tufss0vusu5hx1rbuKDfvf9uwvbfx1Dfq0Hbvf9xt1jl','BwfYA2v0Aw5Nx2DVywW','qvvut19ervjjvKvex0nsrufusvzfx01fveHprf9uwvbfx0HptuvFsu1br0u','5A+55ywS5lYx5y+35BM/5zgk5OsF5yw06lAJ','tuLosv9hqu1fx1Dfq0Hbvf9sruDju1rfuKve','C21HCNrFzgvSAxzLCNLFCgXHDgzVCM0','55+T5yMN5lMD5zU+','oda1nZe2rxznEMrd','zwr1y2f0Aw9U','u0Lurv9trvrFs0foreLbtG','tufss0vusu5hx1rbuKDfvf9uwvbfx0jfqvvuwv9btKrFuevsu09oquXFq0fsrq','u0Lurv9trvrFu0vbuKni','y29UzMLNDxjLzf9ZDgf0Dxm','tufss0vusu5hx1nvqL9ht0fmx05fv19hqu1fx0Xbvu5dsa','qvvut19ervjjvKvex0nsrufusvzfx01fveHprf9uwvbfx01jtKLFsu1br0u','BwfYA2v0Aw5Nx2nHCNjPzxjFDhLWzq','Aw5JBhvKzxm','tufss0vusu5hx0nbuLjjrvjFvfLqrv9xruniqvrFq0HbtK5ftfm','tufss0vusu5hx1rbuKDfvf9uwvbfx0fdveLwsvrz','u01buLrFrevmsvzfuLLFueXbvezpuK1FrurjveLptL9nsu5jx0DbtuvFtuLyrurFtu9orvrjwKfusu9o','su9tx1zfuLnjt05F','tufss0vusu5hx1rbuKDfvf9uwvbfx1jfquXFrvnuqvrf','Bwf0y2G','tufss0vusu5hx1rbuKDfvf9uwvbfx1rsquzgsum','5RE75yQG6l+h5lYb5lIA5B6U5l+H','BwLUAv9WCM9NCMfTx29Wzw5Fywn0AxzPDhK','tufss0vusu5hx1rbuKDfvf9uwvbfx0nptLnvtuvsx1bst0rvq1q','qvvut19ervjjvKvex0nsrufusvzfx01fveHprf9uwvbfxW','tufss0vusu5hx1rbuKDfvf9uwvbfx0nptu1preLuwv9trvq','6Akg5y+w6l+h5y2H5yI4','tKvuxZrh','qvvut19fwfbmt1jbveLptG','tufss0vusu5hx1nvqL9ht0fmx05fv19hqu1fx1rfu1q','ChvZAa','sLvosu9s','5RI45OIp5lMD5zU+','u01buLrFrevmsvzfuLLFueXbvezpuK1FrurjveLptL9xruniqvrFu1rpuKvFtufoquDftuvova','nJiXndyWCwTlwwjd','tuftvevs','6kEg6Akr5y+357kj5lID','BwLU','u0Lurv9trvrFvevoq0vovf9brf9orvrxt1jlx09wrvjtrue','x1zfuLnjt05F','v0vdsefux09grKLdsufmx0fdq09vtLrFqurFteLlrq','n+wKQEACQUA0U+I3GW','qxzHAwXHyMXLigTLExm6ia','tKvuxZnh','ufjjq0vFmtuWmf9mrvnt','rK9svfLgsvzfx0rbwvnFtK9Fqunusvzf','u01buLrFrevmsvzfuLLFueXbvezpuK1FrurjveLptL9fq09mt0Dzx1bmqvLmrvq','sKfwqq','tufss0vusu5hx1rbuKDfvf9uwvbfx1bmqvrgt1jnx0niqu5oruW','u0Lurv9trvrFtu9csuXfx01zqvbq','B2jQzwn0','v0KTrKK','tufss0vusu5hx1nvqL9ht0fmx05fv19tve9srv9puevosu5h','BwfYA2v0Aw5Nx3n1yL9NB2fS','tufss0vusu5hx1rbuKDfvf9uwvbfx0zjtKfoq0u','tufss0vusu5hx0nbuLjjrvjFvfLqrv9vtKTot1Do','5RoO5yAm6l+h5Bcp5RI45OIp','v0Lore9xuW','u0Lurv9trvrFtu9csuXfx1vosu9o','Bwf4','tufss0vusu5hx1rbuKDfvf9uwvbfx0Lou1vsqu5drq','mZdML6xKU6xKUiRMNkRMTlVOT4m','mtK3oteXnxr1swjdAG','v0vdsefux0npvvbptL9pqLrbsu5fra','tufss0vusu5hx0DpquXFvvnfuL9huK9xveG','u0Lurv9trvrFvevoq0vovf9wsurft19pvfq','qvvut19ervjjvKvex0nsrufusvzfx01fveHprf9uwvbfx09vvfbbsu5usu5h','5zwg5zob5lMD5zU+','tufss0vusu5hx1rbuKDfvf9uwvbfx1DfrerjtKDFqu5ex1bpuLrsquLux1bit1rpr1jbueHz','55+T5yMN5RE35yMQ','u01buLrFrevmsvzfuLLFueXbvezpuK1FrurjveLptL9qrvjjt0rjq19tvefcsuXjwKfusu9o','tufss0vusu5hx1nvqL9ht0fmx1vote9brevex1vtrvi','u01buLrFrevmsvzfuLLFueXbvezpuK1FrurjveLptL9rwvrFv0vdsefux1nut1jf','ufjjq0vFmtuWmf8YntaW','tKvuxZvh','t05fx0rbwvnFtK9Fqunusvzf','tufss0vusu5hx1rbuKDfvf9uwvbfx1bst0rvq1q','rvHqte9sqvrjt05Fvu5ltK9x','tufss0vusu5hx1rbuKDfvf9uwvbfx0DpvKvstK1ftLrFquzgquLsuW','tufss0vusu5hx1rbuKDfvf9uwvbfx0fvreLpvKLtvufmx0vovevsvefjtK1ftLq','zw50CMLLCW','zgv2AwnLx3bYAwnL','veHjuLrzx0rbwvnFqunusvzf','5RI45OIp5zU+54Mh6koc5y+y','v0vdsefux0niqu5oruXtx0zbtLm','qvvut19ervjjvKvex0nsrufusvzfx01fveHprf9uwvbfx01jtKLeuKfnqv9osu5fx0LnrW','u0Lurv9trvrFuvPptKu','BwfYA2v0Aw5Nx3rHCMDLDf90ExbL','v0vdsefux09grKLdsufmx0fdq09vtLrFrK9mte9xruq','u01buLrFrevmsvzfuLLFueXbvezpuK1FrurjveLptL9gsunusu9o','veHjuLrzx0rbwvnFtK9Fqunusvzf','ntm4ntm1B2XKwwrR','tufss0vusu5hx1rbuKDfvf9uwvbfx1rpvvjju1rFvfjbvKvmx1jpvvrf','tufss0vusu5hx1rbuKDfvf9uwvbfx1bfuLnptKfmx1nut1jf','u0Lurv9trvrFuvftse9queLorW','u01buLrFrevmsvzfuLLFueXbvezpuK1FrurjveLptL9csuDFr0fnrv9quK9nt1rjt04','u0Lurv9trvrFrvHqqu5e','BwLUAv9Nyw1Lx3DLy2HHDf9YzwDPC3rLCMvKx2fJDgL2Axr5','tufss0vusu5hx0DpquXFsu5duKvbu0vFrKfou19jtLrfuKfdveLptG','tufss0vusu5hx1nvqL9ht0fmx01jtKLFr0fnrv9orvDFq1vtve9nrvjFr1jpv1ri','r0ru5ywZ5RoO6l+h5ywS5lYx5y+3','quNMIANLM74','u0vosu9s','tufss0vusu5hx0nbuLjjrvjFvfLqrv9bufbFsefstu9owq','tufss0vusu5hx1rbuKDfvf9uwvbfx0fquf9btKrst0Le','qvvut19ervjjvKvex0nsrufusvzfx01fveHprf9uwvbfx1nnqvjur0fnrv9osu5fx0LnrW','BwfW','u0Lurv9trvrFv0vdsefux09grKLdsufmx0fdq09vtLrt','u0Lurv9trvrFvevoq0vovf9lvufjqKfp','u0Lurv9trvrFtu9csuXfx0LotKvs','u0Lurv9trvrFvevoq0vovf9vtKLptG','AM9PBG','u1rfqurzx0vyueXpuKfusu9o','u0Lurv9trvrFtu9nru5uuW','tufss0vusu5hx1rbuKDfvf9uwvbfx0fquf9iqvjnt05z','v0Lgsq','u01buLrFrevmsvzfuLLFueXbvezpuK1FrurjveLptL9xruniqvrFu1rpuKvFu0Lor0Xfx1bst0rvq1q','54Ig5QY+5RE35yMQ','mJe0mZmWngzcsffusa','u01buLrFrevmsvzfuLLFueXbvezpuK1FrurjveLptL9xruniqvrFtuLosv9hqu1fx01ptKvusvPbveLptG','u0Lurv9trvrFq0HbtK5ftfm','qurFu1rbvfvtx1nvu1bftKq','tufss0vusu5hx1rbuKDfvf9uwvbfx0XjvKvFu1rsrufnx1jpt00','BNvTyMvY'];_0x475d=function(){return _0x1ec528;};return _0x475d();}const SITE_SET_ALIAS_MAP=_0xab2f19;function normalizeEnumKey(_0x522e4a,_0x3dae11){const _0x43b5b9=_0x261b;if(_0x522e4a===_0x43b5b9(0x1bc))return SITE_SET_ALIAS_MAP[_0x3dae11]??_0x3dae11;return _0x3dae11;}export function resolveEnum(_0x1499cb,_0x6b28c2){const _0x39be12=_0x261b;if(typeof _0x6b28c2==='number')return _0x6b28c2;if(/^\d+$/[_0x39be12(0x242)](_0x6b28c2))return Number(_0x6b28c2);const _0xb941ae=ENUM_REGISTRY[_0x1499cb];if(!_0xb941ae)throw new Error(_0x39be12(0x20e)+_0x1499cb+'\x22.\x20Available:\x20'+Object['keys'](ENUM_REGISTRY)[_0x39be12(0x1ae)](',\x20'));const _0x3a9c89=normalizeEnumKey(_0x1499cb,_0x6b28c2),_0x3a824e=_0xb941ae[_0x3a9c89];if(_0x3a824e===undefined)throw new Error(_0x39be12(0x1d8)+_0x6b28c2+'\x22\x20for\x20\x22'+_0x1499cb+_0x39be12(0x1c7)+(_0x39be12(0x296)+Object[_0x39be12(0x24e)](_0xb941ae)[_0x39be12(0x1ae)](',\x20')));return _0x3a824e;}export function resolveEnumKey(_0x33e64b,_0x330bd4){const _0x92760=REVERSE_REGISTRY[_0x33e64b];if(!_0x92760)return undefined;return _0x92760[_0x330bd4];}const WECHAT_STORE_DELIVERY_SCENES=new Set([0xbb9,0xbba,0xbbb,0xbbc,0xbbd,0xfa2,0xfa3]),WECHAT_STORE_TARGET_TYPES=new Set([_0x35ca59(0x1df),_0x35ca59(0x25f),'MARKETING_TARGET_TYPE_PRODUCT_AGGREGATION_PAGE',_0x35ca59(0x244)]);export function deriveProductType(_0xf704e2,_0x5a0350,_0x28ea79){const _0x128637=_0x261b,_0x4c1659=typeof _0xf704e2==='number'?_0xf704e2:resolveEnum(_0x128637(0x278),_0xf704e2);switch(_0x4c1659){case 0x6:case 0x7:case 0x8:return 0x33;case 0x4:{if(_0x5a0350!=null&&WECHAT_STORE_DELIVERY_SCENES[_0x128637(0x267)](_0x5a0350))return 0x1e;if(_0x28ea79!=null){const _0x14f75f=typeof _0x28ea79==='string'?_0x28ea79:resolveEnumKey(_0x128637(0x2c3),_0x28ea79);if(_0x14f75f&&WECHAT_STORE_TARGET_TYPES[_0x128637(0x267)](_0x14f75f))return 0x1e;}return 0x2b;}case 0x5:return 0x2e;case 0x1:return 0xc;case 0x2:return 0x13;case 0x3:return 0x17;case 0x9:return 0x34;case 0xa:return 0x35;case 0xd:return null;case 0xe:return null;case 0x37:return 0x37;default:return null;}}const LIVE_VIDEO_CARRIER_TYPES=new Set([0x6,0x7,0x8]);export function deriveLiveVideoMode(_0x30d9ef){const _0x3ca00a=_0x261b,_0x3f2d42=typeof _0x30d9ef===_0x3ca00a(0x1ba)?_0x30d9ef:resolveEnum('marketing_carrier_type',_0x30d9ef);switch(_0x3f2d42){case 0x6:const _0x34bafe={};_0x34bafe[_0x3ca00a(0x1c1)]=0x2,_0x34bafe[_0x3ca00a(0x268)]=0x1;return _0x34bafe;case 0x8:const _0x3fdb5b={};_0x3fdb5b[_0x3ca00a(0x1c1)]=0x2,_0x3fdb5b['live_video_sub_mode']=0x2;return _0x3fdb5b;case 0x7:const _0x113b7d={};_0x113b7d[_0x3ca00a(0x1c1)]=0x1,_0x113b7d[_0x3ca00a(0x268)]=0x0;return _0x113b7d;default:return null;}}export function needsLiveVideoMode(_0x1614be){const _0x2d76c4=_0x261b,_0x22ad64=typeof _0x1614be==='number'?_0x1614be:resolveEnum('marketing_carrier_type',_0x1614be);return LIVE_VIDEO_CARRIER_TYPES[_0x2d76c4(0x267)](_0x22ad64);}export function resolveEnumFields(_0x5585ae,_0x15c1bf){const _0x22c64d={..._0x5585ae},_0x2983b0=_0x22c64d;for(const [_0x2f657d,_0x4da3d7]of Object['entries'](_0x15c1bf)){const _0x43ac6c=_0x2983b0[_0x2f657d];_0x43ac6c!=null&&(_0x2983b0[_0x2f657d]=resolveEnum(_0x4da3d7,_0x43ac6c));}return _0x2983b0;}const _0x2c09c3={};_0x2c09c3['关注过公众号']=_0x35ca59(0x2c4),_0x2c09c3[_0x35ca59(0x1f7)]=_0x35ca59(0x2c4),_0x2c09c3[_0x35ca59(0x2c4)]=_0x35ca59(0x2c4),_0x2c09c3[_0x35ca59(0x286)]=_0x35ca59(0x2ab),_0x2c09c3[_0x35ca59(0x1ff)]=_0x35ca59(0x2ab),_0x2c09c3['WECHAT_COUPON_OBTAINED']=_0x35ca59(0x2ab),_0x2c09c3[_0x35ca59(0x26c)]=_0x35ca59(0x294),_0x2c09c3['WECHAT_OFFICIAL_ACCOUNT_AD_LIKE']=_0x35ca59(0x294),_0x2c09c3[_0x35ca59(0x219)]=_0x35ca59(0x200),_0x2c09c3[_0x35ca59(0x200)]=_0x35ca59(0x200),_0x2c09c3[_0x35ca59(0x2a4)]=_0x35ca59(0x26d),_0x2c09c3['注册过你的小游戏']=_0x35ca59(0x26d),_0x2c09c3['MINI_GAME_WECHAT_REGISTERED']=_0x35ca59(0x26d),_0x2c09c3[_0x35ca59(0x281)]='WECHAT_WORK_CONTACTS_ADDED',_0x2c09c3[_0x35ca59(0x1dc)]='WECHAT_WORK_CONTACTS_ADDED',_0x2c09c3[_0x35ca59(0x21b)]=_0x35ca59(0x21b),_0x2c09c3[_0x35ca59(0x239)]=_0x35ca59(0x239),_0x2c09c3[_0x35ca59(0x290)]=_0x35ca59(0x2c0),_0x2c09c3['是你的视频号粉丝']=_0x35ca59(0x2c0),_0x2c09c3[_0x35ca59(0x2c0)]=_0x35ca59(0x2c0),_0x2c09c3['对小游戏广告感兴趣']=_0x35ca59(0x25c),_0x2c09c3['对小游戏广告感兴趣或未注册']=_0x35ca59(0x25c),_0x2c09c3[_0x35ca59(0x25c)]=_0x35ca59(0x25c),_0x2c09c3[_0x35ca59(0x1a3)]='GDT_WECHAT_OFFICIAL_ACCOUNT_FOLLOWED',_0x2c09c3[_0x35ca59(0x1e1)]=_0x35ca59(0x1e1);const AD_BEHAVIOR_ACTION_MAP=_0x2c09c3,_0x5af700={};_0x5af700[_0x35ca59(0x23c)]=_0x35ca59(0x229),_0x5af700['7天以上未活跃']=_0x35ca59(0x229),_0x5af700[_0x35ca59(0x295)]=_0x35ca59(0x229),_0x5af700[_0x35ca59(0x229)]=_0x35ca59(0x229),_0x5af700[_0x35ca59(0x1de)]=_0x35ca59(0x233),_0x5af700[_0x35ca59(0x1fa)]='FOURTEEN_DAYS_NO_ACTIVE',_0x5af700[_0x35ca59(0x257)]=_0x35ca59(0x233),_0x5af700['FOURTEEN_DAYS_NO_ACTIVE']='FOURTEEN_DAYS_NO_ACTIVE',_0x5af700['30日以上未活跃']=_0x35ca59(0x2c6),_0x5af700[_0x35ca59(0x213)]=_0x35ca59(0x2c6),_0x5af700[_0x35ca59(0x1cb)]='THIRTY_DAYS_NO_ACTIVE',_0x5af700['THIRTY_DAYS_NO_ACTIVE']=_0x35ca59(0x2c6),_0x5af700[_0x35ca59(0x252)]='FORTYFIVE_DAYS_NO_ACTIVE',_0x5af700[_0x35ca59(0x234)]=_0x35ca59(0x299),_0x5af700[_0x35ca59(0x201)]=_0x35ca59(0x299),_0x5af700[_0x35ca59(0x299)]='FORTYFIVE_DAYS_NO_ACTIVE';const MINI_GAME_ACTIVITY_MAP=_0x5af700,_0x4f183d={};_0x4f183d[_0x35ca59(0x1f4)]='ONE_DAYS_NO_ACTIVE',_0x4f183d['1天以上未活跃']='ONE_DAYS_NO_ACTIVE',_0x4f183d[_0x35ca59(0x2b7)]=_0x35ca59(0x2b7),_0x4f183d[_0x35ca59(0x23c)]='SEVEN_DAYS_NO_ACTIVE',_0x4f183d[_0x35ca59(0x1c5)]=_0x35ca59(0x229),_0x4f183d['SEVEN_DAYS_NO_ACTIVE']=_0x35ca59(0x229),_0x4f183d[_0x35ca59(0x2a9)]=_0x35ca59(0x2c6),_0x4f183d[_0x35ca59(0x213)]='THIRTY_DAYS_NO_ACTIVE',_0x4f183d[_0x35ca59(0x2c6)]=_0x35ca59(0x2c6),_0x4f183d['180日以上未活跃']=_0x35ca59(0x214),_0x4f183d[_0x35ca59(0x22d)]=_0x35ca59(0x214),_0x4f183d[_0x35ca59(0x214)]=_0x35ca59(0x214),_0x4f183d['昨天活跃']=_0x35ca59(0x250),_0x4f183d[_0x35ca59(0x256)]='ONE_DAYS_ACTIVE',_0x4f183d['ONE_DAYS_ACTIVE']=_0x35ca59(0x250),_0x4f183d['7天内活跃']=_0x35ca59(0x21f),_0x4f183d[_0x35ca59(0x21f)]='SEVEN_DAYS_ACTIVE',_0x4f183d[_0x35ca59(0x1fc)]='THIRTY_DAYS_ACTIVE',_0x4f183d[_0x35ca59(0x2be)]='THIRTY_DAYS_ACTIVE',_0x4f183d['180天内活跃']=_0x35ca59(0x206),_0x4f183d[_0x35ca59(0x206)]=_0x35ca59(0x206);const MINI_PROGRAM_ACTIVITY_MAP=_0x4f183d,_0x4c46e3={};_0x4c46e3[_0x35ca59(0x1b2)]=_0x35ca59(0x1b2),_0x4c46e3[_0x35ca59(0x1bb)]=_0x35ca59(0x1b2),_0x4c46e3[_0x35ca59(0x29f)]=_0x35ca59(0x1b2),_0x4c46e3['2G']=_0x35ca59(0x1f6),_0x4c46e3['NET_2G']=_0x35ca59(0x1f6),_0x4c46e3['3G']=_0x35ca59(0x297),_0x4c46e3[_0x35ca59(0x297)]='NET_3G',_0x4c46e3['4G']='NET_4G',_0x4c46e3['NET_4G']=_0x35ca59(0x287),_0x4c46e3['5G']='NET_5G',_0x4c46e3[_0x35ca59(0x2b6)]=_0x35ca59(0x2b6);const NETWORK_TYPE_MAP=_0x4c46e3,_0x1155d9={};_0x1155d9['博士']=_0x35ca59(0x254),_0x1155d9['DOCTOR']='DOCTOR',_0x1155d9['硕士']='MASTER',_0x1155d9[_0x35ca59(0x28f)]=_0x35ca59(0x28f),_0x1155d9['本科']=_0x35ca59(0x23a),_0x1155d9[_0x35ca59(0x23a)]=_0x35ca59(0x23a),_0x1155d9['大专']=_0x35ca59(0x1dd),_0x1155d9['专科']=_0x35ca59(0x1dd),_0x1155d9['JUNIOR_COLLEGE']=_0x35ca59(0x1dd),_0x1155d9['高中']=_0x35ca59(0x1a5),_0x1155d9[_0x35ca59(0x1a5)]=_0x35ca59(0x1a5),_0x1155d9['初中']=_0x35ca59(0x28b),_0x1155d9[_0x35ca59(0x28b)]='JUNIOR',_0x1155d9['小学']=_0x35ca59(0x220),_0x1155d9[_0x35ca59(0x220)]=_0x35ca59(0x220);const EDUCATION_MAP=_0x1155d9,DEVICE_PRICE_ENUMS=['PRICE_1500_LESS',_0x35ca59(0x2b5),_0x35ca59(0x25e),_0x35ca59(0x225),_0x35ca59(0x1c2)],_0x583de3={};_0x583de3[_0x35ca59(0x2a7)]=0x5dc,_0x583de3[_0x35ca59(0x210)]=_0x35ca59(0x298);const _0x188429={};_0x188429[_0x35ca59(0x291)]=0x5dc,_0x188429[_0x35ca59(0x2a7)]=0x9c4,_0x188429[_0x35ca59(0x210)]=_0x35ca59(0x2b5);const _0x16d779={};_0x16d779[_0x35ca59(0x291)]=0x9c4,_0x16d779[_0x35ca59(0x2a7)]=0xdac,_0x16d779[_0x35ca59(0x210)]=_0x35ca59(0x25e);const _0x553104={};_0x553104[_0x35ca59(0x291)]=0xdac,_0x553104['max']=0x1194,_0x553104[_0x35ca59(0x210)]=_0x35ca59(0x225);const _0x1cc4e9={};_0x1cc4e9[_0x35ca59(0x291)]=0x1194,_0x1cc4e9[_0x35ca59(0x210)]='PRICE_4500_MORE';const DEVICE_PRICE_THRESHOLDS=[_0x583de3,_0x188429,_0x16d779,_0x553104,_0x1cc4e9];function resolveOsValues(_0x112876){const _0x414ee4=_0x261b,_0x2fc810=[];for(const _0x58d093 of _0x112876){const _0x2a4320=String(_0x58d093)[_0x414ee4(0x218)]()[_0x414ee4(0x20b)]();if(_0x2a4320===_0x414ee4(0x253)||_0x2a4320==='ANDROID'||_0x2a4320[_0x414ee4(0x22f)](_0x414ee4(0x27d))||_0x2a4320[_0x414ee4(0x22f)](_0x414ee4(0x1ed))||_0x2a4320===_0x414ee4(0x1e4)||_0x2a4320===_0x414ee4(0x2a5)||_0x2a4320==='SYMBIAN'||_0x2a4320===_0x414ee4(0x29b)||_0x2a4320===_0x414ee4(0x1f0)){_0x2fc810[_0x414ee4(0x28a)](_0x2a4320);continue;}const _0x4e4074=_0x2a4320['match'](/^(ANDROID|IOS)[_]?(\d+)(\+)?$/);if(_0x4e4074){const [,_0x26eb28,_0x5a664f,_0x1c2747]=_0x4e4074,_0x3ef241=parseInt(_0x5a664f,0xa);if(_0x1c2747){if(_0x26eb28==='ANDROID'){for(let _0x194130=Math[_0x414ee4(0x2a7)](_0x3ef241,0x1);_0x194130<=0xf;_0x194130++)_0x2fc810[_0x414ee4(0x28a)](_0x414ee4(0x1ed)+_0x194130);}else{for(let _0x2b8c61=Math[_0x414ee4(0x2a7)](_0x3ef241,0x4);_0x2b8c61<=0x12;_0x2b8c61++)_0x2fc810[_0x414ee4(0x28a)](_0x414ee4(0x27d)+_0x2b8c61);}}else _0x2fc810[_0x414ee4(0x28a)](_0x26eb28+_0x414ee4(0x293)+_0x3ef241);continue;}_0x2fc810[_0x414ee4(0x28a)](_0x58d093);}return[...new Set(_0x2fc810)];}function resolveDevicePrice(_0x1857ea){const _0x3520a0=_0x261b,_0x2ee376=new Set();for(const _0x12ef11 of _0x1857ea){const _0x299b20=String(_0x12ef11)['toUpperCase']()[_0x3520a0(0x20b)]();if(DEVICE_PRICE_ENUMS[_0x3520a0(0x279)](_0x299b20)){_0x2ee376[_0x3520a0(0x237)](_0x299b20);continue;}const _0x5a1bde=String(_0x12ef11)[_0x3520a0(0x20b)](),_0x18f251=_0x5a1bde[_0x3520a0(0x27f)](/^(\d+)\s*[以]?上$|^(\d+)\+$/);if(_0x18f251){const _0x3034df=parseInt(_0x18f251[0x1]||_0x18f251[0x2],0xa);for(const _0x13f92a of DEVICE_PRICE_THRESHOLDS){(_0x13f92a['min']!=null&&_0x13f92a[_0x3520a0(0x291)]>=_0x3034df||_0x13f92a['max']!=null&&_0x13f92a[_0x3520a0(0x2a7)]>_0x3034df||_0x13f92a[_0x3520a0(0x2a7)]==null&&(_0x13f92a['min']||0x0)>=_0x3034df)&&_0x2ee376[_0x3520a0(0x237)](_0x13f92a[_0x3520a0(0x210)]);}continue;}const _0x212815=_0x5a1bde[_0x3520a0(0x27f)](/^(\d+)\s*[以]?下$/);if(_0x212815){const _0x21594b=parseInt(_0x212815[0x1],0xa);for(const _0x1769cb of DEVICE_PRICE_THRESHOLDS){(_0x1769cb[_0x3520a0(0x2a7)]!=null&&_0x1769cb['max']<=_0x21594b||_0x1769cb[_0x3520a0(0x291)]==null)&&_0x2ee376['add'](_0x1769cb[_0x3520a0(0x210)]);}continue;}const _0x2124f4=_0x5a1bde[_0x3520a0(0x27f)](/^(\d+)\s*[-~]\s*(\d+)$/);if(_0x2124f4){const _0x352937=parseInt(_0x2124f4[0x1],0xa),_0x5dcd98=parseInt(_0x2124f4[0x2],0xa);for(const _0x2911b3 of DEVICE_PRICE_THRESHOLDS){const _0x138a19=_0x2911b3['min']??0x0,_0x49d24f=_0x2911b3[_0x3520a0(0x2a7)]??Infinity;if(_0x138a19<_0x5dcd98&&_0x49d24f>_0x352937)_0x2ee376[_0x3520a0(0x237)](_0x2911b3['key']);}continue;}_0x2ee376[_0x3520a0(0x237)](_0x12ef11);}return[..._0x2ee376];}export function resolveTargetingFields(_0x5ea88e){const _0x1c6046=_0x261b;if(!_0x5ea88e||typeof _0x5ea88e!==_0x1c6046(0x29e))return;const _0x309060=_0x5ea88e;Array[_0x1c6046(0x25d)](_0x309060[_0x1c6046(0x22e)])&&(_0x309060[_0x1c6046(0x22e)]=resolveOsValues(_0x309060[_0x1c6046(0x22e)]));Array[_0x1c6046(0x25d)](_0x309060[_0x1c6046(0x205)])&&(_0x309060[_0x1c6046(0x205)]=resolveOsValues(_0x309060['excluded_os']));Array[_0x1c6046(0x25d)](_0x309060[_0x1c6046(0x1f2)])&&(_0x309060['network_type']=_0x309060[_0x1c6046(0x1f2)][_0x1c6046(0x1a9)](_0x3dd62a=>{const _0x919562=_0x261b,_0x4d2082=String(_0x3dd62a)[_0x919562(0x218)]()[_0x919562(0x1da)](/[\s-]/g,'_');return NETWORK_TYPE_MAP[_0x4d2082]||NETWORK_TYPE_MAP[String(_0x3dd62a)[_0x919562(0x218)]()]||_0x3dd62a;}));Array[_0x1c6046(0x25d)](_0x309060['education'])&&(_0x309060[_0x1c6046(0x271)]=_0x309060[_0x1c6046(0x271)][_0x1c6046(0x1a9)](_0x16054c=>EDUCATION_MAP[_0x16054c]||EDUCATION_MAP[String(_0x16054c)[_0x1c6046(0x218)]()]||_0x16054c));Array[_0x1c6046(0x25d)](_0x309060[_0x1c6046(0x2bd)])&&(_0x309060[_0x1c6046(0x2bd)]=resolveDevicePrice(_0x309060['device_price']));if(_0x309060[_0x1c6046(0x230)]&&typeof _0x309060[_0x1c6046(0x230)]===_0x1c6046(0x29e)&&!Array['isArray'](_0x309060['wechat_ad_behavior'])){const _0x40f6a7=_0x309060['wechat_ad_behavior'];for(const _0x409998 of[_0x1c6046(0x21c),_0x1c6046(0x203)]){Array[_0x1c6046(0x25d)](_0x40f6a7[_0x409998])&&(_0x40f6a7[_0x409998]=_0x40f6a7[_0x409998][_0x1c6046(0x1a9)](_0x348a5c=>AD_BEHAVIOR_ACTION_MAP[_0x348a5c]||AD_BEHAVIOR_ACTION_MAP[String(_0x348a5c)]||_0x348a5c));}if(_0x40f6a7['mini_game_wechat_registered_activity']!=null){const _0x1ba7cc=String(_0x40f6a7[_0x1c6046(0x2cd)]);_0x40f6a7[_0x1c6046(0x2cd)]=MINI_GAME_ACTIVITY_MAP[_0x1ba7cc]||MINI_GAME_ACTIVITY_MAP[_0x1ba7cc['toUpperCase']()]||_0x1ba7cc;}if(_0x40f6a7[_0x1c6046(0x282)]!=null){const _0x37894a=String(_0x40f6a7[_0x1c6046(0x282)]);_0x40f6a7[_0x1c6046(0x282)]=MINI_PROGRAM_ACTIVITY_MAP[_0x37894a]||MINI_PROGRAM_ACTIVITY_MAP[_0x37894a['toUpperCase']()]||_0x37894a;}}}const _0x3a401d={};_0x3a401d[_0x35ca59(0x25a)]=_0x35ca59(0x1c4),_0x3a401d['模板']=_0x35ca59(0x1c4),_0x3a401d[_0x35ca59(0x1a4)]=_0x35ca59(0x2ae),_0x3a401d['扩图']=_0x35ca59(0x2ae),_0x3a401d[_0x35ca59(0x2af)]=_0x35ca59(0x277),_0x3a401d['九图']='AUTO_DERIVED_CREATIVE_METHOD_TYPE_MINI_IMAGE',_0x3a401d[_0x35ca59(0x1b4)]=_0x35ca59(0x1c3),_0x3a401d['混剪']=_0x35ca59(0x1c3),_0x3a401d[_0x35ca59(0x238)]=_0x35ca59(0x240),_0x3a401d[_0x35ca59(0x2b1)]=_0x35ca59(0x1e8),_0x3a401d[_0x35ca59(0x204)]='AUTO_DERIVED_CREATIVE_METHOD_TYPE_DRAMA_TRANSFORM',_0x3a401d[_0x35ca59(0x20a)]=_0x35ca59(0x1d0),_0x3a401d[_0x35ca59(0x1fd)]=_0x35ca59(0x208),_0x3a401d[_0x35ca59(0x221)]=_0x35ca59(0x26b),_0x3a401d[_0x35ca59(0x2bf)]='AUTO_DERIVED_CREATIVE_METHOD_TYPE_SMARTGAME_IMG_BG',_0x3a401d[_0x35ca59(0x28c)]=_0x35ca59(0x1a8),_0x3a401d[_0x35ca59(0x26f)]=_0x35ca59(0x2c1);const AUTO_DERIVED_CREATIVE_METHOD_TYPE_ALIAS=_0x3a401d;export function resolveAutoDerivedCreativePreference(_0x5b1199){const _0xe203a0=_0x261b;if(!_0x5b1199||typeof _0x5b1199!==_0xe203a0(0x29e))return;const _0x565b53=_0x5b1199[_0xe203a0(0x1ef)];Array['isArray'](_0x565b53)&&(_0x5b1199[_0xe203a0(0x1ef)]=_0x565b53[_0xe203a0(0x1a9)](_0x532f12=>{const _0x3c685a=_0x261b,_0xa7fe3b=String(_0x532f12);return AUTO_DERIVED_CREATIVE_METHOD_TYPE_ALIAS[_0xa7fe3b]||(_0xa7fe3b[_0x3c685a(0x22f)](_0x3c685a(0x284))?_0xa7fe3b:_0x532f12);}));}export function resolveSiteSetAliases(_0x3e93bc){const _0x540ba0=_0x261b;return _0x3e93bc[_0x540ba0(0x1a9)](_0x34f7ca=>SITE_SET_ALIAS_MAP[_0x34f7ca]??_0x34f7ca);}const _0x4875c6={};_0x4875c6['自动探索']=_0x35ca59(0x1c9),_0x4875c6['AUTO']=_0x35ca59(0x1c9),_0x4875c6[_0x35ca59(0x288)]=_0x35ca59(0x1c9),_0x4875c6['稳步探索']='STEADY_EXPLORATION',_0x4875c6[_0x35ca59(0x25b)]=_0x35ca59(0x1af),_0x4875c6[_0x35ca59(0x209)]=_0x35ca59(0x1af);const EXPLORATION_STRATEGY_ALIAS=_0x4875c6,VALID_EXPLORATION_STRATEGIES=Object[_0x35ca59(0x24e)](EXPLORATION_STRATEGY)[_0x35ca59(0x1d5)](_0x20d315=>_0x20d315!==_0x35ca59(0x2b9));export function resolveExplorationStrategy(_0x325ca8){const _0x20724d=_0x261b,_0x446a23=String(_0x325ca8),_0x27c517=EXPLORATION_STRATEGY_ALIAS[_0x446a23]||EXPLORATION_STRATEGY_ALIAS[_0x446a23[_0x20724d(0x218)]()]||_0x446a23;if(!VALID_EXPLORATION_STRATEGIES['includes'](_0x27c517))throw new Error('exploration_strategy\x20值无效:\x20\x22'+_0x27c517+'\x22,合法值:\x20'+VALID_EXPLORATION_STRATEGIES[_0x20724d(0x1ae)](',\x20'));return _0x27c517;}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @anthropic-skills/tencent-ads-cli — Public API
3
+ *
4
+ * Programmatic interface for Tencent Ads API operations.
5
+ * Can be used by OpenClaw plugins, evaluation frameworks, or other tools.
6
+ */
7
+ export { callApi } from "./api.js";
8
+ export { TencentAdsClient } from "./api-client.js";
9
+ export { TencentAdsAuth } from "./auth.js";
10
+ export { ENDPOINTS } from "./endpoints.js";
11
+ export declare function hash33(str: string): number;
12
+ export declare function getCookieValue(): string | undefined;
13
+ export declare function computeGtk(): number;
14
+ export declare function computeMptk(): number;
15
+ export { MARKETING_GOAL, MARKETING_SUB_GOAL, MARKETING_CARRIER_TYPE, MARKETING_TARGET_TYPE, SITE_SET, SMART_DELIVERY_PLATFORM, EXPLORATION_STRATEGY, resolveEnum, resolveEnumKey, deriveProductType, deriveLiveVideoMode, needsLiveVideoMode, resolveEnumFields, resolveTargetingFields, resolveAutoDerivedCreativePreference, resolveSiteSetAliases, resolveExplorationStrategy, } from "./enums.js";
16
+ export type { AuthProvider, RequestOptions, TencentAdsConfig, RetryConfig, ApiResponse, StoredCredentialData, AuthStatus, AuthInfo, CommandResult, CallApiParams, CallApiResult, } from "./types.js";
17
+ export { TencentAdsError } from "./types.js";
package/dist/index.js ADDED
@@ -0,0 +1 @@
1
+ (function(_0x1c3067,_0x5cc051){const _0xd4604d=_0x4de7,_0x4c0470=_0x1c3067();while(!![]){try{const _0x139116=-parseInt(_0xd4604d(0x7e))/0x1+-parseInt(_0xd4604d(0x78))/0x2+parseInt(_0xd4604d(0x79))/0x3+-parseInt(_0xd4604d(0x7b))/0x4*(-parseInt(_0xd4604d(0x7f))/0x5)+parseInt(_0xd4604d(0x81))/0x6*(parseInt(_0xd4604d(0x83))/0x7)+parseInt(_0xd4604d(0x82))/0x8*(-parseInt(_0xd4604d(0x7d))/0x9)+-parseInt(_0xd4604d(0x80))/0xa*(-parseInt(_0xd4604d(0x7a))/0xb);if(_0x139116===_0x5cc051)break;else _0x4c0470['push'](_0x4c0470['shift']());}catch(_0x43278e){_0x4c0470['push'](_0x4c0470['shift']());}}}(_0x3400,0xd99c4));function _0x3400(){const _0x4b6240=['n1fjz3zqsa','mJi2nJiZoffqu0zjva','ntK3ndeXAff3D0fI','mJjMyM5AB3y','nteWntjUBxHeDKu','BgvUz3rO','owrVwKzstW','mtq0nZa4nhjYsLbLtq','nduWthD6DvnI','mteZnJqYmJb4ENzgqw8','ntu3otyZnfrmr01qqq','odyZmJq0meDNwufSCa'];_0x3400=function(){return _0x4b6240;};return _0x3400();}export{callApi}from'./api.js';export{TencentAdsClient}from'./api-client.js';export{TencentAdsAuth}from'./auth.js';export{ENDPOINTS}from'./endpoints.js';function _0x4de7(_0x45da2a,_0x5ddd10){_0x45da2a=_0x45da2a-0x78;const _0x3400ab=_0x3400();let _0x4de787=_0x3400ab[_0x45da2a];if(_0x4de7['qXsWeC']===undefined){var _0x50d0bc=function(_0x42ebc0){const _0x52b31e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x532371='',_0x56d413='';for(let _0xeea37f=0x0,_0x53da88,_0x8fc254,_0x1161d7=0x0;_0x8fc254=_0x42ebc0['charAt'](_0x1161d7++);~_0x8fc254&&(_0x53da88=_0xeea37f%0x4?_0x53da88*0x40+_0x8fc254:_0x8fc254,_0xeea37f++%0x4)?_0x532371+=String['fromCharCode'](0xff&_0x53da88>>(-0x2*_0xeea37f&0x6)):0x0){_0x8fc254=_0x52b31e['indexOf'](_0x8fc254);}for(let _0x3503bb=0x0,_0x4e6923=_0x532371['length'];_0x3503bb<_0x4e6923;_0x3503bb++){_0x56d413+='%'+('00'+_0x532371['charCodeAt'](_0x3503bb)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x56d413);};_0x4de7['WSqPyY']=_0x50d0bc,_0x4de7['RGYzBq']={},_0x4de7['qXsWeC']=!![];}const _0x115ddc=_0x3400ab[0x0],_0x480a4e=_0x45da2a+_0x115ddc,_0x590f07=_0x4de7['RGYzBq'][_0x480a4e];return!_0x590f07?(_0x4de787=_0x4de7['WSqPyY'](_0x4de787),_0x4de7['RGYzBq'][_0x480a4e]=_0x4de787):_0x4de787=_0x590f07,_0x4de787;}export function hash33(_0x532371){const _0x56ba28=_0x4de7;let _0x56d413=0x1505;for(let _0xeea37f=0x0;_0xeea37f<_0x532371[_0x56ba28(0x7c)];_0xeea37f++)_0x56d413=(_0x56d413<<0x5&0x7fffffff)+_0x532371['charCodeAt'](_0xeea37f)+_0x56d413;return _0x56d413&0x7fffffff;}export function getCookieValue(){return undefined;}export function computeGtk(){return 0x0;}export function computeMptk(){return 0x0;}export{MARKETING_GOAL,MARKETING_SUB_GOAL,MARKETING_CARRIER_TYPE,MARKETING_TARGET_TYPE,SITE_SET,SMART_DELIVERY_PLATFORM,EXPLORATION_STRATEGY,resolveEnum,resolveEnumKey,deriveProductType,deriveLiveVideoMode,needsLiveVideoMode,resolveEnumFields,resolveTargetingFields,resolveAutoDerivedCreativePreference,resolveSiteSetAliases,resolveExplorationStrategy}from'./enums.js';export{TencentAdsError}from'./types.js';
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Tencent Ads CLI — Types
3
+ *
4
+ * Shared type definitions for the tencent-ads-cli tool.
5
+ * These types are used by both the CLI binary and the programmatic API.
6
+ */
7
+ export interface AuthProvider {
8
+ authenticate(request: RequestOptions): Promise<RequestOptions>;
9
+ isValid(): Promise<boolean>;
10
+ }
11
+ export interface RequestOptions {
12
+ method: "GET" | "POST";
13
+ url: string;
14
+ headers: Record<string, string>;
15
+ params?: Record<string, any>;
16
+ body?: any;
17
+ }
18
+ export interface TencentAdsConfig {
19
+ authProvider: AuthProvider;
20
+ baseUrl: string;
21
+ timeout?: number;
22
+ retryConfig?: RetryConfig;
23
+ }
24
+ export interface RetryConfig {
25
+ maxRetries: number;
26
+ baseDelay: number;
27
+ }
28
+ export interface ApiResponse<T> {
29
+ code: number;
30
+ message: string;
31
+ message_cn?: string;
32
+ trace_id?: string;
33
+ data: T;
34
+ }
35
+ /** ~/.tencent-ads/credentials.json file format */
36
+ export interface StoredCredentialData {
37
+ apiKey: string;
38
+ updatedAt: string;
39
+ }
40
+ export type AuthStatus = "active" | "not_configured";
41
+ export interface AuthInfo {
42
+ integrationId: string;
43
+ authMethod: string;
44
+ status: AuthStatus;
45
+ updatedAt: string | null;
46
+ credentialPreview?: string;
47
+ storagePath?: string;
48
+ }
49
+ export interface CommandResult {
50
+ exitCode: number;
51
+ stdout: string;
52
+ stderr: string;
53
+ }
54
+ export interface CallApiParams {
55
+ method: "GET" | "POST";
56
+ path: string;
57
+ accountId?: string;
58
+ params?: Record<string, unknown>;
59
+ body?: any;
60
+ headers?: Record<string, string>;
61
+ /** Override base URL (default: auto-selected based on auth method) */
62
+ baseUrl?: string;
63
+ }
64
+ export interface CallApiResult {
65
+ success: boolean;
66
+ data?: unknown;
67
+ error?: {
68
+ type: "TencentAdsError" | "Error";
69
+ code?: number;
70
+ message: string;
71
+ message_cn?: string;
72
+ trace_id?: string;
73
+ };
74
+ }
75
+ export declare class TencentAdsError extends Error {
76
+ code: number;
77
+ message_cn?: string | undefined;
78
+ trace_id?: string | undefined;
79
+ constructor(code: number, message: string, message_cn?: string | undefined, trace_id?: string | undefined);
80
+ }
package/dist/types.js ADDED
@@ -0,0 +1 @@
1
+ var _0x5d10a1=_0x54d4;(function(_0x21f30f,_0x34014b){var _0x41fdb6=_0x54d4,_0x388237=_0x21f30f();while(!![]){try{var _0x105b4c=-parseInt(_0x41fdb6(0x1b5))/0x1+-parseInt(_0x41fdb6(0x1b7))/0x2+-parseInt(_0x41fdb6(0x1b3))/0x3+-parseInt(_0x41fdb6(0x1b6))/0x4+-parseInt(_0x41fdb6(0x1af))/0x5+-parseInt(_0x41fdb6(0x1ba))/0x6+parseInt(_0x41fdb6(0x1b9))/0x7*(parseInt(_0x41fdb6(0x1ae))/0x8);if(_0x105b4c===_0x34014b)break;else _0x388237['push'](_0x388237['shift']());}catch(_0x4be1a0){_0x388237['push'](_0x388237['shift']());}}}(_0x10c4,0xa3eda));function _0x54d4(_0x23d776,_0x2d1e07){_0x23d776=_0x23d776-0x1ae;var _0x10c42d=_0x10c4();var _0x54d435=_0x10c42d[_0x23d776];if(_0x54d4['lZSxkm']===undefined){var _0x59b4f2=function(_0x431ff0){var _0x3dd31a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x2ec90e='',_0x2a46e0='';for(var _0x4fd204=0x0,_0x42438c,_0x3c8e76,_0x8c8853=0x0;_0x3c8e76=_0x431ff0['charAt'](_0x8c8853++);~_0x3c8e76&&(_0x42438c=_0x4fd204%0x4?_0x42438c*0x40+_0x3c8e76:_0x3c8e76,_0x4fd204++%0x4)?_0x2ec90e+=String['fromCharCode'](0xff&_0x42438c>>(-0x2*_0x4fd204&0x6)):0x0){_0x3c8e76=_0x3dd31a['indexOf'](_0x3c8e76);}for(var _0x26e16e=0x0,_0xff4570=_0x2ec90e['length'];_0x26e16e<_0xff4570;_0x26e16e++){_0x2a46e0+='%'+('00'+_0x2ec90e['charCodeAt'](_0x26e16e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2a46e0);};_0x54d4['CqtBtY']=_0x59b4f2,_0x54d4['WfPPHD']={},_0x54d4['lZSxkm']=!![];}var _0x52df8f=_0x10c42d[0x0],_0x43d172=_0x23d776+_0x52df8f,_0x2da7de=_0x54d4['WfPPHD'][_0x43d172];return!_0x2da7de?(_0x54d435=_0x54d4['CqtBtY'](_0x54d435),_0x54d4['WfPPHD'][_0x43d172]=_0x54d435):_0x54d435=_0x2da7de,_0x54d435;}function _0x10c4(){var _0x4458d2=['DhjHy2vFAwq','y29Kzq','BMfTzq','mJy4mtqXmNvJzg1KzW','BwvZC2fNzv9JBG','mta5ntC4nhbPrNHnqq','mJGZmdqZnKzctg9nuq','ndK2mtu2vur1q3Ln','vgvUy2vUDefKC0vYCM9Y','n0TgBNbNsG','ndq1mdyZmKvoyxv1wG','ndmYmde2mtz6uKDozg0','ntiWoduYnuD5zhDrwq'];_0x10c4=function(){return _0x4458d2;};return _0x10c4();}export class TencentAdsError extends Error{[_0x5d10a1(0x1b1)];[_0x5d10a1(0x1b4)];[_0x5d10a1(0x1b0)];constructor(_0x2ec90e,_0x2a46e0,_0x4fd204,_0x42438c){var _0x4bbf99=_0x54d4;super(_0x2a46e0),this[_0x4bbf99(0x1b1)]=_0x2ec90e,this[_0x4bbf99(0x1b4)]=_0x4fd204,this[_0x4bbf99(0x1b0)]=_0x42438c,this[_0x4bbf99(0x1b2)]=_0x4bbf99(0x1b8);}}
package/package.json ADDED
@@ -0,0 +1,47 @@
1
+ {
2
+ "name": "tencentads-cli",
3
+ "version": "1.0.0",
4
+ "description": "通用腾讯广告 API CLI 工具 — 封装鉴权与 API 调用",
5
+ "license": "MIT",
6
+ "keywords": [
7
+ "tencent",
8
+ "ads",
9
+ "cli",
10
+ "marketing",
11
+ "api",
12
+ "advertising"
13
+ ],
14
+ "type": "module",
15
+ "main": "dist/index.js",
16
+ "types": "dist/index.d.ts",
17
+ "bin": {
18
+ "tencent-ads": "./dist/bin.js"
19
+ },
20
+ "exports": {
21
+ ".": {
22
+ "import": "./dist/index.js",
23
+ "types": "./dist/index.d.ts"
24
+ }
25
+ },
26
+ "files": [
27
+ "dist/",
28
+ "LICENSE",
29
+ "README.md"
30
+ ],
31
+ "scripts": {
32
+ "build": "tsc",
33
+ "build:obfuscate": "tsc && node scripts/obfuscate.mjs",
34
+ "check": "tsc --noEmit",
35
+ "clean": "rm -rf dist",
36
+ "dev": "tsc --watch",
37
+ "prepublishOnly": "npm run clean && npm run build:obfuscate"
38
+ },
39
+ "devDependencies": {
40
+ "@types/node": "^20.11.0",
41
+ "javascript-obfuscator": "^4.1.1",
42
+ "typescript": "^5.3.0"
43
+ },
44
+ "engines": {
45
+ "node": ">=20.0.0"
46
+ }
47
+ }