recsForPlacements
Descrição
Este endpoint devolve recomendações para um placement identificado pelo nome e regista o comportamento do shopper. As recomendações devolvidas pela API respeitam todas as regras de merchandising configuradas no dashboard do Algonomy Cloud.
URL
Produção
Note: Como parte da iniciativa da Personalization Cloud para evoluir para uma solução centrada na privacidade, a plataforma está a migrar para um domínio exclusivo de captura de dados chamado https://recs.algorecs.com para gerir as interações diretamente com os browsers.
Utilize este URL para solicitar personalização no ambiente de produção.
https://recs.algorecs.com/rrserver/api/rrPlatform/recsForPlacements
Integração
Utilize este URL para solicitar personalização no ambiente de QA, staging ou desenvolvimento. Desta forma, pode testar alterações (como regras de merchandising ou de estratégia) sem impactar o ambiente de produção.
https://integration.algorecs.com/rrserver/api/rrPlatform/recsForPlacements
Parâmetros
- Notes:
-
É necessário chamar apenas os parâmetros aplicáveis.
- O Algonomy opera com um conjunto de APIs que suportam múltiplas aplicações e clientes em simultâneo. O Algonomy pode atualizar e melhorar estas APIs a qualquer momento.
-
Todos os parâmetros são case-sensitive.
Este endpoint exige o tracking de eventos de clique.
Para mais informações sobre como registar eventos de clique, consulte Tracking Events.
Parâmetros principais de integração (todas as solicitações)
Parâmetros que devem ser incluídos em cada solicitação de API para autenticar, identificar o cliente e garantir que o mecanismo de recomendação funcione corretamente.
|
Nome |
Obrigatório ou Opcional |
Descrição |
|---|---|---|
| ts |
Opcional |
Timestamp. Utilizado para evitar cache do browser e altamente recomendado. Se não for incluído, poderão ser apresentadas respostas em cache. Exemplo: ts=1376676943 |
| apiClientKey |
Obrigatório |
Chave única específica de cada implementação da API. Identifica a aplicação ou cliente para efeitos de reporting, permissões e merchandising. Fornecida pelo Algonomy. Exemplo: apiClientKey=b0126f995ac848159d |
| apiKey |
Obrigatório |
Chave única que identifica o site. Cada cliente Algonomy possui uma API key exclusiva para separar dados e tráfego de outros clientes. Fornecida pelo Algonomy. Exemplo: apiKey=4faeaf752ee40a0f |
| placements |
Obrigatório |
Lista de identificadores de placement. Cada identificador é composto por um tipo de página e um nome de placement. Os identificadores devem ser separados pelo carácter pipe "|". Recebe um conjunto de recomendações por placement. Todos os placements devem pertencer ao mesmo tipo de página. O primeiro placement é considerado o "melhor" placement e receberá a melhor estratégia de recomendação. Quando são solicitados múltiplos placements, cada um recebe uma estratégia distinta e produtos únicos. Exemplo: placements=item_page.horizontal|item_page.vertical |
| rcs |
Obrigatório |
Algonomy Cookie String. Trata-se do cookie Algonomy encriptado do utilizador associado ao pedido da API. Deve ser enviado exatamente como foi recebido numa resposta anterior da API. Os clientes devem garantir que preservam o valor de 'rcs' exatamente como foi fornecido. O parâmetro 'rcs' é sempre alfanumérico e sensível a maiúsculas/minúsculas, incluindo uma combinação de letras maiúsculas, letras minúsculas e números. Note: O parâmetro 'rcs' permite aos comerciantes fornecer à plataforma Algonomy acesso ao cookie de navegador do utilizador, funcionando como um proxy de cookie. Este processo envolve a leitura e escrita do cookie Algonomy do utilizador pelo comerciante e a sua transmissão de e para a Algonomy através da API server-side. |
| sessionId |
Obrigatório |
Identifica uma única visita do utilizador. As sessões são utilizadas pelos modelos comportamentais para delimitar o comportamento do utilizador durante uma sessão de compra, bem como para métricas de reporting. Exemplo: sessionId=93484 |
| userId | Obrigatório quando o usuário está conectado ou é reconhecido por meio de login simplificado. |
ID do utilizador. String única para identificar cada utilizador. Todo o comportamento do utilizador é armazenado com base nesta chave. É sensível a maiúsculas/minúsculas e deve corresponder ao mesmo user ID enviado à Algonomy noutras aplicações. Exemplo: userId=0982347 |
| lang | Opcional. Usado se os idiomas estiverem desvinculados das regiões. |
Identifica o idioma solicitado através do respetivo código de idioma. Exemplo: &lang=sv-SE |
| rid |
Opcional |
ID da região. Deve ser consistente com o ID utilizado no product region feed. Exemplo: rid=Switzerland-France |
| privm |
Opcional |
True/false. Quando definido como true, ativa o modo de privacidade para o pedido. Em modo de privacidade, os dados de afinidade do utilizador são ignorados e as recomendações são geradas sem personalização baseada em dados comportamentais. Isto garante que as recomendações respeitam as preferências de consentimento do utilizador e não utilizam dados comportamentais para utilizadores que recusam o rastreio. Exemplo: privm=true |
Parâmetros contextuais (Contexto da página)
Parâmetros que fornecem informações contextuais sobre a página atual, incluindo produto(s), categoria ou termo de pesquisa, para gerar recomendações relevantes.
|
Nome |
Obrigatório ou Opcional |
Descrição |
|---|---|---|
| atcid |
Obrigatório na página Add to Cart |
ID de add to cart. Pode ser um único ID de produto ou uma lista. Se for adicionado mais do que um produto ao carrinho, separe os IDs com o carácter pipe "|". Exemplo: atcid=uv2345|xt1234 |
| categoryId |
Obrigatório em Category page |
ID da categoria que o comerciante pretende consultar. Deve corresponder ao ID externo fornecido ao Algonomy. Exemplo: categoryId=902312 |
| wlName | Opcional em Wishlist page | O nome da lista de desejos à qual a ação se aplica. O padrão é nulo. |
| wlAction | Obrigatório em Wishlist page |
Especifica a ação que está sendo realizada na lista de desejos. Valores: ADICIONAR, VISUALIZAR, REMOVER. |
| cvAction | Obrigatório em Cart page |
Indica a ação realizada no carrinho. Este parâmetro especifica o tipo de evento do carrinho que está sendo rastreado. O valor possível é REMOVER. |
| pp |
Obrigatório em Purchase Complete page Opcional em Cart page |
Preços dos produtos. Lista que define os preços dos produtos comprados. O índice dos preços na lista corresponde aos produtos enviados em productId. Faz parte da definição do pedido. Utilize pp ou ppc para definir o preço dos itens comprados. Se utilizar pp, aplica-se o multiplicador de moeda do site. Os valores devem ser separados pelo carácter pipe "|". Exemplo: pp=29.99|32.97 |
| ppc |
Obrigatório em Purchase Complete page Opcional em Cart page |
Preços dos produtos em cêntimos. Lista que define os preços dos produtos comprados. O índice dos preços corresponde aos produtos enviados em productId. Faz parte da definição do pedido. Utilize pp ou ppc. Se utilizar ppc, o multiplicador de moeda do site não é aplicado. O valor enviado é aceite tal como está e convertido de string para inteiro. Certifique-se de que contém apenas números, sem símbolos ou separadores. Separe os valores com o carácter pipe "|". Exemplo: ppc=2999|3297 (equivalente a 29,99 e 32,97) |
| productId |
Obrigatório em Item page, Purchase Complete page, Wishlist page and Cart page (quando não está vazio) Opcional em Cart page, Search page |
Um único ID de produto ou uma lista de IDs de produto. Faz parte da definição de encomenda na página de conclusão de compra. Utilize o carácter pipe "|" para separar os IDs de produto. Exemplo: productId=uv2345|xt1234 Note: Para o pedido add_to_cart_page, o ID do produto é enviado como Add to Cart ID através do parâmetro 'atcid'. Assim, este campo productId não é obrigatório. Note: Também é possível enviar IDs de SKU nas chamadas à API. Ao especificar um PRODUCT ID, o ID de SKU deve ser acrescentado com um separador til "~". Exemplo: ...&productId=[product_id]~[sku_id] |
| q |
Obrigatório em Purchase Complete page Opcional em Cart page |
Quantidades dos itens. Lista que define as quantidades dos produtos comprados. O índice das quantidades na lista corresponde ao índice dos produtos enviados em productId. Faz parte da definição da encomenda e deve ser um número inteiro; valores decimais não são aceites. Separe múltiplas entradas com o carácter pipe "|". Exemplo: q=2|1 |
| searchTerm |
Obrigatório em Search page |
Termo de pesquisa introduzido pelo utilizador. Também pode utilizar o parâmetro productId para fornecer os IDs dos produtos presentes nos resultados da pesquisa. Exemplo: searchTerm=adriana lima |
| o |
Obrigatório em Purchase Complete page |
ID do pedido. Parte da definição do pedido. Exemplo: o=902312 |
| currency |
Obrigatório. Utilizado na Purchase Complete page se a moeda estiver desvinculada das regiões. |
Código ISO da moeda para cada transação ou pedido de produto. Exemplo: currency=USD Note: Se não especificado, o valor predefinido é USD. |
| fpb | Obrigatório em Brand page |
Marca em destaque na página. Utilizada para definir o seed em estratégias baseadas em marca, como Brand Top Sellers. Exemplo: fpb=Microsoft |
| chi | Opcional em Item page, Add to Cart page |
Fornece category hint IDs. Os category hints podem ser adicionados a qualquer tipo de página e qualificam a página para regras de merchandising associadas à categoria. É possível adicionar múltiplos hints a uma única página. Separe os IDs com o carácter “|”. Exemplo com 2 hints: chi=1913000|1903094 |
Configuração de resposta (formato de saída)
Parâmetros que controlam como as recomendações são retornadas, incluindo quais campos, atributos ou dados relacionados (por exemplo, categorias, metadados do produto) são incluídos na resposta.
|
Nome |
Obrigatório ou Opcional |
Descrição |
|---|---|---|
| attributeList |
Opcional |
Limita a informação de atributos devolvida no resultado à lista especificada. attributeList aceita uma lista de nomes de atributos separados por vírgula. Se estiver vazio ou for utilizado o carácter wildcard '*', devolve todos os atributos do produto. Exemplo: Se "attributeList=gender,color", devolve apenas os atributos gender e color. "attributeList=*" Devolve todos os atributos. "attributeList=" Devolve todos os atributos. Note: Se returnMinimalRecItemData estiver definido como true e attributeList também for especificado, a resposta inclui igualmente os atributos indicados. |
| categoryData |
Opcional |
Omite dados de categoria (categoryIds e categories) quando definido como false. O valor predefinido é true. Exemplo: categoryData=false Note: excludeAncestor=false pode ser utilizado para incluir dados de categorias ancestrais. |
| ctp |
Opcional |
Parâmetro de click-through. Permite adicionar parâmetros ao URL de clique. Consulte Click-through Parameters para mais informações. Exemplo: ctp=|0:origin=CJ|1:campaign=rr |
| cts | Opcional |
Servidor de clique. Altera uma parte da URL de destino quando um comprador clica em uma recomendação. Especifica o servidor de destino do clique (por exemplo, www.buystuff.com em vez de m.buystuff.com). Esse parâmetro é normalmente usado durante o desenvolvimento para manter os usuários no mesmo ambiente ao clicarem em uma recomendação. Exemplo: cts=http://test.buystuff.com Note: Se o parâmetro cts for fornecido na solicitação da API, ele substituirá a configuração do servidor de clique do site e/ou o cts na URL do produto entregue no feed. |
| excludeAncestor |
Opcional |
True/False. Quando definido como false, a resposta inclui dados de categorias ancestrais no array ancestorCategories dentro do objeto "categories". Nota: Deve ser utilizado em conjunto com o parâmetro categoryData. Exemplo: excludeAncestor=false Exemplo de resposta JSON: Copy
|
| excludeHtml |
Opcional |
True/false. Se definido como true, omite o HTML devolvido na resposta do servidor Algonomy. Se false, a resposta inclui o HTML do placement definido no campo html do layout. O valor predefinido é false. Exemplo: excludeHtml=true |
| excludeItemAttributes |
Opcional |
True/false. Se definido como true, remove os atributos do item dos dados dos produtos recomendados. O valor predefinido é false. Exemplo: excludeItemAttributes=true |
| excludeRecItems |
Opcional |
True/false. Se definido como true, remove completamente a estrutura de itens recomendados. É útil quando o HTML é suficiente na resposta. O valor predefinido é false. Exemplo: excludeRecItems=true |
| includeMVTData |
Opcional |
True/false. O valor predefinido é false. Se definido como true, inclui detalhes sobre qualquer teste multivariado (MVT) em execução. Exemplo: includeMVTData=true Exemplo de resposta JSON: Copy
|
| includeMVTDetailedData |
Opcional |
True/false. O valor predefinido é false. Se definido como true, inclui detalhes sobre qualquer teste multivariado (MVT) em execução. O parâmetro string “eligible” indica se o utilizador é elegível para o teste MVT. Exemplo: includeMVTDetailedData=true Exemplo de resposta JSON: Copy
Quando definido como true, para testes do tipo Placement, a resposta inclui uma nova secção "mvtTreatments" com os detalhes do MVT associado ao placement. Exemplo de resposta JSON: Copy
Note: Apenas os tratamentos em que o placement participa são incluídos na resposta. Se o teste de Placement incluir múltiplos placements, todos incluirão “mvtTreatments” na resposta. Se existirem múltiplos testes de Placement para o mesmo placement, serão devolvidos múltiplos tratamentos. |
| includeSkuData |
Opcional |
True/False. O valor predefinido é false. Se definido como true, quaisquer dados de SKU disponíveis no SKU Feed são incluídos nos produtos devolvidos. Exemplo: includeSkuData=true Exemplo de resposta JSON: Copy
|
| includeStrategyData |
Opcional |
True/false. O valor predefinido é false. Se definido como true, cada placement na resposta inclui o nome da estratégia. Exemplo: includeStrategyData=true |
| returnMinimalRecItemData |
Opcional |
Limita o objeto JSON recommendedProducts a 4 atributos: id, productURL, clickURL e clickTrackingURL. |
Filtragem e Restrições
Parâmetros usados para limitar ou refinar os resultados da recomendação dinamicamente, incluindo restrições de categoria, marca, atributo ou preço.
|
Nome |
Obrigatório ou Opcional |
Descrição |
|---|---|---|
| bi |
Opcional |
Lista de IDs de produto que não devem ser recomendados nesta resposta. Utilize o carácter pipe "|" para separar os IDs. Exemplo: bi=93874|04495|043945 |
| filbr |
Opcional |
Filtrar por nome da marca. Por predefinição, exclui da recomendação os produtos da marca especificada. Consulte includeBrandFilteredProducts para alterar o comportamento predefinido. Para filtrar múltiplas marcas, utilize o carácter pipe "|". Exemplo: filbr=Microsoft|Logitech|Apple |
| filcat |
Opcional |
Especifica a categoria a filtrar. filcat=<categoryId> Para filtrar com base numa categoria específica, deve ser indicado: "filcat=<categoryId>&filcatinc=true>" Podem ser enviados múltiplos category ids numa string delimitada por pipe. Cada categoria na string é avaliada com operador OR. |
| filcatinc |
Opcional |
Filtra dentro da categoria (requer a especificação da categoria com 'filcat'). filcatinc=true: filtra os resultados para mostrar apenas produtos da categoria especificada. filcatinc=false: exclui dos resultados os produtos da categoria especificada. |
| filterAtr |
Opcional |
Tipos e valores de filtros selecionados pelo shopper. Coloque aspas em todos os atributos, separe os tipos com o carácter pipe "|" e separe os valores com ponto e vírgula. É obrigatório incluir aspas em todos os atributos. Exemplo: filterAtr=color:"Red"|size:"M";"L" Note: filterAtr aplica-se apenas a atributos personalizados. Utilize filbr e includeBrandFilteredProducts para filtrar por marca. Disponível apenas para Search and Browse e requer configuração prévia pelo Algonomy. |
| includeBrandFilteredProducts |
Opcional |
True/false. Altera a função de filbr de excluir para incluir. Se não especificado, o valor predefinido é false, o que exclui a marca indicada. Se true, o filtro de marca exclui todos os produtos exceto os da marca especificada. Exemplo: includeBrandFilteredProducts=true |
| includePriceFilteredProducts |
Obrigatório para minPriceFilter e maxPriceFilter |
True/false. Altera a função de minPriceFilter e maxPriceFilter de excluir para incluir. Se não especificado, o valor predefinido é false, excluindo produtos cujo preço corresponda ao intervalo definido. Se true, exclui todos os produtos fora do intervalo de preços. Exemplo: includePriceFilteredProducts=true |
| maxPriceFilter |
Opcional |
Valor máximo do filtro de intervalo de preço. Este filtro corresponde ao preço promocional do produto ou ao preço base, caso não exista preço promocional. O valor deve ser indicado em cêntimos. Note: Este parâmetro não funciona corretamente sem o uso de includePriceFilteredProducts. Exemplo: maxPriceFilter=10099 (equivalente a 100,99) |
| minPriceFilter |
Opcional |
Valor mínimo do filtro de intervalo de preço. Este filtro corresponde ao preço promocional do produto ou ao preço base caso não exista preço promocional. O valor deve ser indicado em cêntimos. Note: Este parâmetro não funciona corretamente sem o uso de includePriceFilteredProducts. Exemplo: minPriceFilter=579 (equivalente a 5,79) |
| rfm |
Opcional |
Refinements são utilizados para garantir que os produtos recomendados possuem um valor específico de atributo. Cada refinement é especificado como um par nome/valor separado por dois pontos. Exemplo: rfm=name:value Para indicar apenas a existência do atributo, pode omitir o valor. Exemplo: rfm=name Para especificar múltiplos refinements, utilize uma lista delimitada pelo carácter pipe "|". Exemplo: rfm=attributeName|attributeName1:value1|attributeName2:value2 Para mais informações, consulte a secção Refinements. |
| rfm_cond |
Opcional |
Refina as recomendações com base em múltiplos valores utilizando os operadores lógicos 'and' e 'or', com o carácter pipe ('|') como delimitador para separar os valores. Note: rfm_cond só será aplicado se rfm estiver a ser utilizado. Se o parâmetro 'rfm_cond' não estiver presente no pedido, será considerado o comportamento predefinido (ou seja, lógica 'and'). Exemplo: rfm=attributeName:value1|attributeName2:value2&rfb=false&rfm_cond=or |
| rfb |
Opcional |
Refinement Fall-Back. Controla o comportamento de fallback quando os refinements não produzem resultados suficientes. Exemplo: rfb=false O valor predefinido é true, o que significa que valores de refinement que reduzam as recomendações abaixo do limite mínimo do placement serão descartados. Para mais informações, consulte a secção Refinements. |
Segmentação de público
Parâmetros que influenciam quais recomendações são exibidas para usuários ou segmentos específicos com base em regras de segmentação ou lógica de público-alvo. Segmentos personalizados podem ser criados com base nesses parâmetros no Criador de Segmentos.
|
Nome |
Obrigatório ou Opcional |
Descrição |
|---|---|---|
| cv | Opcional |
Valor do carrinho. Usado para campanhas direcionadas que envolvem o valor do carrinho. É expresso em centavos; por exemplo, US$ 10 são representados como 1000. Exemplo: cv=9550 (equivale a 95,50) |
| ipor |
Opcional |
Endereço IP do shopper. Utilize apenas se o pedido à API não for proveniente do dispositivo do shopper (por exemplo, integração server-side). Exemplo: ipor=255.255.255.255 |
| pref |
Opcional |
URL da página de referência. Pode existir em qualquer página. Indica o referer do shopper antes de visualizar a página. Utilizado para reporting e merchandising. Altamente recomendado. Exemplo: pref=http://www.google.com |
| sgs |
Opcional |
Fornece segmentos de utilizador. Utilizado para campanhas direcionadas por segmento. Liste cada segmento no formato segment_number:segment_name e utilize o carácter pipe "|" para separar segmentos. Deve enviar tanto o ID do segmento como o nome do segmento para cada entrada. Exemplo: sgs=101:NewUser|202:Male |
| userAttribute |
Opcional |
Chaves e valores personalizados que descrevem o utilizador atual. Separe a informação utilizando ponto e vírgula e o carácter pipe "|". Exemplo: userAttribute=eye_color:blue;green|hair_color:brown |
| userAttributeReplace |
Opcional |
A utilização é igual a userAttribute, com a diferença de que os atributos enviados em userAttributeReplace substituem todos os valores anteriormente enviados para esse atributo. Exemplo: userAttributeReplace=eye_color:black No exemplo acima, todos os valores anteriores de eye_color serão removidos e substituídos por black. Se o mesmo atributo for enviado no mesmo pedido em userAttribute e em userAttributeReplace, o valor enviado em userAttributeReplace terá prioridade. Este atributo também suporta atualização de eliminação de valores. Exemplo: userAttribute=eye_color:|hair_color: |
Parâmetros opcionais e avançados
Parâmetros adicionais que modificam o comportamento ou ampliam a funcionalidade, mas que não são necessários para integrações padrão.
|
Nome |
Obrigatório ou Opcional |
Descrição |
|---|---|---|
| flv |
Opcional |
Versão Flash do browser. Utilizado apenas quando o conteúdo apresentado é em Flash. Exemplo: flv=20.0.0.306 |
| jcb |
Obrigatório para jsonp |
Nome da função JavaScript para a qual os dados JSON são enviados. Deve ser especificado se jsonp estiver definido como true. Exemplo: jcb=processData |
| jsonp |
Opcional |
Flag booleana. O único valor válido é true. Se definido como true, o parâmetro jcb também deve ser fornecido. Exemplo: jsonp=true |
| strategySet |
Opcional |
Lista priorizada de conjuntos de estratégias que pretende devolver com base no caso de uso da campanha. Consulte os detalhes adicionais na secção Strategy Families abaixo. Se não for fornecido, o motor de recomendação executa King of the Hill (KOTH) para apresentar as melhores recomendações com base na informação disponível. Exemplo: strategySet=SiteWideBestSellers ou strategySet=ProductBoughtBought|ProductViewedViewed |
| mvt_ftr |
Opcional |
Significa 'MVT Force Treatment'. Este parâmetro é frequentemente usado ao visualizar o processamento MVT ou quando uma plataforma de experimentação externa controla a alocação de tráfego. Example: mvt_ftr=treatment ID |
Parâmetros de implementação e integração
Parâmetros usados principalmente durante a configuração inicial, testes ou migração, e que normalmente não são necessários para uso em produção a longo prazo.
|
Nome |
Obrigatório ou Opcional |
Descrição |
|---|---|---|
| fdm |
Opcional |
Force Display Mode. True/false. Se definido como true, força a exibição. Por exemplo, em modo listen, devolve produtos ignorando o registo. Valores válidos: Para true: "t", "on", "yes", "true", "1", "y" Para false: "f", "off", "no", "false", "0", "n" |
| udd |
Opcional |
Use Dummy Data. True/false. Se definido como true, devolve produtos aleatórios para fins de teste. Exemplo: udd=t |
Adicionar o atributo 'categoryRec' na resposta
Quando uma estratégia está configurada para devolver categorias, cada produto devolvido por essa estratégia inclui o atributo categoryRec na resposta. Quando categoryData está definido como True para uma estratégia, cada produto devolvido incluirá categoryRec na resposta e apresentará os seguintes detalhes de categoria para os produtos na estratégia:
-
name
-
id
-
linkURL
-
imageURL
A informação de categoria para o Category Link URL e o Category Image URL pode ser fornecida no feed. Em alternativa, os link URLs podem ser construídos com base num padrão de URL, que pode ser configurado em Configurações do Site.
Exemplos de Pedidos (Recommend)
Obter o placement da Home Page com o ID de placement rr1 para o utilizador com ID 48454648:
GET /rrserver/api/rrPlatform/recsForPlacements?apiKey=showcaseparent&apiClientKey=776cdd80331919e7&userId=48454648&sessionId=827ccb0eea8a706c4c34a16891f84e7b&placements=home_page.rr1
Solicitar o placement da Item Page com o ID de placement vertical_rail, utilizando o ID de produto seed 24516217 para o utilizador com ID 48454648.
GET /rrserver/api/rrPlatform/recsForPlacements?apiKey=showcaseparent&apiClientKey=776cdd80331919e7&userId=48454648&sessionId=827ccb0eea8a706c4c34a16891f84e7b&placements=item_page.vertical_rail&productId=24516217
Solicitar o placement da Add to Cart Page com o ID demo_mobile para o utilizador com ID 48454648, enviando 24516217 (ID do produto adicionado ao carrinho) no parâmetro atcid.
GET /rrserver/api/rrPlatform/recsForPlacements?apiKey=showcaseparent&apiClientKey=776cdd80331919e7&userId=48454648&sessionId=827ccb0eea8a706c4c34a16891f84e7b&placements=add_to_cart_page.demo_mobile&atcid=24516217
IMPORTANT: Se estiver a realizar uma implementação server-side, certifique-se de que adiciona cabeçalhos de compressão ao pedido. Isto permite que os servidores RR comprimam a resposta, resultando num payload menor e num tempo de resposta mais rápido. Exemplo:
Accept-Encoding: deflate, gzip
Exemplo de Resposta (Recommend)
{
"rcs": "eF5j4cotK8lM4TMzsNA11DVkKU32MEkyBAJjM11jYzMzXRNTozRdA0sgYZxiammQaGJmZmaaDABuTQ0O",
"placements": [
{
"htmlElementId": "home_page_0",
"placementType": "home_page",
"strategyMessage": "Shop Top Sellers",
"html": "",
"placement": "home_page.rr1",
"recommendedProducts": [
{
"clickURL": "https://integration.algorecs.com/rrserver/apiclick?a=showcaseparent&cak=776cdd80331919e7&ct=http%3A%2F%2Flabs.richrelevance.com%2Fstorre%2Fcatalog%2Fproduct%2Fview%2Fsku%2F22127002&vg=4b121136-3366-452f-092f-3d590a46665c&stid=126&pti=9&pa=11339&pos=0&p=22127002&channelId=776cdd80331919e7&s=827ccb0eea8a706c4c34a16891f84e7b&u=12345&mvtId=-1&mvtTs=1529712166361",
"regionPriceDescription": "",
"salePriceRangeCents": [
1,
1
],
"rating": 3.884,
"numReviews": 0,
"priceRangeCents": [
1,
1
],
"categoryIds": [
"Electronics",
"Electronics.Computers",
"Electronics.Computers.Tablet PCs"
],
"clickTrackingURL": "https://integration.algorecs.com/rrserver/apiclick?a=showcaseparent&cak=776cdd80331919e7&vg=4b121136-3366-452f-092f-3d590a46665c&stid=126&pti=9&pa=11339&pos=0&p=22127002&channelId=776cdd80331919e7&s=827ccb0eea8a706c4c34a16891f84e7b&u=12345&mvtId=-1&mvtTs=1529712166361",
"salePriceCents": 1,
"regionalProductSku": "22127002",
"imageURL": "http://labs.richrelevance.com/storre/media/catalog/product/n/e/nextbook-7quot-tablet-with-8gb-memory-with-google-mobile-services-73fbdb1640b18e99695aa87c7da712f5.jpg",
"name": "\"Nextbook 7\\\" Tablet with 8GB Memory with Google Mobile Services\"",
"genre": "default",
"isRecommendable": true,
"priceCents": 6900,
"attributes": {
"MktplcInd": [
"W"
],
"Clearance": [
"N"
],
"97CentShipping": [
"N"
],
"Rollback": [
"N"
],
"Online": [
"Y"
],
"ListPrice": [
"79"
],
"AddToCart": [
"Y"
],
"IsReducedPrice": [
"N"
],
"IsSubmap": [
"N"
],
"S2S": [
"Y"
]
},
"id": "22127002",
"categories": [
{
"hasChildren": false,
"name": "Electronics",
"childCategories": [],
"ancestorCategories": [],
"id": "Electronics",
"isActive": false
},
{
"hasChildren": false,
"name": "Computers",
"childCategories": [],
"ancestorCategories": [],
"id": "Electronics.Computers",
"isActive": false
},
{
"hasChildren": false,
"name": "Tablet PCs",
"childCategories": [],
"ancestorCategories": [],
"id": "Electronics.Computers.Tablet PCs",
"isActive": false
}
],
"categoryRec": {
"name": ,
"linkURL",
"imageURL",
"id":
},
"productURL": "http://labs.richrelevance.com/storre/catalog/product/view/sku/22127002",
"brand": "Nextbook"
}
]
}
],
"viewGuid": "4b121136-3366-452f-092f-3d590a46665c",
"status": "ok"
}
Parâmetros clickURL e clickTrackingUrl
A tabela abaixo descreve os principais parâmetros incluídos em clickURL e clickTrackingUrl, bem como a sua finalidade e utilização.
|
Nome |
Descrição |
|---|---|
| a | Corresponde à apiKey. Exemplo: a=:showcaseparent. |
| cak | Chave de cliente da API. Exemplo: cak=776cdd80331919e7. |
| ct |
Corresponde ao link URL do produto recomendado. É definido pelo cliente no catalog feed ou na Streaming Catalog API. Este parâmetro aplica-se apenas a clickURL. Exemplo: ct=http%3A%2F%2Flabs.richrelevance.com%2Fstorre%2Fcatalog%2Fproduct%2Fview%2Fsku%2F22127002. |
| vg |
View guid – utilizado para analytics. Exemplo: vg=4b121136-3366-452f-092f-3d590a46665c. |
| stid |
ID da estratégia (qual estratégia de recomendação gerou o resultado). Exemplo: stid=126. |
| pti | ID do tipo de página (corresponde a home_page, item_page, etc.). Exemplo: pti=9. |
| pa | ID da área de placement (referência interna da área/widget). Exemplo: pa=11339. |
| pos | Posição do item na lista de recomendações (0 = primeiro, etc.). Exemplo: pos=0. |
| p | ID do produto recomendado. Exemplo: p=22127002. |
| channelId | Idêntico a cak. Exemplo: channelId=776cdd80331919e. |
| s | Corresponde ao valor enviado pelo cliente no parâmetro sessionId no pedido. Exemplo: s=827ccb0eea8a706c4c34a16891f84e7b. |
| u | Corresponde ao valor enviado pelo cliente no parâmetro userId no pedido. Exemplo: u=12345. |
| mvtId | ID do teste multivariado (-1 = não está em teste). Exemplo: mvtId=-1. |
| mvtTs | Timestamp do teste multivariado (epoch no momento da atribuição do MVT). Exemplo: mvtTs=1529712166361. |
Rastreamento de Eventos
Este endpoint regista automaticamente um evento de visualização de página quando é chamado. Também regista automaticamente uma impressão de placement para cada placement devolvido. Por exemplo, se solicitar três placements, mas apenas um for devolvido, este endpoint regista a impressão apenas para o placement devolvido.
Quando os placements de personalização são devolvidos, o recsForPlacements expõe tanto o productURL como os trackers de evento de clique. Quando o utilizador clica num produto recomendado, é obrigatório chamar o click event tracker correspondente antes de redirecionar o utilizador para a página de detalhe do produto. Isto garante que a Algonomy consegue associar o clique às visualizações e medir corretamente o CTR. Esta API expõe os seguintes URLs:
-
productURL é o URL direto para a página de detalhe do produto. Utilize este URL para criar o link para a página do produto, normalmente como atributo href de uma tag <a>.
-
clickTrackingURL regista o clique no produto sem redirecionar o utilizador para a página de detalhe. Para fins de SEO, pode utilizar este URL juntamente com productURL e acionar um pedido para clickTrackingURL através de um event listener de clique.
-
clickURL regista o clique no produto e redireciona o utilizador para a página de detalhe através de um redirecionamento HTTP 301.
-
amrid regista o clique na regra de Advanced Merchandising que devolveu a recomendação do produto.
Para rastrear cliques com sucesso, utilize uma das seguintes opções:
-
Utilize clickURL, que regista automaticamente o clique e redireciona o utilizador para a página de detalhe do produto, ou
-
Utilize productURL como URL final e acione um pedido para clickTrackingURL através de um event listener. Esta é a abordagem recomendada quando existe otimização de SEO.
O seu código deve incluir lógica semelhante à seguinte para apresentar recomendações de produtos personalizadas:
$('#personalization').on('click', 'a', function() {
var targetURL = $(this).data('clickTrackingURL');
var img = new Image();
img.src = targetURL;
});
var recsForPlacementsURL = 'https://recs.algorecs.com/rrserver/api/rrPlatform/recsForPlacements?apiKey=a6x5029gd6941a22&apiClientKey=x3f023fd649003&placements=home_page.recommend&sessionId=27083322340392734752015'
$.getJSON(recsForPlacementsUrl, function(r) {
if (!(r.placements && $.isArray(r.placements))) {
return false;
}
var placementElement = $('#personalization');
var products = r.placements[0].recommendedProducts;
for (var i in products) {
var product = $('<a>')
.attr('href', products[i].productURL)
.data('clickTrackingURL', products[i].clickTrackingURL)
.text(products[i].name)
.appendTo(placementElement);
}
});
This will create the following HTML structure, and will trigger a click event before redirecting the user to the Product Detail Page.
<!-- The href value is productURL from a recsForPlacements response -->
<div id="personalization">
<a href="/product/1">Product 1</a>
<a href="/product/2">Product 2</a>
<a href="/product/3">Product 3</a>
<a href="/product/4">Product 4</a>
<a href="/product/5">Product 5</a>
</div>
Testes
Para testar a integração dos eventos de clique, utilize um web proxy ou as Developer Tools do seu browser para monitorizar os pedidos de rede. Deve visualizar um pedido semelhante ao seguinte:
http://recs.algorecs.com/rrserver/apiclick?a=5c84741760900058&vg=c12ab4b2...s=1437007681319&pg=1653&p=36714988&ind=0
Este pedido deverá apresentar um código de estado 200 e um corpo de resposta vazio.
IMPORTANT: Se não visualizar este pedido, a página não está a registar eventos. Certifique-se de que os cliques estão a ser registados e enviados para a Algonomy. A ausência de registo de cliques terá um impacto negativo no desempenho da personalização.
Para forçar o modo de Desenvolvimento, utilize 'devMode=true'.