@akross/artemis-ads-sdk 3.7.9 → 3.7.11
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 +30 -0
- package/README.md +31 -3
- 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 +1 -0
- package/dist/core/AAManager.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/types/models/UserDataCache.d.ts +1 -0
- package/dist/types/models/UserDataCache.d.ts.map +1 -1
- package/dist/utils/GPTPublisherProvidedId.d.ts +3 -1
- package/dist/utils/GPTPublisherProvidedId.d.ts.map +1 -1
- package/dist/utils/PreferencesUtil.d.ts +1 -1
- package/dist/utils/PreferencesUtil.d.ts.map +1 -1
- package/dist/utils/index.d.ts +2 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/sha256.d.ts +2 -0
- package/dist/utils/sha256.d.ts.map +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,36 @@ Todas as mudanças notáveis do projeto são documentadas neste arquivo.
|
|
|
5
5
|
O formato é baseado em [Keep a Changelog](https://keepachangelog.com/pt-BR/1.0.0/),
|
|
6
6
|
e este projeto adere ao [Versionamento Semântico](https://semver.org/lang/pt-BR/).
|
|
7
7
|
|
|
8
|
+
## [3.7.11] - 2026-04-27
|
|
9
|
+
|
|
10
|
+
### Alterado
|
|
11
|
+
|
|
12
|
+
- **IMA SDK — `VpaidMode` padrão alterado de `ENABLED` para `INSECURE`** (`src/modules/rv/vast/AAVastPlayer.ts`): criativos VPAID agora rodam no mesmo contexto da página em vez de em iframe cross-domain. Removendo o sandbox tipo SafeFrame, os criativos passam a ter acesso ao `window` da página host. Aplica-se apenas a anúncios VPAID — VAST linear simples (MP4 direto) não é afetado. O hook `imaConfig` em `AAVastPlayerConfig` continua disponível para sobrescrever esse default por integração, embora atualmente nenhum call site passe configuração customizada.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## [3.7.10] - 2026-04-10
|
|
17
|
+
|
|
18
|
+
### Corrigido
|
|
19
|
+
|
|
20
|
+
- **PPID não aparecia nos relatórios do Google Ad Manager**: O `userId` era enviado como PPID diretamente ao GPT, mas o Google Ad Manager exige PPIDs com 32–150 caracteres. Como a maioria dos userIds internos tem menos de 32 chars, o GAM descartava silenciosamente o valor — sem erro, mas sem efeito em frequency capping, segmentação ou relatórios. Agora o SDK deriva o PPID via SHA-256 do userId (hex de 64 chars), garantindo conformidade com a faixa exigida.
|
|
21
|
+
- **`saveConfig` persistia config sem defaults**: `AAManager.initialize` salvava o objeto de config original no localStorage em vez do objeto com defaults aplicados (`ConfigUtils.applyDefaults`). Campos como `timeout`, `proxyExternalScripts` e `enableGPTPpid` não ficavam persistidos quando o publisher não os setava explicitamente.
|
|
22
|
+
|
|
23
|
+
### Adicionado
|
|
24
|
+
|
|
25
|
+
- **SHA-256 puro-JS** (`src/utils/sha256.ts`): Implementação síncrona sem dependência de `crypto.subtle`, permitindo uso em ambientes HTTP (não apenas HTTPS). Validada contra vetores FIPS 180-4.
|
|
26
|
+
- **`sdk.setPublisherProvidedId(ppid)`**: Escape hatch para publishers que já possuem um PPID canônico de 32–150 chars e preferem não usar o hash automático do SDK. Requer `enableGPTPpid: true`.
|
|
27
|
+
- **Restauração de PPID no boot**: Ao inicializar o SDK com um userId já persistido de sessão anterior, o PPID é derivado e enviado ao GPT automaticamente — sem necessidade de nova chamada a `setUserId`.
|
|
28
|
+
- **Logs de diagnóstico no fluxo de PPID**: `catch` silenciosos substituídos por `logger.warn` / `logger.debug`, facilitando troubleshooting em ambientes com `debug: true`.
|
|
29
|
+
|
|
30
|
+
### Alterado
|
|
31
|
+
|
|
32
|
+
- **Validação de PPID**: Limite mínimo de tamanho ajustado de 1 para 32 caracteres, alinhado à exigência real do Google Ad Manager.
|
|
33
|
+
- **`GPTPublisherProvidedId.ts`**: Toda a lógica de derivação, persistência e envio de PPID centralizada neste utilitário. `AAManager` ficou como fachada fina, sem lógica de PPID.
|
|
34
|
+
- **`UserDataCache`**: Novo campo opcional `ppid` para persistir o PPID derivado entre sessões. Retrocompatível — caches legados sem o campo são migrados automaticamente no primeiro boot.
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
8
38
|
## [3.7.9] - 2026-03-12
|
|
9
39
|
|
|
10
40
|
### Corrigido
|
package/README.md
CHANGED
|
@@ -245,6 +245,32 @@ if (media) {
|
|
|
245
245
|
}
|
|
246
246
|
```
|
|
247
247
|
|
|
248
|
+
### Publisher Provided ID (PPID)
|
|
249
|
+
|
|
250
|
+
Quando `enableGPTPpid: true`, o SDK envia automaticamente um PPID ao Google Ad Manager via GPT para frequency capping, segmentação de audiência e targeting.
|
|
251
|
+
|
|
252
|
+
O Google Ad Manager exige PPIDs com **32–150 caracteres**. Como userIds internos geralmente não atingem 32 chars, o SDK deriva o PPID via **SHA-256 do userId** (hex de 64 chars), garantindo conformidade. O hash é determinístico: o mesmo userId sempre gera o mesmo PPID, preservando frequency capping entre sessões.
|
|
253
|
+
|
|
254
|
+
```javascript
|
|
255
|
+
// Uso automático — basta ligar enableGPTPpid na config
|
|
256
|
+
const sdk = await init({
|
|
257
|
+
baseUrl: 'https://ads.timfun.com.br/adserver/',
|
|
258
|
+
enableGPTPpid: true,
|
|
259
|
+
// ...
|
|
260
|
+
});
|
|
261
|
+
|
|
262
|
+
await sdk.setUserId('user_12345');
|
|
263
|
+
// PPID derivado automaticamente: SHA-256("user_12345") = "d04c992200c84b44..."
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
Se você já possui um PPID canônico de 32–150 chars, use o escape hatch:
|
|
267
|
+
|
|
268
|
+
```javascript
|
|
269
|
+
sdk.setPublisherProvidedId('seu-ppid-canonico-com-32-ou-mais-chars');
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
O PPID também é restaurado automaticamente entre sessões: se o userId já está persistido e `enableGPTPpid` está ligado, o SDK aplica o PPID no GPT durante o `initialize()`, sem necessidade de chamar `setUserId` novamente.
|
|
273
|
+
|
|
248
274
|
## 🔧 Configuração
|
|
249
275
|
|
|
250
276
|
### Configuração do SDK
|
|
@@ -262,7 +288,7 @@ const SDK_CONFIG = {
|
|
|
262
288
|
primaryColor: '#ff0000', // Cor primária do projeto (formato hexadecimal)
|
|
263
289
|
luminaToken: 'QQDCYMdFh2AJqwP', // Token do Lumina SDK (opcional - usa valor padrão se não fornecido)
|
|
264
290
|
proxyExternalScripts: false, // Carregar scripts externos (GPT, IMA, Lumina) via proxy (opcional)
|
|
265
|
-
enableGPTPpid:
|
|
291
|
+
enableGPTPpid: true // Enviar SHA-256 do userId como PPID para Google Ads via GPT (opcional)
|
|
266
292
|
};
|
|
267
293
|
```
|
|
268
294
|
|
|
@@ -279,7 +305,7 @@ interface SDKConfig {
|
|
|
279
305
|
primaryColor?: string;
|
|
280
306
|
luminaToken?: string;
|
|
281
307
|
proxyExternalScripts?: boolean;
|
|
282
|
-
enableGPTPpid?: boolean; //
|
|
308
|
+
enableGPTPpid?: boolean; // Envia SHA-256 do userId como PPID para Google Ads via GPT
|
|
283
309
|
cdnBaseUrl?: string;
|
|
284
310
|
}
|
|
285
311
|
```
|
|
@@ -696,8 +722,10 @@ src/
|
|
|
696
722
|
│ ├── DeviceUtil.ts
|
|
697
723
|
│ ├── ExternalJsLoader.ts # Carregamento de scripts (GPT, IMA, Lumina)
|
|
698
724
|
│ ├── GlobalLoadingOverlay.ts
|
|
725
|
+
│ ├── GPTPublisherProvidedId.ts # PPID: derivação, persistência e envio ao GPT
|
|
699
726
|
│ ├── logger.ts # Sistema de logging
|
|
700
727
|
│ ├── PreferencesUtil.ts
|
|
728
|
+
│ ├── sha256.ts # SHA-256 puro-JS (para derivação de PPID)
|
|
701
729
|
│ ├── version.ts
|
|
702
730
|
│ └── index.ts
|
|
703
731
|
└── index.ts # Ponto de entrada principal
|
|
@@ -771,7 +799,7 @@ interface SDKConfig {
|
|
|
771
799
|
primaryColor?: string;
|
|
772
800
|
luminaToken?: string;
|
|
773
801
|
proxyExternalScripts?: boolean;
|
|
774
|
-
enableGPTPpid?: boolean; //
|
|
802
|
+
enableGPTPpid?: boolean; // Envia SHA-256 do userId como PPID para Google Ads via GPT
|
|
775
803
|
cdnBaseUrl?: string;
|
|
776
804
|
}
|
|
777
805
|
```
|