Usar APIs de campañas
Prisma Campaigns proporciona varias APIs relacionadas con campañas. Los endpoints que se enumeran a continuación permiten a los desarrolladores recuperar las campañas activas de cada cliente, mostrar banners e imágenes en placeholders, ver los pasos del funnel e incluso disparar campañas en base a ciertos eventos de negocio.
Campañas activas
Esta API devuelve todas las campañas activas de un cliente determinado. Para utilizarla, es necesario hacer lo siguiente:
URL | Método | Tipo de datos |
---|---|---|
/api/campaigns/active | POST | EDN |
La información a enviar es un objeto EDN:
data = {
:app-token "D17C100F-0668-400A-AF91-967FE1A09A9E"
:customer-id "5114932"
:category "Sales"
:group "Cars"
:trail-id "882252f3-fe70-4402-9195-639d8037f339"
}
Parámetro | Descripción |
---|---|
app-token | Identificador integrado de la aplicación que efectúa la solicitud |
customer-id | ID del cliente (si está disponible) |
category | (Opcional) Nombre de una categoría de campaña para emplear como filtro |
group | (Opcional) Nombre de un grupo de campaña para emplear como filtro |
trail-id | ID de visita que se asociará con esta acción |
Banners y popups
Con esta API es posible devolver la lista de banners e imágenes disponibles en un determinado placeholder. Cada página o pantalla puede incluir varios banners (o al menos un único popup). En cualquier caso, la sincronización de la pantalla o de la aplicación se realiza invocando una misma API. La respuesta incluye todos los elementos correspondientes a esa pantalla para el cliente en cuestión.
URL | Método | Tipo de datos |
---|---|---|
/api/campaigns/sync-page | POST | EDN o JSON |
data = {
:app-token "D17C100F-0668-400A-AF91-967FE1A09A9E"
:customer-id "5114932"
:trail-id "882252f3-fe70-4402-9195-639d8037f339"
:sync-popups true
:page-location "http://my.domain/page"
:placeholders [
{:placeholder "id-placeholder1"}
{:placeholder "id-placeholder2"}
]
}
"data": {
"app-token": "D17C100F-0668-400A-AF91-967FE1A09A9E",
"customer-id": "5114932",
"trail-id": "882252f3-fe70-4402-9195-639d8037f339",
"sync-popups": "true",
"page-location": "http://my.domain/page",
"placeholders": [
{"placeholder": "id-placeholder1"},
{"placeholder": "id-placeholder2"}
]
}
Parámetro | Descripción |
---|---|
app-token | Identificador integrado de la aplicación que efectúa la solicitud |
customer-id | ID del cliente (si está disponible) |
placeholders | Lista de placeholders definidos en la página o pantalla de interés |
trail-id | ID de visita que se asociará con esta acción |
page-location | ID de la pantalla o página |
sync-popups | Valor booleano para indicar si se desea recuperar popups del page-location actual o no |
La respuesta es un objeto EDN o JSON con dos conjuntos de datos:
- Banners para mostrar en cada placeholder
- Información sobre el popup a mostrar (si aplica)
y tiene la siguiente estructura:
response = {
:popup = {}
:placeholders = [{} {}]
}
"response": {
"popup": {},
"placeholders": [{}, {}]
}
Popup
La estructura de información correspondiente a un popup contiene los siguientes datos:
popup = {
:tracking-token
:campaign
:show-close
:funnel
}
Respuesta | Descripción |
---|---|
tracking-token | ID de la interacción (para propósitos de trazabilidad) |
campaign | ID de campaña |
show-close | Valor booleano que indica si se debe permitir al cliente cerrar el popup o no |
funnel | Parámetros de configuración del funnel |
Para mostrar el funnel asociado con un popup determinado, la API se debe invocar como se indica a continuación: /api/campaigns/:campaign/funnel?d=:tracking-token&a=:app-token&t=:trail-id&popup=true
Placeholders
El atributo placeholders
en la respuesta de la API sync-page
contiene la lista de los banners que se visualizarán en cada uno de los placeholders solicitados.
Si un placeholder no posee ningún banner asociado para un cliente en particular, la respuesta estará vacía.
La estructura de información correspondiente a un placeholder se muestra abajo:
placeholder = {
:customer-id "5114932"
:banners-list [{b1} {b2}]
:is-popup false
:popup-timeout 1000
:transition-time 5000
:width 800
:height 600
}
Parámetro | Descripción |
---|---|
customer-id | ID de cliente o un identificador temporario en caso de que se trate de un cliente anónimo |
banners-list | Lista de banners asociados con un placeholder |
transition-time | Tiempo de transición entre imágenes si el placeholder se configura en modo carrusel |
is-popup | Valor booleano que indica si un banner se mostrará en el popup (de acuerdo a su configuración) |
popup-timeout | Tiempo de espera para cerrar el popup si está desplegando un banner |
Cada objeto dentro de banners-list
contiene los detalles de un banner para el placeholder en cuestión. En caso de que haya más que uno, será posible desplegarlos en distintos modos (carrusel, grilla, etc).
banner-detail = {
:banner {banner object}
:funnel {funnel object}
}
Parámetro | Descripción |
---|---|
width | Ancho del placeholder |
height | Altura del placeholder |
campaign | ID de campaña |
tracking-token | ID de interacción (para propósitos de trazabilidad) |
Link | (Opcional) Link de la imagen en caso de tratarse de un banner de imagen |
HTML-content | (Opcional) Contenido HTML en caso de que el banner sea de ese tipo |
Dentro del objeto funnel hay propiedades relacionadas con el proceso de conversión del cliente junto con los datos sobre el primer paso del funnel.
Parámetro | Descripción |
---|---|
style | Estilos particulares para aplicar el funnel (en formato CSS) |
allow-dismiss | Valor booleano que indica si la campaña permitirá que el cliente manifieste que no le interesa la misma |
landing-page | Valor booleano que revela si la campaña tiene una página de inicio |
always-use-landing | Valor booleano que señala si siempre se debe mostrar la página de inicio para comenzar |
show-progress-bar | Valor booleano que especifica si la barra de progreso del funnel se debe mostrar o no |
new-window | Valor booleano que indica si el funnel debe desplegarse en una nueva ventana |
Pasos del funnel
Para obtener los pasos definidos en el funnel se puede emplear la API advance-funnel
. Este recurso devolverá los pasos (uno por uno) a medida de que el cliente vaya completándolos.
Si hay bifurcaciones en el funnel, en base a los datos u otros parámetros de usuario el siguiente paso se determinará después de que concluya la acción actual. De esta forma, se debe utilizar la API para obtener el primer paso del funnel cuando el cliente se interese por la campaña, así como los siguientes pasos a medida que cada uno de ellos termine.
URL | Método | Tipo de datos |
---|---|---|
/api/campaigns/advance-funnel | POST | EDN o JSON |
La información a enviar es un objeto EDN o JSON:
data = {
:trail-id "882252f3-fe70-4402-9195-639d8037f339"
:campaign-id 123123101
:tracking-token "12312-21919-j1b3-121m-1212"
:step-data {}
}
"data": {
"trail-id": "882252f3-fe70-4402-9195-639d8037f339",
"campaign-id": "123123101",
"tracking-token": "12312-21919-j1b3-121m-1212",
"step-data": {}
}
Parámetro | Descripción |
---|---|
trail-id | ID de visita que se asociará con esta acción |
campaign-id | ID de campaña |
tracking-token | Identificador de interacción (para propósitos de trazabilidad) |
step-data | Información sobre pasos previos del funnel (si existen) |
Los parámetros campaign-id
y tracking-token
deben concordar con la interacción del usuario. Por ejemplo, si el cliente hizo clic en un banner, se deben incluir el identificador de campaña y el tracking token.
Cuando el usuario comienza el funnel no se debe enviar el parámetro
step-data
. En todos los demás casos sí es requerido (aunque sea vacío) para avanzar al próximo paso.
La estructura de la respuesta se muestra a continuación:
response = {
:type data-capture | message | redirect
:config {}
}
Respuesta | Descripción |
---|---|
type | Tipo de paso (data-capture , message o redirect ) |
config | Configuración del paso (depende del tipo) |
El detalle de configuración para cada tipo de paso se indica a continuación.
Mensaje
step = {
:title
:message
:actions
:remaining-steps
:max-steps
}
"step": {
"title":
"message":
"actions":
"remaining-steps":
"max-steps":
}
Dato | Descripción |
---|---|
title | Título del mensaje |
message | Mensaje a desplegar |
actions | Lista de acciones disponibles en el paso actual: next , cancel , etc. |
remaining-steps | Número de pasos restantes |
max-steps | Cantidad máxima de pasos del funnel |
Captura de datos
step = {
:fields
:actions
:remaining-steps
:max-steps
}
"step": {
"fields":
"actions":
"remaining-steps":
"max-steps":
}
donde
Dato | Descripción |
---|---|
fields | Lista de campos a capturar |
actions | Lista de acciones disponibles en el paso: next , cancel , etc. |
remaining-steps | Número de pasos restantes |
max-steps | Cantidad máxima de pasos del funnel |
En este caso, fields
indica cuáles campos son requeridos en el paso actual, donde cada uno posee la siguiente estructura:
field = {
:label
:name
:control-type
:value
}
"field": {
"label":
"name":
"control-type":
"value":
}
Dato | Descripción |
---|---|
label | Etiqueta a mostrar en el campo de captura |
name | Nombre del campo |
control-type | Tipo de control a emplear para la captura |
value | Valor actual del campo (si existe) |
Al invocar la API advance-funnel
, los datos deben incluir los valores de los campos capturados utilizando name
como referencia.
Redirección
El detalle de configuración para un paso de redirección es el siguiente:
step = {
:url
:method
:parameters
:include-system-params
:new-window
}
"step": {
"url":
"method":
"parameters":
"include-system-params":
"new-window":
}
Dato | Descripción |
---|---|
url | URL de redirección |
method | GET o POST (depende del tipo de redirección) |
parameters | Lista de parámetros para la consulta |
include-system-params | Valor booleano que indica si campaign-id , trail-id y tracking-token son campos obligatorios en la consulta |
new-window | Valor booleano que especifica si la redirección debe efectuarse en una nueva ventana |
Clientes
Este endpoint permite crear o actualizar la información de un cliente existente:
URL | Método | Tipo de datos |
---|---|---|
/api/customers | POST | EDN o JSON |
La información a enviar es un objeto EDN o JSON:
data = {
:customer {:id 12345
:field "xxyyzz"}
:app-token "882252f3-fe70-4402-9195-639d8037f339"
}
"data": {
"customer": {"id": "12345",
"field": "xxyyzz"},
"app-token": "882252f3-fe70-4402-9195-639d8037f339"
}
Parámetro | Descripción |
---|---|
app-token | Identificador integrado de la aplicación que efectúa la solicitud. Se debe seleccionar la plataforma REST en dicha aplicación. |
customer | Cliente que se desee actualizar identificado por id (campo obligatorio). El resto de los campos que se envíen deben existir en el esquema definido y concordar en el tipo de dato. |
El resultado queda definido por uno de los siguientes códigos HTTP:
Código | Descripción |
---|---|
200 | La operación se completó exitosamente |
404 | El token de aplicación es inválido |
400 | Errores en el tipo de datos enviados |
500 | La llamada a la API no pudo actualizar la base de datos |
Eventos de negocio
Prisma Campaigns proporciona un método para activar campañas a partir de ciertos business events que son particulares para cada empresa. Debido a que dichos eventos solamente tienen sentido en el ámbito de una aplicación, el administrador debe configurar la que dará inicio a los mismos. Para lograr esto, es necesario dirigirse a Settings/Applications y crear un nuevo evento de negocio introduciendo un nombre (que debe ser único) y una descripción.
A continuación, puede asociar un evento con una campaña en la sección correspondiente de las configuraciones de la campaña. Por defecto, los eventos se aplican a todos los clientes del segmento, pero también se pueden filtrar si es necesario.
Para disparar un evento se debe enviar una solicitud POST como se indica a continuación:
URL | Método | Tipo de datos |
---|---|---|
/api/campaigns/business-event | POST | EDN o JSON |
El cuerpo de la misma debe contener los siguientes campos:
Dato | Descripción |
---|---|
app-token | Token de la aplicación |
event-name | Nombre del evento, tal como se definió en la configuración de la aplicación |
customer-id | ID de cliente |
context | Objeto con parámetros opcionales |
El servidor responderá con 202 Accepted
si la operación se completa exitosamente o 404 Not Found
en caso de que no se encuentre ninguna campaña que cumpla con dichas condiciones. Adicionalmente, la respuesta incluye los campos que se detallan a continuación:
Dato | Descripción |
---|---|
campaign | Nombre de la campaña que se activó |
trace-id | ID único correspondiente a la traza que se generó para el funnel actual |
tracking-token | Token generado para propósitos de trazabilidad |
Nota: El servidor puede devolver un objeto del tipo EDN o JSON dependiendo del contenido de los encabezados
Accept
yContent-Type
. Vale la pena aclarar que este último es obligatorio.
Artículos relacionados
En esta página