Tipos de evento

Esta página descreve os tipos de evento do Adobe Experience Platform fornecidos pela extensão de tag do SDK da Web da Adobe Experience Platform. Eles são usados para regras de build e não devem ser confundidas com o eventType no campo xdm objeto.

Enviar evento concluído

Normalmente, sua propriedade teria uma ou mais regras usando o Enviar evento ação para enviar eventos ao Adobe Experience Platform Edge Network. Cada vez que um evento é enviado ao Edge Network, uma resposta é retornada ao navegador com dados úteis. Sem o Enviar evento concluído tipo de evento, você não teria acesso a esses dados retornados.

Para acessar os dados retornados, crie uma regra separada e adicione um Enviar evento concluído para a regra. Essa regra é acionada sempre que uma resposta bem-sucedida é recebida do servidor como resultado de um Enviar evento ação.

Quando um Enviar evento concluído evento aciona uma regra, ele fornece dados retornados do servidor que podem ser úteis para realizar determinadas tarefas. Normalmente, você adicionará um Código personalizado ação (a partir do Núcleo extensão) para a mesma regra que contém a variável Enviar evento concluído evento. No Código personalizado ação, seu código personalizado terá acesso a uma variável chamada event. Este event conterá os dados retornados do servidor.

Sua regra para tratar dados retornados da Rede de borda pode ser semelhante a:

Abaixo estão alguns exemplos de como executar determinadas tarefas usando o Código personalizado ação nesta regra.

Renderizar manualmente o conteúdo personalizado

Na ação Código personalizado, que está na regra para manipular dados de resposta, você pode acessar propostas de personalização que foram retornadas do servidor. Para fazer isso, você digitaria o seguinte código personalizado:

var propositions = event.propositions;

Se event.propositions existe, é uma matriz que contém objetos de apresentação de personalização. As propostas incluídas no array são determinadas, em grande parte, pela forma como o evento foi enviado ao servidor.

Para este primeiro cenário, suponha que você não tenha verificado a Renderizar decisões e não forneceram nenhuma escopos de decisão dentro do Enviar evento ação responsável por enviar o evento.

img.png

Neste exemplo, a variável propositions matriz contém apenas apresentações relacionadas ao evento que são elegíveis para renderização automática.

A variável propositions A matriz pode ser semelhante a este exemplo:

[
  {
    "id": "AT:eyJhY3Rpdml0eUlkIjoiMTI3MDE5IiwiZXhwZXJpZW5jZUlkIjoiMCJ9",
    "scope": "__view__",
    "items": [
      {
        "id": "11223344",
        "schema": "https://ns.adobe.com/personalization/dom-action",
        "data": {
          "content": "<h2 style=\"color: yellow\">An HTML proposition.</h2>",
          "selector": "#hero",
          "type": "setHtml"
        },
        "meta": {}
      }
    ],
    "renderAttempted": false
  },
  {
    "id": "AT:PyJhY3Rpdml0eUlkIjoiMTI3MDE5IiwiZXhwZXJpZW5jZUlkIjoiMCJ8",
    "scope": "__view__",
    "items": [
      {
        "id": "11223345",
        "schema": "https://ns.adobe.com/personalization/dom-action",
        "data": {
          "content": "<h2 style=\"color: yellow\">Another HTML proposition.</h2>",
          "selector": "#sidebar",
          "type": "setHtml"
        },
        "meta": {}
      }
    ],
    "renderAttempted": false
  }
]

Ao enviar o evento, a variável Renderizar decisões A caixa de seleção não estava marcada, portanto, o SDK não tentou renderizar automaticamente qualquer conteúdo. No entanto, o SDK ainda recuperou automaticamente o conteúdo qualificado para renderização automática e o forneceu para renderização manual, se você desejar. Observe que cada objeto de proposta tem seu renderAttempted propriedade definida como false.

Se, em vez disso, você tivesse Renderizar decisões ao enviar o evento, o SDK tentaria renderizar qualquer proposta qualificada para renderização automática. Como consequência, cada um dos objetos de proposta teria seu renderAttempted propriedade definida como true. Não haveria necessidade de renderizar manualmente essas apresentações nesse caso.

Até agora, você só acessou um conteúdo de personalização qualificado para renderização automática (por exemplo, qualquer conteúdo criado no Visual Experience Composer do Adobe Target). Para recuperar qualquer conteúdo de personalização não qualificados para renderização automática, solicite o conteúdo fornecendo escopos de decisão usando o Escopos de decisão no campo Enviar evento ação. Um escopo é uma cadeia de caracteres que identifica uma proposta específica que você deseja recuperar do servidor.

A variável Enviar evento ação seria semelhante a:

img.png

Neste exemplo, se as apresentações forem encontradas no servidor que corresponde à variável salutation ou discount escopo, elas são retornadas e incluídas no propositions matriz. Esteja ciente de que as apresentações qualificadas para renderização automática continuarão a ser incluídas no propositions independentemente de como você configura o Renderizar decisões ou Escopos de decisão campos no Enviar evento ação. A variável propositions nesse caso, a matriz seria semelhante a este exemplo:

