Os tokens de resposta permitem gerar automaticamente informações específicas para Adobe Target na página da Web da sua marca. Essas informações podem incluir detalhes sobre a atividade, oferta, experiência, perfil de usuário, informações geográficas e muito mais. Esses detalhes fornecem dados de resposta adicionais para compartilhar com ferramentas internas ou de terceiros ou para usar na depuração.
Os tokens de resposta permitem escolher quais variáveis (em pares de valores chave) usar e permitir que sejam enviadas como parte de um Target resposta. Você habilita uma variável usando o switch e a variável é enviada com Target , que podem ser validadas em chamadas de rede. Os tokens de resposta também funcionam em Visualizar modo.
Uma diferença importante entre plug-ins e tokens de resposta é que os plug-ins entregam o JavaScript para a página que é executada na entrega. No entanto, os tokens de resposta fornecem um objeto que pode ser lido e executado com o uso de ouvintes de eventos. A abordagem do token de resposta é mais segura e permite um desenvolvimento e manutenção mais fáceis de integrações de terceiros.
Os tokens de resposta estão disponíveis com a at.js versão 1.1 ou posterior.
SDK do Target | Ações sugeridas |
---|---|
SDK da Web da Adobe Experience Platform | Certifique-se de que você esteja usando o SDK da Web da plataforma versão 2.6.0 ou posterior. Para obter informações sobre como baixar a versão mais recente do SDK da Web da plataforma, consulte Instalar o SDK no Visão geral do SDK da Web da plataforma guia. Para obter informações sobre a nova funcionalidade em cada versão do SDK da Web da plataforma, consulte Notas de versão no Visão geral do SDK da Web da plataforma guia. |
at.js | Certifique-se de que você esteja usando a at.js versão 1.1 ou posterior. Para obter informações sobre como baixar a versão mais recente do at.js, consulte Baixar o at.js. Para obter informações sobre a nova funcionalidade em cada versão do at.js, consulte Detalhes da versão do at.js. Os clientes que usam a at.js são incentivados a usarem os tokens de resposta e a evitarem os plugins. Alguns plug-ins que dependem de métodos internos existentes na mbox.js (agora obsoleta), mas não na at.js, são entregues, mas falham. |
Certifique-se de que você esteja usando o SDK da Web da plataforma versão 2.6.0 (ou posterior) ou a at.js versão 1.1 (ou posterior).
Para obter mais informações:
Em Target, clique em Administração > Tokens de resposta.
Ative os tokens de resposta desejados, como activity.id
e offer.id
.
Os seguintes parâmetros estão disponíveis por padrão:
Tipo | Parâmetro | Notas |
---|---|---|
Perfis incorporados | profile.activeActivities |
Retorna uma matriz do activityIds para o qual os visitantes estão qualificados. Ele é incrementado à medida que os usuários são qualificados. Por exemplo, em uma página com dois Target solicitações que entregam duas atividades diferentes, a segunda solicitação inclui ambas as atividades. |
profile.isFirstSession |
Retorna "true" ou "false." | |
profile.isNewSession |
Retorna "true" ou "false." | |
profile.daysSinceLastVisit |
Retorna o número de dias, desde a última visita do visitante. | |
profile.tntId |
Retorna tntID do visitante | |
profile.marketingCloudVisitorId |
Retorna a ID do visitante da Experience Cloud. | |
profile.thirdPartyId |
Retorna a ID de terceiros do visitante. | |
profile.categoryAffinity |
Retorna a categoria favorita do visitante. | |
profile.categoryAffinities |
Retorna uma matriz das 5 categorias principais do visitante como sequências de caracteres. | |
Atividade | activity.name activity.id experience.name experience.id offer.name offer.id |
Detalhes da atividade atual. Observe que os valores para parâmetros de oferta são avaliados no nível da experiência. |
Geografia | geo.country geo.state geo.city geo.zip geo.dma geo.domainName geo.ispName geo.connectionSpeed geo.mobileCarrier |
Consulte Geo para obter mais informações sobre como usar o direcionamento geográfico nas atividades. |
Método de alocação de tráfego (Aplica-se a Direcionamento automático e Automated Personalization somente atividades.) |
experience.trafficAllocationId |
Retorna 0 se um visitante recebeu uma experiência de estar em tráfego de "controle" e 1 se um visitante recebeu uma experiência da distribuição de tráfego de "direcionado". |
experience.trafficAllocationType |
Retorne "controle" ou "direcionado". |
Os atributos do perfil do usuário e dos Atributos do cliente também são exibidos na lista.
Os parâmetros com caracteres especiais não são exibidos na lista. Somente caracteres alfanuméricos e sublinhados são suportados.
(Condicional) Para usar um parâmetro de perfil como um token de resposta, mas o parâmetro não foi passado por um Target e, portanto, não foi carregada no Target Você pode usar a Adicionar token de resposta para adicionar o perfil à interface do usuário.
Clique em Adicionar token de resposta, forneça o nome do token e clique em Ativar.
Crie uma atividade.
O processo usado para acompanhar Target as respostas e os tokens de resposta de leitura diferem dependendo se você tem uma Platform Web SDK ou implementação da at.js.
Use a classe Handle object , que tem um objeto de metadados e um objeto de dados que deve ser ouvido Target e leia os tokens de resposta.
O exemplo de resposta a seguir adiciona um Platform Web SDK manipulador de evento personalizado diretamente para a página HTML (a tabela explica os objetos usados no código):
Objeto | Informações |
---|---|
Tipo - Personalization.decision | Se a decisão foi tomada pela Target ou provedor Offer Decisioning. |
DecisionProvider - TGT | TGT-Target. Target fornece os metadados e valores do token de resposta para a página. |
Meta | Metadados passados para a página. |
Dados | Valores dos metadados passados para a página. |
<html>
<head>
...
<script src="alloy.js"></script>
<script>
{
"requestId": "4d0a7cfd-952c-408c-b3b8-438edc38250a",
"handle": [{
"type": "personalization:decisions",
"payload": [{
"id": "....",
"scope": "__view__",
"scopeDetails": {
"decisionProvider": "TGT",
"activity": {
"id": "..."
},
"experience": {
"id": "...."
}
},
"items": [{
"id": "123",
"schema": "https://ns.adobe.com/personalization/dom-action",
"meta": {
"activity.id": "...",
"activity.name": "...",
"profile.foo": "...",
"profile.bar": "..."
},
"data": {
"id": "123",
"type": "setHtml",
"selector": "#foo",
"prehidingSelector": "#foo",
"content": "<div>Hello world</div>"
}
}]
}]
}]
}
});
</script>
</head>
<body>
...
</body>
</html>
Use Eventos personalizados da at.js para ouvir a resposta da e ler os tokens de resposta.Target
O código de amostra a seguir adiciona um manipulador de evento personalizado da at.js diretamente na página HTML:
<html>
<head>
....
<script src="at.js"></script>
<script>
document.addEventListener(adobe.target.event.REQUEST_SUCCEEDED, function(e) {
console.log("Request succeeded", e.detail);
});
</script>
<head>
<body>
...
</body>
</html>
Qual função é necessária para ativar ou desativar os tokens de resposta?
Os tokens de resposta podem ser ativados ou desativados somente por usuários com a variável Target Administrador função.
O que acontece se eu estiver correndo Platform Web SDK 2.6.0 (ou anterior)?
Você não tem acesso aos tokens de resposta.
O que acontece se eu estiver executando a at.js 1.0 (ou anterior)?
Você vê os tokens de resposta, mas a at.js não pode usá-los.
Target ClassicPosso fazer com que ambos plugins e tokens de resposta do fiquem ativos ao mesmo tempo?
Os plugins e os tokens de resposta estão disponíveis em paralelo; no entanto, os plug-ins serão descontinuados no futuro.
Os tokens de resposta são entregues por meio de todos Target ou somente por Target respostas que fornecem uma atividade do ?
Os tokens de resposta são entregues somente por meio de Target respostas que fornecem uma atividade do .
My Target Classic incluiu JavaScript. Como replico a funcionalidade dele usando os tokens de resposta?
Ao migrar para tokens de resposta, esse tipo de JavaScript deve ser mantido em sua base de código ou solução de gerenciamento de tags. Você pode acionar esse código usando Platform Web SDK ou at.js eventos personalizados e transmita os valores do token de resposta para suas funções JavaScript.
Por que meu parâmetro de perfil/Atributos do cliente não é exibido na lista de tokens de resposta?
Target normalmente atualiza parâmetros a cada 15 minutos. Essa atualização depende da ação do usuário e os dados são atualizados somente quando você exibe a página de tokens de resposta. Se os parâmetros não forem exibidos na lista de token de resposta, Target O ainda não atualizou os dados.
Além disso, se o parâmetro contém caracteres que não sejam alfanuméricos ou qualquer símbolo que não seja sublinhados, o parâmetro não aparecerá na lista. Atualmente, somente caracteres alfanuméricos e sublinhados são aceitos.
O token de resposta ainda fornece conteúdo se usar um script de perfil excluído ou um parâmetro de perfil?
Os tokens de resposta extraem as informações dos perfis de usuário e, em seguida, as entregam. Se você excluir um script ou parâmetro de perfil, isso n~so significa que as informações foram removidas dos perfis de usuário. Os perfis de usuário ainda têm dados correspondentes ao script de perfil. O token de resposta continua a fornecer o conteúdo. Para usuários que não têm essas informações salvas em seus perfis ou para novos visitantes, esse token não é entregue porque os dados não estão presentes em seus perfis.
Target não desliga o token automaticamente. Se você excluir o script de perfil e não desejar mais que ele seja entregue, você deve desligar o token sozinho.
Renomeei meu script de perfil, mas por que o token está usando o script ainda ativo com o nome herdado?
Conforme mencionado acima os tokens de resposta trabalham nas informações de perfil salvas pelos usuários. Mesmo que você tenha renomeado seu script de perfil, os usuários que visitaram seu site têm o valor de script de perfil antigo salvo em seus perfis. O token continua a escolher o valor antigo que já está salvo nos perfis do usuário. Se você não deseja entregar o conteúdo no novo nom, deve desligar o token anterior e ligar o novo token.
Se meus atributos foram alterados, quando eles serão removidos da lista?
TargetO realiza uma atualização de atributos em intervalos regulares. Qualquer atributo que não esteja ligado é removido durante a próxima atualização. No entanto, se você tiver um atributo que foi ativado e removido, esse script não será removido da lista de atributos até que ele seja desligado. Como exemplo, você removeu um script de perfil que era usado como um token. TargetO remove somente os atributos desligados na lista, quando são excluídos ou renomeados.
As seções a seguir descrevem como enviar Target dados para o Google Analytics. Os dados enviados por tokens de resposta também podem ser enviados para outras integrações de terceiros.
O Google Analytics pode enviar dados por meio do SDK da Web da plataforma versão 2.6.0 (ou posterior), adicionando o seguinte código na página HTML.
Verifique se o par de valor da chave do token de resposta está sob a variável alloy(“sendEvent”
objeto.
<script type="text/javascript">
(function(i, s, o, g, r, a, m) {
i['GoogleAnalyticsObject'] = r;
i[r] = i[r] || function() {
(i[r].q = i[r].q || []).push(arguments)
}, i[r].l = 1 * new Date();
a = s.createElement(o),
m = s.getElementsByTagName(o)[0];
a.async = 1;
a.src = g;
m.parentNode.insertBefore(a, m)
})(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga');
ga('create', 'Google Client Id', 'auto');
</script>
<script type="text/javascript">
alloy("sendEvent", {
})
.then(({ renderedPropositions, nonRenderedPropositions }) => {
// concatenate all the propositions
const propositions = [...renderedPropositions, ...nonRenderedPropositions];
// extractResponseTokens() extract the meta from item -> meta
const tokens = extractResponseTokens(propositions);
const activityNames = [];
const experienceNames = [];
const uniqueTokens = distinct(tokens);
uniqueTokens.forEach(token => {
activityNames.push(token["activity.name"]);
experienceNames.push(token["experience.name"]);
});
ga('send', 'event', {
eventCategory: "target",
eventAction: experienceNames,
eventLabel: activityNames
});
});
</script>
O Google Analytics pode enviar dados via at.js ao adicionar o seguinte código na página HTML:
<script type="text/javascript">
(function(i, s, o, g, r, a, m) {
i['GoogleAnalyticsObject'] = r;
i[r] = i[r] || function() {
(i[r].q = i[r].q || []).push(arguments)
}, i[r].l = 1 * new Date();
a = s.createElement(o),
m = s.getElementsByTagName(o)[0];
a.async = 1;
a.src = g;
m.parentNode.insertBefore(a, m)
})(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga');
ga('create', 'Google Client Id', 'auto');
</script>
<script type="text/javascript">
document.addEventListener(adobe.target.event.REQUEST_SUCCEEDED, function(e) {
var tokens = e.detail.responseTokens;
if (isEmpty(tokens)) {
return;
}
var activityNames = [];
var experienceNames = [];
var uniqueTokens = distinct(tokens);
uniqueTokens.forEach(function(token) {
activityNames.push(token["activity.name"]);
experienceNames.push(token["experience.name"]);
});
ga('send', 'event', {
eventCategory: "target",
eventAction: experienceNames,
eventLabel: activityNames
});
});
function isEmpty(val) {
return (val === undefined || val == null || val.length <= 0) ? true : false;
}
function key(obj) {
return Object.keys(obj)
.map(function(k) { return k + "" + obj[k]; })
.join("");
}
function distinct(arr) {
var result = arr.reduce(function(acc, e) {
acc[key(e)] = e;
return acc;
}, {});
return Object.keys(result)
.map(function(k) { return result[k]; });
}
</script>
As seções a seguir fornecem informações sobre como depurar tokens de resposta:
O código a seguir permite depurar usando o Google Analytics:
<script type="text/javascript">
(function(i, s, o, g, r, a, m) {
i['GoogleAnalyticsObject'] = r;
i[r] = i[r] || function() {
(i[r].q = i[r].q || []).push(arguments)
}, i[r].l = 1 * new Date();
a = s.createElement(o),
m = s.getElementsByTagName(o)[0];
a.async = 1;
a.src = g;
m.parentNode.insertBefore(a, m)
})(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga');
ga('create', 'Google Client Id', 'auto');
</script>
<script type="text/javascript">
document.addEventListener(adobe.target.event.REQUEST_SUCCEEDED, function(e) {
var tokens = e.detail.responseTokens;
if (isEmpty(tokens)) {
return;
}
var activityNames = [];
var experienceNames = [];
var uniqueTokens = distinct(tokens);
uniqueTokens.forEach(function(token) {
activityNames.push(token["activity.name"]);
experienceNames.push(token["experience.name"]);
});
ga('send', 'event', {
eventCategory: "target",
eventAction: experienceNames,
eventLabel: activityNames
});
});
function isEmpty(val) {
return (val === undefined || val == null || val.length <= 0) ? true : false;
}
function key(obj) {
return Object.keys(obj)
.map(function(k) { return k + "" + obj[k]; })
.join("");
}
function distinct(arr) {
var result = arr.reduce(function(acc, e) {
acc[key(e)] = e;
return acc;
}, {});
return Object.keys(result)
.map(function(k) { return result[k]; });
}
O equivalente do plugin ttMeta para fins de depuração pode ser criado ao adicionar o seguinte código à página HTML:
<script type="text/javascript" >
document.addEventListener(adobe.target.event.REQUEST_SUCCEEDED, function (e) {
window.ttMETA= typeof(window.ttMETA)!="undefined" ? window.ttMETA : [];
var tokens=e.detail.responseTokens;
if (isEmpty(tokens)) {
return;
}
var uniqueTokens = distinct(tokens);
uniqueTokens.forEach(function(token) {
window.ttMETA.push({
'CampaignName': token["activity.name"],
'CampaignId' : token["activity.id"],
'RecipeName': token["experience.name"],
'RecipeId': token["experience.id"],
'OfferId': token["offer.id"],
'OfferName': token["offer.name"],
'MboxName': e.detail.mbox});
console.log(ttMETA);
});
});
function isEmpty(val){
return (val === undefined || val == null || val.length <= 0) ? true : false;
}
function key(obj) {
return Object.keys(obj)
.map(function(k) { return k + "" + obj[k]; })
.join("");
}
function distinct(arr) {
var result = arr.reduce(function(acc, e) {
acc[key(e)] = e;
return acc;
}, {});
return Object.keys(result)
.map(function(k) { return result[k]; });
}
</script>
O vídeo a seguir explica como usar tokens de resposta e eventos personalizados da at.js para compartilhar informações de perfil do Target para sistemas de terceiros.
O Target Administração interface do usuário do menu (anteriormente Configuração) foi reprojetado para fornecer melhor desempenho, reduzir o tempo de manutenção necessário ao lançar novos recursos e melhorar a experiência do usuário em todo o produto. As informações do vídeo seguinte estão corretas; no entanto, as opções estão em locais ligeiramente diferentes.
O vídeo menciona option.name
e option.id
, que foram substituídas por offer.name
e offer.id
, respectivamente.