@akross/artemis-ads-sdk 3.7.0 → 3.7.1
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/CHANGELOG.md +46 -0
- package/README.md +138 -134
- package/dist/akross-ads-sdk.esm.js +1 -1
- package/dist/akross-ads-sdk.iife.js +1 -1
- package/dist/akross-ads-sdk.min.js +1 -1
- package/dist/akross-ads-sdk.umd.js +1 -1
- package/dist/core/AAManager.d.ts.map +1 -1
- package/dist/modules/rv/programmatic/AARewardedVideo.d.ts +2 -0
- package/dist/modules/rv/programmatic/AARewardedVideo.d.ts.map +1 -1
- package/dist/modules/rv/programmatic/LuminaRewardedVideoWrapper.d.ts +40 -0
- package/dist/modules/rv/programmatic/LuminaRewardedVideoWrapper.d.ts.map +1 -0
- package/dist/modules/rv/programmatic/index.d.ts +1 -0
- package/dist/modules/rv/programmatic/index.d.ts.map +1 -1
- package/dist/modules/rv/vast/AAVastPlayer.d.ts +1 -0
- package/dist/modules/rv/vast/AAVastPlayer.d.ts.map +1 -1
- package/dist/types/ArtemisSdkConfig.d.ts +4 -0
- package/dist/types/ArtemisSdkConfig.d.ts.map +1 -1
- package/dist/types/models/AACampaign.d.ts +0 -1
- package/dist/types/models/AACampaign.d.ts.map +1 -1
- package/dist/types/models/AACampaignConfig.d.ts.map +1 -1
- package/dist/types/models/AAMainData.d.ts +2 -1
- package/dist/types/models/AAMainData.d.ts.map +1 -1
- package/dist/utils/AAMediaResultHelper.d.ts +2 -0
- package/dist/utils/AAMediaResultHelper.d.ts.map +1 -1
- package/dist/utils/DeviceUtil.d.ts +8 -0
- package/dist/utils/DeviceUtil.d.ts.map +1 -0
- package/dist/utils/ExternalJsLoader.d.ts +7 -2
- package/dist/utils/ExternalJsLoader.d.ts.map +1 -1
- package/dist/utils/index.d.ts +2 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/package.json +3 -2
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
Todas as mudanças notáveis do projeto são documentadas neste arquivo.
|
|
4
|
+
|
|
5
|
+
O formato é baseado em [Keep a Changelog](https://keepachangelog.com/pt-BR/1.0.0/),
|
|
6
|
+
e este projeto adere ao [Versionamento Semântico](https://semver.org/lang/pt-BR/).
|
|
7
|
+
|
|
8
|
+
## [3.7.1] - 2025-01-29
|
|
9
|
+
|
|
10
|
+
- Republicação: 3.7.0 foi deprecated no npm; esta versão substitui o release final.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## [3.7.0] - 2025-01-29
|
|
15
|
+
|
|
16
|
+
Esta versão consolida três branches mergeadas: **Kwai (Lumina)**, **external_redirect** e **proxyExternalScripts**.
|
|
17
|
+
|
|
18
|
+
### Kwai / Lumina (Rewarded Video)
|
|
19
|
+
|
|
20
|
+
- **Lumina Rewarded Video**: Integração com Kwai Lumina Ad SDK para anúncios recompensados no waterfall programático.
|
|
21
|
+
- **LuminaRewardedVideoWrapper**: Wrapper para exibição de RV via Lumina (tagId + token).
|
|
22
|
+
- **`luminaToken` em `SDKConfig`**: Nova opção para uso do Lumina RV.
|
|
23
|
+
- **Pré-carregamento do Lumina**: `AAManager` pré-carrega o script do Lumina quando `luminaToken` está configurado.
|
|
24
|
+
- **Waterfall programático**: Suporte a step `LUMINA_RV` no waterfall de rewarded video (junto com GAM_RV).
|
|
25
|
+
- **ExternalJsLoader**: método `loadLuminaScript` e interface `LuminaScriptConfig`.
|
|
26
|
+
|
|
27
|
+
### Tipo de mídia external_redirect
|
|
28
|
+
|
|
29
|
+
- **Novo tipo de mídia `external_redirect`**: Redirecionamento externo sem interface própria; o SDK retorna resultado e o cliente implementa o redirecionamento.
|
|
30
|
+
- **AAExternalRedirect**: Módulo que trata o tipo `external_redirect`; envia apenas evento de clique (sem impressão), retorna `AAMediaPlayResult.EXTERNAL_REDIRECT`.
|
|
31
|
+
- **Dois formatos de conteúdo**: Suporte a `content.externalRedirect` (novo) e campos em `content` (compatibilidade).
|
|
32
|
+
|
|
33
|
+
### proxyExternalScripts
|
|
34
|
+
|
|
35
|
+
- **`proxyExternalScripts` em `SDKConfig`**: Nova opção para carregar scripts externos (GPT, IMA, Lumina) via proxy quando necessário.
|
|
36
|
+
- **ExternalJsLoader**: Suporte a carregamento via proxy nos scripts externos.
|
|
37
|
+
|
|
38
|
+
### Documentação
|
|
39
|
+
|
|
40
|
+
- README atualizado: estrutura do projeto, remoção de APIs inexistentes (webViewBridge, loadAd, etc.), `SDKConfig` alinhado ao código.
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## [Versões anteriores]
|
|
45
|
+
|
|
46
|
+
Para histórico de versões anteriores a 3.7.1, consulte as tags e releases no repositório.
|
package/README.md
CHANGED
|
@@ -7,7 +7,6 @@ SDK JavaScript para o AdServer Akross Artemis - Carregamento de banners e mídia
|
|
|
7
7
|
- **TypeScript Vanilla**: Sem dependências de frameworks
|
|
8
8
|
- **Múltiplos Builds**: UMD (NPM), IIFE (CDN) e ESM (sites modernos)
|
|
9
9
|
- **API Global**: `window.AkrossAds` para uso em Flutter Web/WebView
|
|
10
|
-
- **WebView Bridge**: Comunicação automática via `window.Akross.postMessage`
|
|
11
10
|
- **Banner Loader**: Carregamento otimizado de banners com fit inteligente
|
|
12
11
|
- **Sample Interativa**: Interface web para testes locais
|
|
13
12
|
|
|
@@ -24,16 +23,18 @@ npm install @akross/artemis-ads-sdk
|
|
|
24
23
|
```javascript
|
|
25
24
|
import { init, ArtemisAdsBannerLoader } from '@akross/artemis-ads-sdk';
|
|
26
25
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
26
|
+
const SDK_CONFIG = {
|
|
27
|
+
baseUrl: 'https://ads.timfun.com.br/adserver/',
|
|
28
|
+
debug: true,
|
|
29
|
+
timeout: 10000,
|
|
30
|
+
appId: 'com.example.myapp', // ID da aplicação (equivalente ao package name do Android)
|
|
31
|
+
appVersion: '1.0.0', // Versão da aplicação
|
|
32
|
+
artemisAdsAppId: 'akross-app-123', // ID do app Artemis Ads
|
|
33
|
+
primaryColor: '#ff0000', // Cor primária do projeto (formato hexadecimal)
|
|
34
|
+
luminaToken: 'QQDCYMdFh2AJqwP' // Token do Lumina SDK (opcional - usa valor padrão se não fornecido)
|
|
33
35
|
};
|
|
34
36
|
|
|
35
|
-
|
|
36
|
-
const sdk = await init(sdkConfig);
|
|
37
|
+
const sdk = await init(SDK_CONFIG);
|
|
37
38
|
```
|
|
38
39
|
|
|
39
40
|
### Carregamento de Banner
|
|
@@ -114,22 +115,23 @@ export default function BannerAd({ zoneId }) {
|
|
|
114
115
|
```html
|
|
115
116
|
<script src="https://cdn.akross.com/sdk/akross-ads-sdk.iife.js"></script>
|
|
116
117
|
<script>
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
118
|
+
(async function() {
|
|
119
|
+
const SDK_CONFIG = {
|
|
120
|
+
baseUrl: 'https://ads.timfun.com.br/adserver/',
|
|
121
|
+
debug: true,
|
|
122
|
+
timeout: 10000,
|
|
123
|
+
appId: 'com.example.myapp',
|
|
124
|
+
appVersion: '1.0.0',
|
|
125
|
+
artemisAdsAppId: 'akross-app-123',
|
|
126
|
+
primaryColor: '#ff0000',
|
|
127
|
+
luminaToken: 'QQDCYMdFh2AJqwP'
|
|
128
|
+
};
|
|
129
|
+
const sdk = await window.AkrossAds.init(SDK_CONFIG);
|
|
130
|
+
|
|
131
|
+
// Banner: usar ArtemisAdsBannerLoader
|
|
132
|
+
const bannerLoader = new window.AkrossAds.ArtemisAdsBannerLoader('#ad-container');
|
|
133
|
+
await bannerLoader.loadZone('sua-zone-id');
|
|
134
|
+
})();
|
|
133
135
|
</script>
|
|
134
136
|
```
|
|
135
137
|
|
|
@@ -138,12 +140,18 @@ export default function BannerAd({ zoneId }) {
|
|
|
138
140
|
```javascript
|
|
139
141
|
import { init } from '@akross/artemis-ads-sdk';
|
|
140
142
|
|
|
141
|
-
const
|
|
142
|
-
baseUrl: 'https://
|
|
143
|
-
debug: true
|
|
144
|
-
|
|
143
|
+
const SDK_CONFIG = {
|
|
144
|
+
baseUrl: 'https://ads.timfun.com.br/adserver/',
|
|
145
|
+
debug: true,
|
|
146
|
+
timeout: 10000,
|
|
147
|
+
appId: 'com.example.myapp',
|
|
148
|
+
appVersion: '1.0.0',
|
|
149
|
+
artemisAdsAppId: 'akross-app-123',
|
|
150
|
+
primaryColor: '#ff0000',
|
|
151
|
+
luminaToken: 'QQDCYMdFh2AJqwP'
|
|
152
|
+
};
|
|
145
153
|
|
|
146
|
-
|
|
154
|
+
const sdk = await init(SDK_CONFIG);
|
|
147
155
|
```
|
|
148
156
|
|
|
149
157
|
### Via CommonJS/UMD
|
|
@@ -151,9 +159,18 @@ const sdk = init({
|
|
|
151
159
|
```javascript
|
|
152
160
|
const { init } = require('@akross/artemis-ads-sdk');
|
|
153
161
|
|
|
154
|
-
const
|
|
155
|
-
baseUrl: 'https://
|
|
156
|
-
|
|
162
|
+
const SDK_CONFIG = {
|
|
163
|
+
baseUrl: 'https://ads.timfun.com.br/adserver/',
|
|
164
|
+
debug: true,
|
|
165
|
+
timeout: 10000,
|
|
166
|
+
appId: 'com.example.myapp',
|
|
167
|
+
appVersion: '1.0.0',
|
|
168
|
+
artemisAdsAppId: 'akross-app-123',
|
|
169
|
+
primaryColor: '#ff0000',
|
|
170
|
+
luminaToken: 'QQDCYMdFh2AJqwP'
|
|
171
|
+
};
|
|
172
|
+
|
|
173
|
+
const sdk = await init(SDK_CONFIG);
|
|
157
174
|
```
|
|
158
175
|
|
|
159
176
|
## 📚 API Reference
|
|
@@ -190,66 +207,77 @@ interface ArtemisAdsBannerLoaderClickListener {
|
|
|
190
207
|
#### Inicialização
|
|
191
208
|
|
|
192
209
|
```javascript
|
|
193
|
-
const
|
|
194
|
-
baseUrl: 'https://
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
210
|
+
const SDK_CONFIG = {
|
|
211
|
+
baseUrl: 'https://ads.timfun.com.br/adserver/',
|
|
212
|
+
debug: true,
|
|
213
|
+
timeout: 10000,
|
|
214
|
+
appId: 'com.example.myapp', // ID da aplicação (equivalente ao package name do Android)
|
|
215
|
+
appVersion: '1.0.0', // Versão da aplicação
|
|
216
|
+
artemisAdsAppId: 'akross-app-123', // ID do app Artemis Ads
|
|
217
|
+
primaryColor: '#ff0000', // Cor primária do projeto (formato hexadecimal)
|
|
218
|
+
luminaToken: 'QQDCYMdFh2AJqwP' // Token do Lumina SDK (opcional - usa valor padrão se não fornecido)
|
|
219
|
+
};
|
|
220
|
+
|
|
221
|
+
const sdk = await window.AkrossAds.init(SDK_CONFIG);
|
|
202
222
|
```
|
|
203
223
|
|
|
204
|
-
####
|
|
224
|
+
#### Campanhas e Banner
|
|
205
225
|
|
|
206
226
|
```javascript
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
});
|
|
227
|
+
// Solicitar campanhas por zone
|
|
228
|
+
const response = await sdk.requestCampaign('sua-zone-id', 1);
|
|
229
|
+
|
|
230
|
+
// Banner: usar ArtemisAdsBannerLoader
|
|
231
|
+
const bannerLoader = new window.AkrossAds.ArtemisAdsBannerLoader('#container');
|
|
232
|
+
await bannerLoader.loadZone('sua-zone-id');
|
|
214
233
|
```
|
|
215
234
|
|
|
216
|
-
####
|
|
235
|
+
#### Rewarded Video e mídias
|
|
217
236
|
|
|
218
237
|
```javascript
|
|
219
|
-
//
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
238
|
+
// Mídias (VAST, programático, survey, etc.) são executadas via AAMedia.click()
|
|
239
|
+
// O fluxo típico: requestCampaign -> escolher mídia -> media.click()
|
|
240
|
+
const campaigns = await sdk.requestCampaign('zone-rv', 1);
|
|
241
|
+
const media = campaigns?.zones?.[0]?.campaigns?.[0]?.content;
|
|
242
|
+
if (media) {
|
|
243
|
+
const result = await media.click();
|
|
244
|
+
}
|
|
245
|
+
```
|
|
224
246
|
|
|
225
|
-
|
|
226
|
-
await adInstance.refresh();
|
|
247
|
+
## 🔧 Configuração
|
|
227
248
|
|
|
228
|
-
|
|
229
|
-
adInstance.destroy();
|
|
249
|
+
### Configuração do SDK
|
|
230
250
|
|
|
231
|
-
|
|
232
|
-
const activeAds = sdk.getActiveAds();
|
|
251
|
+
Exemplo de configuração (como no sample e na inicialização real):
|
|
233
252
|
|
|
234
|
-
|
|
235
|
-
|
|
253
|
+
```javascript
|
|
254
|
+
const SDK_CONFIG = {
|
|
255
|
+
baseUrl: 'https://ads.timfun.com.br/adserver/',
|
|
256
|
+
debug: true,
|
|
257
|
+
timeout: 10000,
|
|
258
|
+
appId: 'com.example.myapp', // ID da aplicação (equivalente ao package name do Android)
|
|
259
|
+
appVersion: '1.0.0', // Versão da aplicação
|
|
260
|
+
artemisAdsAppId: 'akross-app-123', // ID do app Artemis Ads
|
|
261
|
+
primaryColor: '#ff0000', // Cor primária do projeto (formato hexadecimal)
|
|
262
|
+
luminaToken: 'QQDCYMdFh2AJqwP', // Token do Lumina SDK (opcional - usa valor padrão se não fornecido)
|
|
263
|
+
proxyExternalScripts: false // Carregar scripts externos (GPT, IMA, Lumina) via proxy (opcional)
|
|
264
|
+
};
|
|
236
265
|
```
|
|
237
266
|
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
### Configuração do SDK
|
|
267
|
+
Interface TypeScript:
|
|
241
268
|
|
|
242
269
|
```typescript
|
|
243
270
|
interface SDKConfig {
|
|
244
271
|
baseUrl: string;
|
|
245
|
-
appId: string;
|
|
246
|
-
appVersion: string;
|
|
247
|
-
debug?: boolean;
|
|
248
272
|
timeout?: number;
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
273
|
+
debug?: boolean;
|
|
274
|
+
appId?: string;
|
|
275
|
+
appVersion?: string;
|
|
276
|
+
artemisAdsAppId?: string;
|
|
277
|
+
primaryColor?: string;
|
|
278
|
+
luminaToken?: string;
|
|
279
|
+
proxyExternalScripts?: boolean;
|
|
280
|
+
cdnBaseUrl?: string;
|
|
253
281
|
}
|
|
254
282
|
```
|
|
255
283
|
|
|
@@ -411,27 +439,6 @@ if (result.result === AAMediaPlayResult.EXTERNAL_REDIRECT) {
|
|
|
411
439
|
}
|
|
412
440
|
```
|
|
413
441
|
|
|
414
|
-
## 🌐 WebView Integration
|
|
415
|
-
|
|
416
|
-
O SDK detecta automaticamente quando está rodando em um WebView e configura o bridge de comunicação:
|
|
417
|
-
|
|
418
|
-
```javascript
|
|
419
|
-
// Verifica se está em WebView
|
|
420
|
-
if (sdk.isWebView()) {
|
|
421
|
-
console.log('Executando em WebView');
|
|
422
|
-
}
|
|
423
|
-
|
|
424
|
-
// Obtém informações do WebView
|
|
425
|
-
const webViewInfo = sdk.getWebViewInfo();
|
|
426
|
-
console.log(webViewInfo);
|
|
427
|
-
|
|
428
|
-
// Envia mensagem para o WebView
|
|
429
|
-
sdk.sendToWebView('ad_click', {
|
|
430
|
-
adId: 'my-ad',
|
|
431
|
-
timestamp: Date.now()
|
|
432
|
-
});
|
|
433
|
-
```
|
|
434
|
-
|
|
435
442
|
## 🏗️ Builds Disponíveis
|
|
436
443
|
|
|
437
444
|
### 📦 Formatos de Build
|
|
@@ -566,14 +573,15 @@ sample/
|
|
|
566
573
|
O sample usa configurações padrão que podem ser alteradas em `demo.js`:
|
|
567
574
|
|
|
568
575
|
```javascript
|
|
569
|
-
const
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
576
|
+
const SDK_CONFIG = {
|
|
577
|
+
baseUrl: 'https://ads.timfun.com.br/adserver/',
|
|
578
|
+
debug: true,
|
|
579
|
+
timeout: 10000,
|
|
580
|
+
appId: 'com.example.myapp', // ID da aplicação (equivalente ao package name do Android)
|
|
581
|
+
appVersion: '1.0.0', // Versão da aplicação
|
|
582
|
+
artemisAdsAppId: 'akross-app-123', // ID do app Artemis Ads
|
|
583
|
+
primaryColor: '#ff0000', // Cor primária do projeto (formato hexadecimal)
|
|
584
|
+
luminaToken: 'QQDCYMdFh2AJqwP' // Token do Lumina SDK (opcional - usa valor padrão se não fornecido)
|
|
577
585
|
};
|
|
578
586
|
```
|
|
579
587
|
|
|
@@ -636,22 +644,6 @@ npm run publish:major
|
|
|
636
644
|
npm pack
|
|
637
645
|
```
|
|
638
646
|
|
|
639
|
-
## 🔄 WebView Bridge
|
|
640
|
-
|
|
641
|
-
O SDK implementa comunicação bidirecional com WebView:
|
|
642
|
-
|
|
643
|
-
### Mensagens Enviadas para WebView:
|
|
644
|
-
- `ad_request` - Requisição de anúncio
|
|
645
|
-
- `ad_response` - Resposta do anúncio
|
|
646
|
-
- `ad_error` - Erro no carregamento
|
|
647
|
-
- `ad_click` - Clique no anúncio
|
|
648
|
-
- `ad_impression` - Impressão do anúncio
|
|
649
|
-
|
|
650
|
-
### Mensagens Recebidas do WebView:
|
|
651
|
-
- `ad_request` - Solicitação de anúncio
|
|
652
|
-
- `ad_error` - Erro reportado
|
|
653
|
-
- `ad_click` - Clique reportado
|
|
654
|
-
|
|
655
647
|
## 🛠️ Estrutura do Projeto
|
|
656
648
|
|
|
657
649
|
### 📁 Estrutura Principal
|
|
@@ -660,24 +652,29 @@ O SDK implementa comunicação bidirecional com WebView:
|
|
|
660
652
|
src/
|
|
661
653
|
├── ads-core/ # Core do sistema de anúncios
|
|
662
654
|
│ ├── AdsManager.ts # Gerenciador principal de anúncios
|
|
663
|
-
│ ├──
|
|
664
|
-
│ │ ├── ApiFactory.ts # Factory para APIs
|
|
665
|
-
│ │ ├── ServicesAds.ts # Serviços de anúncios
|
|
666
|
-
│ │ └── interceptor/ # Interceptadores HTTP
|
|
655
|
+
│ ├── index.ts
|
|
667
656
|
│ └── util/ # Utilitários do core
|
|
668
|
-
│
|
|
657
|
+
│ ├── AADeviceContextHelper.ts
|
|
658
|
+
│ └── index.ts
|
|
669
659
|
├── core/
|
|
670
|
-
│
|
|
660
|
+
│ ├── AAManager.ts # Gerenciador principal do SDK
|
|
661
|
+
│ └── network/ # Camada de rede
|
|
662
|
+
│ ├── ApiFactory.ts # Factory para APIs
|
|
663
|
+
│ ├── ServicesAds.ts # Serviços de anúncios
|
|
664
|
+
│ └── interceptor/ # Interceptadores HTTP
|
|
671
665
|
├── events/
|
|
672
666
|
│ └── AAEventsCallbackHelper.ts # Helper para eventos
|
|
673
667
|
├── modules/ # Módulos específicos
|
|
674
668
|
│ ├── image/ # Banner Loader
|
|
675
669
|
│ │ └── ArtemisAdsBannerLoader.ts
|
|
676
670
|
│ ├── rv/ # Rewarded Video
|
|
677
|
-
│ │ ├── programmatic/ # Anúncios programáticos
|
|
671
|
+
│ │ ├── programmatic/ # Anúncios programáticos (waterfall)
|
|
678
672
|
│ │ │ ├── AARewardedVideo.ts
|
|
679
|
-
│ │ │
|
|
680
|
-
│ │
|
|
673
|
+
│ │ │ ├── GAMRewardedVideoWrapper.ts
|
|
674
|
+
│ │ │ ├── LuminaRewardedVideoWrapper.ts # Kwai Lumina RV
|
|
675
|
+
│ │ │ └── utils/
|
|
676
|
+
│ │ │ └── WaterfallResultHelper.ts
|
|
677
|
+
│ │ └── vast/ # Player VAST
|
|
681
678
|
│ │ ├── AAVastPlayer.ts
|
|
682
679
|
│ │ └── AAVastPlayerUI.ts
|
|
683
680
|
│ ├── poll/ # Survey V2
|
|
@@ -692,9 +689,13 @@ src/
|
|
|
692
689
|
│ └── ... (outros modelos)
|
|
693
690
|
├── utils/ # Utilitários gerais
|
|
694
691
|
│ ├── AAMediaResultHelper.ts # Helper para resultados
|
|
695
|
-
│ ├──
|
|
692
|
+
│ ├── DeviceUtil.ts
|
|
693
|
+
│ ├── ExternalJsLoader.ts # Carregamento de scripts (GPT, IMA, Lumina)
|
|
694
|
+
│ ├── GlobalLoadingOverlay.ts
|
|
696
695
|
│ ├── logger.ts # Sistema de logging
|
|
697
|
-
│
|
|
696
|
+
│ ├── PreferencesUtil.ts
|
|
697
|
+
│ ├── version.ts
|
|
698
|
+
│ └── index.ts
|
|
698
699
|
└── index.ts # Ponto de entrada principal
|
|
699
700
|
```
|
|
700
701
|
|
|
@@ -760,10 +761,13 @@ interface SDKConfig {
|
|
|
760
761
|
baseUrl: string;
|
|
761
762
|
timeout?: number;
|
|
762
763
|
debug?: boolean;
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
764
|
+
appId?: string;
|
|
765
|
+
appVersion?: string;
|
|
766
|
+
artemisAdsAppId?: string;
|
|
767
|
+
primaryColor?: string;
|
|
768
|
+
luminaToken?: string;
|
|
769
|
+
proxyExternalScripts?: boolean;
|
|
770
|
+
cdnBaseUrl?: string;
|
|
767
771
|
}
|
|
768
772
|
```
|
|
769
773
|
|