[
  {
    "id": "AT:cZJhY3Rpdml0eUlkIjoiMTI3MDE5IiwiZXhwZXJpZW5jZUlkIjoiMCJ2",
    "scope": "salutation",
    "items": [
      {
        "schema": "https://ns.adobe.com/personalization/json-content-item",
        "data": {
          "id": "4433221",
          "content": {
            "salutation": "Welcome, esteemed visitor!"
          }
        },
        "meta": {}
      }
    ],
    "renderAttempted": false
  },
  {
    "id": "AT:FZJhY3Rpdml0eUlkIjoiMTI3MDE5IiwiZXhwZXJpZW5jZUlkIjoiMCJ0",
    "scope": "discount",
    "items": [
      {
        "schema": "https://ns.adobe.com/personalization/html-content-item",
        "data": {
          "id": "4433222",
          "content": "<div>50% off your order!</div>",
          "format": "text/html"
        },
        "meta": {}
      }
    ],
    "renderAttempted": false
  },
  {
    "id": "AT:eyJhY3Rpdml0eUlkIjoiMTI3MDE5IiwiZXhwZXJpZW5jZUlkIjoiMCJ9",
    "scope": "__view__",
    "items": [
      {
        "id": "11223344",
        "schema": "https://ns.adobe.com/personalization/dom-action",
        "data": {
          "content": "<h2 style=\"color: yellow\">An HTML proposition.</h2>",
          "selector": "#hero",
          "type": "setHtml"
        },
        "meta": {}
      }
    ],
    "renderAttempted": false
  },
  {
    "id": "AT:PyJhY3Rpdml0eUlkIjoiMTI3MDE5IiwiZXhwZXJpZW5jZUlkIjoiMCJ8",
    "scope": "__view__",
    "items": [
      {
        "id": "11223345",
        "schema": "https://ns.adobe.com/personalization/dom-action",
        "data": {
          "content": "<h2 style=\"color: yellow\">Another HTML proposition.</h2>",
          "selector": "#sidebar",
          "type": "setHtml"
        },
        "meta": {}
      }
    ],
    "renderAttempted": false
  }
]

Nesse ponto, é possível renderizar o conteúdo da proposta conforme você julgar necessário. Neste exemplo, a proposta que corresponde ao parâmetro discount o escopo é uma apresentação de HTML criada usando o Experience Composer baseado em formulário do Adobe Target. Suponha que você tenha um elemento na página com a ID de daily-special e desejarem renderizar o conteúdo do discount apresentação na daily-special elemento. Faça o seguinte:

  1. Extrair apresentações do event objeto.
  2. Execute um loop em cada proposta, procurando pela proposta com um escopo de discount.
  3. Se encontrar uma proposta, percorra cada item na proposta, procurando o item que seja conteúdo de HTML. (É melhor verificar do que supor.)
  4. Se encontrar um item com conteúdo HTML, localize o daily-special elemento na página e substitua seu HTML pelo conteúdo personalizado.

Seu código personalizado no Código personalizado A ação do pode parecer como a seguir:

var propositions = event.propositions;

var discountProposition;
if (propositions) {
  // Find the discount proposition, if it exists.
  for (var i = 0; i < propositions.length; i++) {
    var proposition = propositions[i];
    if (proposition.scope === "discount") {
      discountProposition = proposition;
      break;
    }
  }
}

var discountHtml;
if (discountProposition) {
  // Find the item from proposition that should be rendered.
  // Rather than assuming there a single item that has HTML
  // content, find the first item whose schema indicates
  // it contains HTML content.
  for (var j = 0; j < discountProposition.items.length; j++) {
    var discountPropositionItem = discountProposition.items[i];
    if (discountPropositionItem.schema === "https://ns.adobe.com/personalization/html-content-item") {
      discountHtml = discountPropositionItem.data.content;
      break;
    }
  }
}

if (discountHtml) {
  // Discount HTML exists. Time to render it.
  var dailySpecialElement = document.getElementById("daily-special");
  dailySpecialElement.innerHTML = discountHtml;
}

Acesso aos tokens de resposta do Adobe Target

O conteúdo de personalização retornado do Adobe Target inclui tokens de resposta, que são detalhes sobre a atividade, oferta, experiência, perfil do usuário, informações geográficas e muito mais. Esses detalhes podem ser compartilhados com ferramentas de terceiros ou usados para depuração. Os tokens de resposta podem ser configurados na interface do usuário do Adobe Target.

Na ação Código personalizado, que está na regra para manipular dados de resposta, você pode acessar propostas de personalização que foram retornadas do servidor. Para fazer isso, digite o seguinte código personalizado:

var propositions = event.propositions;

Se event.propositions existe, é uma matriz que contém objetos de apresentação de personalização. Consulte Renderizar manualmente o conteúdo personalizado para obter mais informações sobre o conteúdo de result.propositions.

Suponha que você deseje coletar todos os nomes de atividades de todas as propostas que foram renderizadas automaticamente pelo SDK da Web e enviá-las para um único array. Em seguida, você pode enviar o array único para terceiros. Nesse caso, escreva um código personalizado dentro do Código personalizado ação para:

  1. Extrair apresentações do event objeto.
  2. Execute um loop em cada proposta.
  3. Determine se o SDK renderizou a proposta.
  4. Nesse caso, percorra cada item na proposta.
  5. Recupere o nome da atividade da meta que é um objeto que contém tokens de resposta.
  6. Transfira o nome da atividade para um storage.
  7. Envie os nomes da atividade para terceiros.
var propositions = event.propositions;
if (propositions) {
  var activityNames = [];
  propositions.forEach(function(proposition) {
    if (proposition.renderAttempted) {
      proposition.items.forEach(function(item) {
        if (item.meta) {
          // item.meta contains the response tokens.
          var activityName = item.meta["activity.name"];
          // Ignore duplicates
          if (activityNames.indexOf(activityName) === -1) {
            activityNames.push(activityName);
          }
        }
      });
    }
  });
  // Now that activity names are in an array,
  // you can send them to a third party or use
  // them in some other way.
}
recommendation-more-help
12b4e4a9-5028-4d88-8ce6-64a580811743