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.

Copy
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.

Copy
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
"categories": [
  {
    "hasChildren": false,
    "name": "Solder",
    "childCategories": [],
    "ancestorCategories": [
      {
        "hasChildren": true,
        "name": "Metals",
        "childCategories": [],
        "ancestorCategories": [],
        "id": "4",
        "isActive": false
      }
    ],
    "id": "1572",
    "isActive": false
  }
],
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
"mvt":
[
{ "testId":12953, "control":false, "treatmentId":15707, "treatmentName":"T2 - recs OFF” }
], 
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
"mvtDetailed":
[
{ "eligible":true, "testId":12953, "control":false, "treatmentId":15707, "treatmentName":"T2 - recs OFF” }
]

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
"placements":[
{
"mvtTreatments": [
{
"testType": "Placement”,
"testId": 55564,
"control": true,
"treatmentId": 60129,
"treatmentName": "swap_each_other"
}
]

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
"skuData": [{
  "color": "White",
  "size": "12",
  "image_url": "http://demandware.edgesuite.net/9400.jpg",
  "sku_id": "9400"
}, {
  "color": "White",
  "size": "13",
  "image_url": "http://demandware.edgesuite.net/9401.jpg",
  "sku_id": "9401"
}]
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:

Copy
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.

Copy
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.

Copy
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:

Copy
Accept-Encoding: deflate, gzip

Exemplo de Resposta (Recommend)

Copy
{
  "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:

  1. Utilize clickURL, que regista automaticamente o clique e redireciona o utilizador para a página de detalhe do produto, ou

  2. 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:

Copy
$('#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.

Copy
<!-- 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:

Copy
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'.