Você pode usar o mecanismo do Recommendations da Dynamic Yield para retornar os resultados de uma recomendação sem a Dynamic Yield renderizá-la, usando uma API do lado do cliente. Isso permite que você controle como exibir a recomendação em vez de servi-la no HTML através de uma campanha do Recommendations. Isso também permite adicionar filtros em tempo real para permitir resultados em tempo real com base em dados obtidos dentro da sessão (por exemplo, mostrar produtos com preços mais altos do que o produto atualmente visualizado ou apresentar produtos com base na seleção explícita dos visitantes).
Os resultados são retornados como um conjunto de produtos no formato JSON.
Esteja atento ao seguinte antes de servir recomendações via API do lado do cliente:
- Embora a API do lado do cliente permita implementar recomendações sem uma campanha, ainda recomendamos que você a implemente dentro de uma variação. Dessa forma, você pode executar testes posteriormente, usar um grupo de controle para medir o impacto e segmentar algoritmos diferentes para públicos diferentes – sem escrever código no seu website.
- No relatório do Recommendations, os dados de recomendação são atribuídos ao tipo de página "Other" (outro), independentemente da página em que as recomendações estão sendo veiculadas.
Servindo recomendações via API do lado do cliente
Criar uma estratégia para fazer a chamada de API
- Acesse Assets › Strategies (recursos › estratégias).
- Crie uma estratégia do Recommendations e ative a opção "Use via an API call (advanced)" (usar via chamada de API [avançado]) nas configurações da estratégia.
- Escolha o número de itens que você deseja que a API retorne (geralmente, o número de itens que você planeja renderizar).
- Salve a estratégia.
- Na lista "Recommendation Strategies" (estratégias do Recommendations), no menu More Options (mais opções), selecione "Embed Code" (incorporar código) e, em seguida, copie o snippet da API.
- Edite a API recommendationWidgetData conforme necessário. Para mais detalhes, veja abaixo. Você também pode usar essa API além da API Return Recommendations Real-Time Filter Data (retornar dados de filtro em tempo real do Recommendations) para adicionar regras de filtro em tempo real para filtrar os resultados com base nos dados obtidos dentro da sessão.
- Cole o código em uma campanha Custom Code (código personalizado). para executá-lo para os usuários relevantes.
- Implemente o desempenho de cliques das recomendações usando a API recommendations.registerElements. Para mais detalhes, veja abaixo.
Renderizar recomendação ou conteúdo dinâmico
Renderize o conteúdo dinâmico ou recomendação definida por um nome ou ID. Isso se aplica apenas para campanhas com Location (localização) definida como Embed with code (incorporar com código):
Sintaxe
DYO.smartObject(smartObjectId, props)
Parâmetros:
- smartObjectId: ID ou nome do conteúdo dinâmico ou recomendação
-
props:
Propriedades de renderização:
target: ID do seletor usado como destino da tag renderizada
afterRenderCallback: uma função opcional para executar após a renderização do item
Exemplo:
DYO.smartObject('Car Ad', {
target: 'car_ad_div_id',
inline: true
});
Retornar dados do widget do Recommendations
Os resultados são retornados como um conjunto de produtos no formato JSON. Essa API também exige que você rastreie o widget do Recommendations conforme detalhado abaixo.
Sintaxe
DYO.recommendationWidgetData(id, opts, callback)
Parâmetros:
- id: o ID da estratégia a ser usada ao renderizar o Recommendations.
-
opts: parâmetros opcionais
- context: o contexto da página é pego da página atual, a menos que você especifique um contexto diferente aqui.
- maxProducts: substitui o valor "number of items" (número de itens) na tela de configuração da estratégia.
- exclude: um conjunto de SKUs ou Group_IDs para excluir dos resultados do Recommendations. Isso é usado com frequência para evitar a exibição do mesmo item mais de uma vez em uma página que tenha vários widgets do Recommendations (essa opção não está disponível para a estratégia Recently Viewed [vistos recentemente], que não usa essa função de remoção de item).
- realtimeRules: adicione regras de filtro em tempo real para permitir resultados em tempo real com base nos dados obtidos dentro da sessão. Informações de caso de uso e dados de filtro em tempo real podem ser encontradas em Retornar dados de filtro em tempo real do Recommendations.
- distinct: ao enviar "true", você não receberá SKUs que fazem parte de outros widgets do Recommendations nessa página específica.
- callback: função de callback para executar uma vez retornados os dados do Recommendations.
Exemplo de chamada:
// passa o contexto do produto manualmente para solicitar
DYO.recommendationWidgetData(12345, {
exclude: {
'group_id': ['127829', '1217317', '1247581']
},
context: {
'lng': 'en_GB',
'type': 'PRODUCT',
'data': ["1253851-001"]
}},
function(err, data) {
if (err) {
//tratamento de erros
}
var rcomData = data;
});
Exemplo de resposta:
{
"wId": 3197,
"name": "TOP_N", // nome da estratégia
"expData": {
"varId": null,
"expId": null
},
"fId": 543,
"fallback": true, //pelo menos um dos itens usou um fallback
"slots": [
{
"item": {
"entity_id": "330367",
"color": "1349",
"product_url": "......html",
"color_prod_img": "https:.....3.jpg",
"publish_time": "2019-07-05T03:22:08",
"flag_img_url": "NONE",
"size_label": "38",
"color_image": "https://tropicalflowerdress.......jpg",
"size": "1899",
"category": "vestidos",
"related_colors_label": "string",
"title": "ótimo vestido florido",
"related_colors": "619,628,3064,3070,3133",
"color_label": "flor",
"item_group_id": "620",
"category1": "mulheres",
"sku": "6510120",
"description": "o melhor vestido de flores tropicais do universo",
"price": 199,
"in_stock": true,
"categories": [
"mulheres",
"vestidos"
],
"dy_display_price": "199",
"name": "vestido de flores tropicais",
"url": "https://www.tropicdresses........html",
"category4": "",
"flag": "",
"tier_prices": "NONE",
"thumbnail_url": "https://tropicdresses......jpg",
"image_url": "https://tropicdresses......jpg",
"keywords": [
"mulheres",
"vestidos",
],
"group_id": "33112327",
"quantity": "2"
},
"fallback": true, //esse item usou uma estratégia de fallback
"strId": 1,
"md": {}
},
{
"item": {
"entity_id": "330368",
"color": "1349",
"product_url": "......html",
"color_prod_img": "https:.....4.jpg",
"publish_time": "2019-07-06T03:21:00",
"flag_img_url": "NONE",
"size_label": "38",
"color_image": "https://tropicalflowerpants.......jpg",
"size": "1899",
"category": "calças",
"related_colors_label": "string",
"title": "ótimas calças floridas",
"related_colors": "619,628,3064,3070,3133",
"color_label": "flor",
"item_group_id": "534",
"category1": "mulheres",
"sku": "6510145",
"description": "as melhores calças de flores tropicais do universo",
"price": 89,
"in_stock": true,
"categories": [
"mulheres",
"calças"
],
"dy_display_price": "89",
"name": "calças de flores tropicais",
"url": "https://www.tropicpants........html",
"category5": "",
"flag": "",
"tier_prices": "NONE",
"thumbnail_url": "https://tropicpants......jpg",
"image_url": "https://tropicpants......jpg",
"keywords": [
"mulheres",
"calças",
],
"group_id": "33112347",
"quantity": "1"
},
"fallback": false, //esse item usou a estratégia escolhida
"strId": 1,
"md": {}
},
]
}
Retornar dados de filtro em tempo real do Recommendations
Veja o artigo Retornar dados de filtro em tempo real do Recommendations
Rastrear o widget do Recommendations
Para rastrear um widget do Recommendations que você adicionou manualmente ao seu website usando a API recommendationWidgetData, você deve se certificar que a Dynamic Yield possa rastrear o widget também. Os resultados JSON da recommendationWidgetData são usados para configurar esse rastreamento.
Sintaxe
DYO.recommendations.registerElements(el);
Uso
- Adicione os seguintes atributos ao elemento DOM que contém o widget do Recommendations:
<div data-dy-widget-id="ID_DO_WIDGET_AQUI" data-dy-feed-id="ID_DO_FEED_AQUI"> <div data-dy-product-id="SKU_DO_PRODUTO_AQUI" data-dy-strategy-id="ID_DA_ESTRATEGIA_AQUI">...</div> <div data-dy-product-id="SKU_DO_PRODUTO_AQUI" data-dy-strategy-id="ID_DA_ESTRATEGIA_AQUI">... </div> . . </div>
- widget id – o wId da resposta JSON. Esse é o ID da estratégia.
- feed id – o fId da resposta JSON.
- strategy id – o strId da resposta JSON (pode ser encontrado sob cada "slot"). Isso representa o tipo de estratégia de cada espaço.
- product id – a sku de cada produto da resposta JSON.
- Execute a seguinte chamada de API:
Onde el é o elemento DOM com o atributo widget ID (data-dy-widget-id).DYO.recommendations.registerElements(el);
Mostrar todas as respostas do widget do Recommendations
Apresenta todos os produtos retornados por todos os widgets do Recommendations na página.
Sintaxe
DYO.recommendations.getLoadedWidgets()
A resposta é um conjunto de resultados da API Return Recommendation Widget Data para todos os widgets do Recommendations retornados na página.