tl()
com Activity MapVocê pode usar o método tl()
para rastrear elementos personalizados e configurar a renderização de sobreposição para o conteúdo dinâmico.
Usar o tl()
método como parte do módulo AppMeasurement do Activity Map permite rastrear qualquer objeto clicado, até mesmo objetos que não são tags de âncora ou elementos de imagem. Usando tl()
, você pode rastrear todos os elementos personalizados que não resultam em um carregamento da página.
No método tl()
, o parâmetro linkName
é atualmente usado para identificar links de saída, links personalizados, etc. Ele também é usado para identificar a ID do link para a variável do Activity Map.
s.tl([Link object],[Link type],[Link name],[Override variable]);
Em outras palavras, se você usar tl()
para rastrear seus elementos personalizados, a ID do link é retirada do valor passado como o terceiro parâmetro (Nome do link) no método tl()
. Ela não é retirada do algoritmo de rastreamento de links padrão, utilizado para o rastreamento padrão no Activity Map.
Quando o método tl()
é chamado diretamente no evento de cliques do elemento HTML, o Activity Map pode exibir uma sobreposição para esse elemento quando a página da Web é carregada. Exemplo:
<a href="javascript:" onclick="s.tl(this,'o','Example custom link');">Example link text</a>
Sempre que qualquer conteúdo da página da Web for adicionado à página após o carregamento inicial, o método tl()
é chamado indiretamente e não é possível exibir sobreposições para o novo conteúdo, a menos que elas sejam expressamente ativadas/clicadas. Em seguida, um novo processo de coleta de links é acionado no Activity Map.
Quando o método tl()
não é chamado diretamente no evento de cliques do elemento HTML, o Activity Map só poderá exibir a sobreposição depois que o elemento for clicado pelo usuário. Veja um exemplo onde o método tl()
é chamado indiretamente:
<a href="javascript:" onclick="someFn(event);">Example link text</a>
<script>function someFn (event)
{
s.tl(event.srcElement,'o','Example custom link');
}
</script>
A melhor maneira de fazer com que o Activity Map sobreponha links de conteúdo dinâmico é ter uma função ActivityMap.link
personalizada configurada para chamar a mesma função cujo valor de retorno é passado a tl()
. Por exemplo:
var originalLinkFunction = s.ActivityMap.link;
s.ActivityMap.link = function(element,linkName)
{
// if this is a s.tl call, just return string passed
return linkName ||
// this is ActivityMap reporting time
makeLinkName(element) ||
// our custom function didn't return anything, so just return the default ActivityMap Link
originalLinkFunction(element,linkName);
};
<button type="button" onclick="s.tl(this,'o',makeLinkName(this)">Add To Cart</button>
Aqui, substituímos a função ActivityMap.link
para fazer uma das três coisas quando chamadas:
linkName
for passado, isso foi chamado por tl()
, então apenas retorne o que tl()
passou como linkName
.linkName
nunca é transmitido, portanto, chame makeLinkName()
com o elemento de link. Esta é a etapa principal - a chamada makeLinkName(element)
deve ser a mesma do terceiro argumento da chamada tl()
na tag <button>
. Isso significa que quando tl()
é chamado, rastreamos a cadeia de caracteres retornada por makeLinkName()
. Quando o Activity Map relata os links na página, ele usa a mesma chamada para criar um link.makeLinkName()
e não precisar criar um valor de retorno de link para todos os links na página.