Visão geral
O Google Analytics introduziu um novo formato de cookie (v2) em seu Cookie Stream Cookie, que altera a estrutura dos dados de rastreamento. Este guia explica as diferenças entre o antigo formato GS1 e o novo formato GS2 e demonstra como analisar ambas as versões.
Por que o Google mudou o formato dos cookies?
A transição do Google do formato de cookie GS1 para GS2 não foi arbitrária. Aqui estão vários motivos estratégicos por trás dessa mudança:
1. Extensibilidade aprimorada
O novo formato com prefixos de uma única letra permite que o Google adicione facilmente novos parâmetros de rastreamento sem interromper as implementações existentes. Com o formato posicional fixo do GS1, adicionar novos parâmetros exigiria a atualização de todos os analisadores para lidar com posições adicionais.
2. Estrutura de autodocumentação
O sistema de prefixo torna os cookies mais legíveis e depuráveis. Em vez de lembrar que a posição 5 é “lastHitTimestamp”, os desenvolvedores podem ver t1746825440e entender o que trepresenta.
3. Controle de versão
O prefixo GS2 explícito permite ao Google:
- Acompanhe qual versão do formato está sendo usada
- Potencialmente introduzir GS3, GS4, etc. no futuro
- Manter compatibilidade com versões anteriores durante as transições
Acompanhe qual versão do formato está sendo usadaPotencialmente introduzir GS3, GS4, etc. no futuroManter compatibilidade com versões anteriores durante as transições
4. Otimização de dados
O sistema de prefixo e separador de cifrão pode ser mais eficiente:
- Valores vazios podem ser omitidos completamente (não há necessidade de pontos consecutivos)
- Os parâmetros podem aparecer em qualquer ordem
- Parâmetros opcionais não requerem posições de espaço reservado
5. Melhor tratamento de erros
Com valores prefixados, os analisadores podem:
- Ignorar prefixos desconhecidos sem quebrar
- Lidar com parâmetros ausentes com elegância
- Valide os dados de forma mais eficaz
6. Alinhamento com os Padrões Modernos
A abordagem do par chave-valor (prefixo + valor) se alinha melhor com:
- Estruturas semelhantes a JSON
- Formatos de parâmetros de URL
- Padrões modernos de serialização de dados
7. Alinhar com outros cookies do Google
Essas atualizações de formato não se limitam ao Google Analytics. O Google atualiza sistematicamente diversos mecanismos de rastreamento para:
O Google também atualizou recentemente vários outros formatos de cookies, com destaque para o cookie Google Click ID (gclid). Essas mudanças seguem um padrão semelhante de modernização:
Essa evolução reflete a necessidade do Google por um sistema de rastreamento mais flexível e sustentável, à medida que o Google Analytics continua a evoluir e adicionar novos recursos.
Traqueamento News
Formato antigo (GS1)
O formato original do cookie do Google Analytics usa uma estrutura simples separada por pontos:
GS1.1.1746825440.14.0.17468254406.0.0.295082955
Características:
- Usa pontos (.) como separadores em todo o texto
- Começa com “GS1” (Google Stream versão 1)
- Os valores estão em posições fixas sem prefixos
- Cada posição tem um significado específico
Análise da estrutura:

Novo Formato (GS2)
O Google Analytics fez a transição para um formato de cookie mais flexível que usa valores prefixados:
GS2.1.s1746825440$o14$g0$t1746825440$j60$l0$h295082955
Características:
- Usa cifrões (
$) como separadores após o cabeçalho - Começa com “GS2” (Google Stream versão 2)
- Cada valor tem um identificador de prefixo de uma única letra
- Formato mais extensível e autodocumentado
Análise da estrutura:

Significados do prefixo:
s– ID da sessãoo– Número da Sessãog– Sessão engajadat– Último registro de data e horaj– Temporizador de entradal– Estado de login do ID do usuário aprimoradoh– ID de usuário aprimorada (hash)d– ID de adesão (não presente neste exemplo, aparece em alguns cookies)
Implementação completa do analisador
Criei um analisador universal que lida com ambos os formatos de cookies do Google Analytics. Este analisador é baseado no meu trabalho anterior, que originalmente lidava apenas com o formato GS1, e agora o adaptei para detectar e analisar automaticamente as versões GS1 e GS2.
O analisador fornece:
- Detecção automática de formato (GS1 vs GS2)
- Estrutura de saída consistente, independentemente do formato de entrada
- Suporte de codificação de URL para cifrões (
%24) - Tratamento de fallback para valores ausentes
Estou fornecendo versões ES6 e ES5 para garantir compatibilidade entre diferentes ambientes JavaScript:
Versão ES6 (JavaScript moderno)
const parseGoogleStreamCookie = str => {
const mapping = {
s: "sessionId",
o: "sessionNumber",
g: "sessionEngaged",
t: "lastHitTimestamp",
j: "joinTimer",
l: "enhancedUserIdLoggedInState",
h: "enhancedUserId",
d: "joinId"
};
const [version, , data, ...rest] = str.split('.');
const keys = ['s', 'o', 'g', 't', 'j', 'l', 'h', 'd'];
if (version === 'GS1') {
return Object.fromEntries(
keys.map((k, i) => [mapping[k], [data, ...rest][i] || ''])
);
}
return Object.fromEntries(
data.replace(/%24/g, '$')
.split('$')
.map(s => [mapping[s[0]] || s[0], decodeURIComponent(s.slice(1))])
);
};
Versão ES5 (suporte a navegadores legados/GTM)
function parseGoogleStreamCookie(str) {
var mapping = {
s: "sessionId",
o: "sessionNumber",
g: "sessionEngaged",
t: "lastHitTimestamp",
j: "joinTimer",
l: "enhancedUserIdLoggedInState",
h: "enhancedUserId",
d: "joinId"
};
var parts = str.split('.');
var version = parts[0];
var result = {};
var entries = [];
if (version === 'GS1') {
// GS1: Create entries from positional values
var values = parts.slice(2);
var keys = ['s', 'o', 'g', 't', 'j', 'l', 'h', 'd'];
for (var i = 0; i < keys.length; i++) {
entries.push([mapping[keys[i]], values[i] || '']);
}
} else {
// GS2: Create entries from prefixed values
var segments = parts[2].replace(/%24/g, '$').split('$');
for (var j = 0; j < segments.length; j++) {
var prefix = segments[j][0];
var value = decodeURIComponent(segments[j].slice(1));
entries.push([mapping[prefix] || prefix, value]);
}
}
// Build result object from entries
for (var k = 0; k < entries.length; k++) {
result[entries[k][0]] = entries[k][1];
}
return result;
}
Traqueamento News
Sinta-se à vontade para usar qualquer versão com base nos requisitos do seu projeto.
O analisador retornará uma estrutura de objeto consistente com nomes de propriedades descritivos, facilitando o trabalho com dados de cookies do Google Analytics em seus aplicativos.
Também siga o Mundo do Traqueamento em outras redes sociais:
Inscreva-se no https://www.youtube.com/channel/UC6mX6bbcEmQoaznI0D7Aw5Q
Siga e curta no https://www.instagram.com/mundodotraqueamento/
Siga e comente no https://twitter.com/traqueamento
Siga também no https://www.linkedin.com/company/mundo-do-traqueamento




