Documentación API Recomendador
Documentación de la API
Recommender API
El sistema recomendador funciona como una API REST en donde por cada visita de un usuario, o previo a mandar un e-mail de recomendación de contenido, se le realiza una consulta directa al sistema enviándole parámetros relacionados con el usuario, el contenido que está consumiendo, metadatos del contenido, etc.
Requisitos
Previo a implementar el recomendador, se necesita:
- Partner ID: Identificador de partner provisto por el equipo de Retargetly.
- Content ID format: Debe proporcionar a Retargetly cuál es el formato del identificador del contenido. Puede ser una URL completa (sin querystring), o un identificador que se extrae de la URL, o el path de la URL luego de la última. Sea cual sea, debe quedar estipulado antes de comenzar con la implementación para que el recomendador funciona correctamente.
Arquitectura
El servicio de recomendación consta de varios micro-servicios intermedios que cumplen distintos propósitos. Este es el diagrama de flujo que representa los distintos servicios que corren por detrás:
User Recommendation Request: es el envío de un pedido de recomendación. Puede ser lanzado cuando un usuario visita una página o al enviar un e-mail con recomendación de contenido.
Front API Rest: API encargada de recibir todos los requests y validar los parámetros recibidos, así como también convertir los mismos al formato específico que necesita el Back API Rest. Transmite la respuesta de Back API a la respuesta final del pedido de recomendación.
Back API Rest: API encargada de recibir todos los parámetros y tomar decisiones para llamar a los distintos motores de recomendación, formatear y devolver las recomendaciones necesarias.
Popularity Engine: Motor de recomendación basado en el volumen de tráfico por contenido dado el tráfico de las últimas 24 horas.
Trend Engine: Motor de recomendación basado en el volumen de tráfico por contenido dado el tráfico de la última hora.
Co-Ocurrence Engine: Motor de recomendación basado en qué otros contenidos navegan los usuarios que vieron el mismo contenido que está viendo el usuario actualmente.
Profiling Engine: Motor de recomendación basado en afinidad entre el perfil del usuario actual y qué contenido visitaron usuarios similares.
Endpoint
HTML
GET https://recommender.retargetly.com/get
Headers
Parámetro | Valor |
Content-Type | application/json |
Body Parameters
Parámetro | Descripción | Opcional | Valor Por Default | Posibles Valores |
partnerId | ID de partner, provisto por Retargetly. | no |
|
|
E-mail del usuario. | no, siempre y cuando se envíen cookies de retargetly.com |
|
| |
contentId | Identificador del contenido que el usuario está viendo actualmente. | no |
|
|
url | Se puede pasar la URL que el usuario está viendo actualmente (sin querystring). | si | null |
|
isBrandSafe | Indica si el contenido actual es Brand Safe o no. | si | false | truefalse |
recommendSafeContent | Indica si las recomendaciones deben ser Brand Safe o no. | si | false | truefalse |
quantity | Cantidad de contenidos recomendados. | si |
| min: 1, max: 20 |
Example (CLI)
Request
HTML
curl -X GET "https://recommender.retargetly.com/get" -H 'Content-Type: application/json' -d'{
"partnerId": "123",
"mail": "some@email.com",
"url": "www.example.com/content/example",
"contentId": "12341",
"isBrandSafe": true,
"recommendSafeContent": true,
"quantity": 10
}'
Response
Js
{"response": "recommendations": ["12342","12343","12344","12345","12346","12347","12348","12349","12350","12351"]}
Example (JavaScript with jQuery)
Request
Js
var data = {
"partnerId": "123",
"mail": "some@email.com",
"contentId": "12341",
"url": "www.example.com/content/example",
"isBrandSafe": true,
"recommendSafeContent": true,
"quantity": 10}
$.ajax({
url: "https://recommender.retargetly.com/get",
type: 'GET',
dataType: 'json',
xhrFields: { withCredentials: true },
data: JSON.stringify(data),
contentType: 'application/json; charset=utf-8',
success: function(data) {
console.log(data);
}})
response
Js
{"response": "recommendations": ["12342","12343","12344","12345","12346","12347","12348","12349","12350","12351"]}