Colisões de hash

A Adobe considera valores prop e eVar como cadeias de caracteres, mesmo se o valor for um número. As cadeias de caracteres podem conter centenas de caracteres ou ser bem curtas. Para economizar espaço, melhorar o desempenho e garantir que tudo esteja dimensionado de maneira uniforme, as cadeias de caracteres não são usadas diretamente no processamento. Em vez disso, um hash de 32 bits ou 64 bits é calculado para cada valor. Todos os relatórios são executados nesses valores com hash, onde cada hash é substituído pelo texto original. Os hash aumentam drasticamente o desempenho dos relatórios do Analytics.

Para a maioria dos campos, a cadeia de caracteres é convertida inteiramente em letras minúsculas (reduzindo o número de valores únicos). Os valores são atribuídos a hashes mensalmente (na primeira vez que são vistos em cada mês). A cada mês, há uma pequena possibilidade de dois valores de variável exclusivos serem atribuídos ao mesmo valor. Isso é conhecido como colisão de hash.

As colisões de hash aparecem nos relatórios da seguinte maneira:

  • Se você estiver analisando as tendências de valores e observar um pico em cada mês, é provável que seja porque outros valores para aquela variável foram atribuídos a um hash com o mesmo valor sendo observado.
  • O mesmo ocorre para segmentos de um valor específico.

Exemplo de colisão de hash

A probabilidade de colisões de hash aumenta de acordo com o número de valores únicos em uma dimensão. Por exemplo, um dos valores que chegam no final do mês poderia ter o mesmo valor de hash que um valor recebido no início do mês. O exemplo a seguir pode ajudar na compreensão de como esse segmento causa as alterações nos resultados. Suponhamos que a eVar62 recebeu "valor 100" em 18 de fevereiro. O Analytics manterá uma tabela parecida com a seguinte:

Valor da cadeia de caracteres eVar62 Hash

Valor 99

111

Valor 100

123

Valor 101

222

Se você criar um segmento que procura por visitas onde eVar62="valor 500", o Analytics determina se "valor 500" contém um hash. Já que o "valor 500" não existe, nenhuma visita é retornada pelo Analytics. Em seguida, em 23 de fevereiro, o eVar62 recebeu o "valor 500", cujo hash também é 123. A tabela terá a seguinte aparência:

Valor da cadeia de caracteres eVar62 Hash

Valor 99

111

Valor 100

123

Valor 101

222

Valor 500

123

Quando o mesmo segmento é executado novamente, ele procura pelo hash de "valor 500", encontra 123, e o relatório retorna todas as visitas que contêm o hash 123. Agora, as visitas que ocorreram em 18 de fevereiro serão incluídas nos resultados.

Essa situação pode causar problemas ao usar o Analytics. A Adobe continua procurando por soluções que para reduzir a probabilidade das colisões de hash no futuro. Para evitar essa situação sugerimos que você encontre maneiras de espalhar os valores exclusivos entre as variáveis, remova valores desnecessários com regras de processamento ou reduza o número de valores por variável.

Nesta página