Acessando Arrays usando o Google Tag Manager

Você pode precisar acessar valores de um Array no Google Tag Manager


Autor: Réulison Silva Publicado em: Fevereiro 23, 2023

Em JavaScript, se você quiser acessar um valor em um Array, use colchetes para recuperar o valor armazenado em um índice específico. Os índices são numerados em ordem, com o primeiro índice sempre será zero (0). Isso significa que para obter o primeiro valor armazenado no Array reulison, você usaria:

var PrimeiroValor = reulison[0];

No Google Tag Manager, você pode inserir Arrays no Data Layer . No entanto, o campo do Data Layer Variable (Variável da Camada de Dados) que você usa para recuperar valores armazenados no próprio Data Layer, não oferece suporte aos colchetes mencionados acima. Em vez disso, você precisa usar um formato especial para acessar os valores em um Array.

dataLayer.push({
    'Array' : [{'nome' : 'produto1'}, {'nome' : 'produto2'}, {'nome' : 'produto3'}]
})

Acessando a variável do dataLayer:

Método Variável
Array.0.nome produto1
Array.1.nome produto2
Array.2.nome produto3

Para acessar os Arrays armazenados na Camada de Dados, você precisa usar uma notação de ponto no campo Variável da Camada de Dados. A notação de colchetes não é suportada. O número do índice começa em 0.

Esta é uma dica simples. Basta substituir os colchetes que você usaria no JavaScript por pontos. Assim, o clássico JavaScript Array[0].nome torna-se Array.0.nome no Gerenciador de tags do Google.

Observe que isso também significa que você também não pode usar a notação de colchetes para acessar as propriedades literais do objeto. Você precisa usar a notação de ponto o tempo todo.

Um exemplo prático está no rastreamento de comércio eletrônico. Para obter o SKU do primeiro produto em um objeto ecommerce.purchase (Enhanced Ecommerce), você escreveria assim no Data Layer Variable:

ecommerce.purchase.products.0.id

Isso recupera o valor armazenado na chave de id do primeiro produto no Array products do objeto purchase de comércio eletrônico avançado.

Aviso na coleta