Referencia de todos los objetos de la API REST de Personyze — users, listas, acciones, placeholders, productos, artículos, interacciones, eventos, sesiones, estadísticas y summary_actions: métodos, columnas e indexación.
26 min readActualizado hace 46 minutos
Referencia de todos los objetos que expone la API REST de Personyze. Cada sección de abajo cubre un objeto: su finalidad, los métodos HTTP admitidos, las columnas (con notas de tipo e indexación) y ejemplos de curl listos para copiar y pegar.
Requisitos previos — léalos primero si aún no lo ha hecho:
Autenticación — cómo obtener su clave de API, cómo enviarla, configuraciones con varias cuentas
Parámetros de ruta — la sintaxis where/columns/order_by/limit que recorre todos los ejemplos de abajo
Índice de objetos
Haga clic en un objeto para ir a su sección. Cada sección tiene su propia URL de ancla — puede enlazar directamente a la referencia de cualquier objeto.
Contenido CRUD (lectura/escritura)
Contienen sus campañas, su audiencia, su catálogo y su configuración. CRUD completo para External API user y superiores.
usersPerfiles de clientes. Los nombres de columna son dinámicos.
user_listsListas de usuarios con nombre (manuales o importadas).
Los usan el tracker de JS, los SDK nativos y las integraciones para arrancar por sí mismos. Normalmente no los llaman directamente quienes consumen la API REST.
tracker_codeDevuelve el fragmento de JS que se inserta en una página del cliente (salida HTML).
users
Perfiles de clientes. Cada fila es un visitante o cliente. Los nombres de columna son dinámicos — además de las columnas de gestión documentadas, puede guardar las claves y valores personalizados que necesite su cuenta.
GET
POST
PUT
DELETE
✅
✅
✅
✅
Columnas de identificación / gestión
Columna
Notas
user_id
Clave primaria interna de Personyze. Se asigna automáticamente al insertar. Indexada.
internal_id
Su identificador externo (ID del CRM, ID de cuenta, SKU). Indexado.
fb_id
ID de usuario de Facebook. Indexado.
email
Email del visitante. Indexado.
last_session_time
Segundos Unix. Indexado.
data_last_modified
Segundos Unix. Indexado.
session_counter
Total de sesiones registradas hasta ahora para este usuario.
Campos de perfil comunes (personalizados)
first_name, middle_name, last_name, sex, birthday, timezone, current_city, current_state, current_country, religion, political, interests, relationship_status, education_year, más custom_t_1…custom_t_6 (texto), custom_i_1…custom_i_4 (entero), custom_f_1…custom_f_2 (decimal), custom_d_1, custom_d_2 (fecha) — y cualquier campo adicional que haya configurado en su cuenta.
Ejemplos
# Lookup by your external id
curl 'https://api:KEY@app.personyze.com/rest/users/where/internal_id=42'
GET /rest/users sin una cláusula where requiere order_by sobre una columna indexada — user_id, last_session_time, data_last_modified, fb_id, email, o internal_id. De lo contrario: 400 Cannot do this operation on whole table.
Limitación de solicitudes
POST /rest/users se serializa por cuenta de Personyze: como máximo una inserción en curso a la vez. Las solicitudes que esperan más de 1 segundo se rechazan con 400 Too many simultaneous requests — reintente con espera exponencial.
user_lists
Listas de usuarios con nombre (p. ej. «VIPs», «Suscritos a la newsletter»). Una fila por lista. La pertenencia está en un objeto aparte — consulte user_list_users.
GET
POST
PUT
DELETE
✅
✅
✅
✅
Columnas
Columna
Notas
id
Clave primaria. Se asigna automáticamente.
name
Nombre visible de la lista. Indexado.
Ejemplos
# All lists
curl 'https://api:KEY@app.personyze.com/rest/user_lists'
# Delete (also clears all memberships in user_list_users via FK cascade)
curl -X DELETE 'https://api:KEY@app.personyze.com/rest/user_lists/17'
# → 1
user_list_users
Pertenencia: qué usuarios pertenecen a qué user_lists. Una fila por cada par (user_list_id, user_id) de valores.
GET
POST
PUT
DELETE
✅
✅
—
✅
POST acepta un user_idexistente, o una clave de búsqueda (user_internal_id, user_email) — la API la resuelve en un user_id, y crea una fila users provisional si hace falta.
Columnas
Columna
Notas
user_list_id
FK → user_lists.id. Parte de la clave compuesta.
user_id
FK → users.user_id. Parte de la clave compuesta.
Campos adicionales del cuerpo POST (se resuelven en user_id en el servidor y después se descartan)
Campo
Se resuelve en
user_internal_id
user_id del usuario con ese internal_id. Crea el usuario si no existe.
user_email
user_id del usuario con ese email. Crea el usuario si no existe.
Ejemplos
# Members of list 17
curl 'https://api:KEY@app.personyze.com/rest/user_list_users/where/user_list_id=17/limit/1000'
# Add by user_id
curl -X POST 'https://api:KEY@app.personyze.com/rest/user_list_users' \
-H 'Content-Type: application/json' \
-d '{"user_list_id":17,"user_id":5712334}'
# Add by external id (auto-creates a users row if needed)
curl -X POST 'https://api:KEY@app.personyze.com/rest/user_list_users' \
-H 'Content-Type: application/json' \
-d '{"user_list_id":17,"user_internal_id":"acct-987"}'
# Add by email
curl -X POST 'https://api:KEY@app.personyze.com/rest/user_list_users' \
-H 'Content-Type: application/json' \
-d '{"user_list_id":17,"user_email":"alice@example.com"}'
Acciones de personalización — lo que hacen sus campañas: mostrar HTML, mostrar un popup, enviar un email, enviar una notificación push, etc. Por ahora, solo lectura por REST (se crean y editan desde la GUI).
GET
POST
PUT
DELETE
✅
—
—
—
Columnas
Columna
Notas
id
Clave primaria.
version_tag
production o testing.
name
Nombre visible de la acción.
type_id
El tipo de acción (HTML / popup / email / push / …). Se resuelve a partir del campo subyacente action_js_id.
placeholders
Array JSON de los ID de placeholder a los que se dirige la acción.
content_type
Tipo MIME / clase de contenido (de actions_js).
content_param
Nombre de la clave del parámetro JS cuyo valor es el contenido que se muestra.
content_begin
Calculado: fragmento de apertura del contenido mostrado (tras sustituir el envoltorio).
content_end
Calculado: fragmento de cierre.
presenting_rules
JSON: reglas de tiempo / frecuencia.
libs_app
Bibliotecas de app de las que depende la acción.
Ejemplos
# All production actions
curl 'https://api:KEY@app.personyze.com/rest/actions
/where/version_tag=production
/columns/id,name,type_id,placeholders'
# One action's full content
curl 'https://api:KEY@app.personyze.com/rest/actions/where/id=42
/columns/id,name,content_type,content_param,content_begin,content_end'
conditions
Condiciones de audiencia — el cuándo de las campañas. Solo lectura por REST.
GET
POST
PUT
DELETE
✅
—
—
—
Columnas
Columna
Notas
id
Clave primaria.
name
Nombre visible de la condición.
Ejemplos
# All tracker/offline conditions
curl 'https://api:KEY@app.personyze.com/rest/conditions/limit/1000'
placeholders
Contenedores de tipo placeholder — huecos del DOM donde las acciones muestran contenido. Gestione el catálogo de placeholders definidos para su sitio.
GET
POST
PUT
DELETE
✅
✅
✅
✅
Columnas
Columna
Notas
id
Clave primaria.
name
Nombre visible.
html_id
Selector o id del DOM donde se monta el placeholder.
units_count_max
Número máximo de unidades de acción que pueden llenar este placeholder. Por defecto 1.
Ejemplos
# All placeholders
curl 'https://api:KEY@app.personyze.com/rest/placeholders'
# One
curl 'https://api:KEY@app.personyze.com/rest/placeholders/14'
Alcance del endpoint.El manejador limita todas las consultas a container_types='placeholder', así que los demás tipos de contenedor (p. ej. «grab variable») no se ven desde este endpoint — consulte containers_grab_variable.
containers_grab_variable
Contenedores «grab variable» — llevan valores del DOM/JS de la página del visitante a su perfil. Cada contenedor dice «vigila esta variable / este elemento del DOM; cuando aparezca, guárdalo como campo del perfil.»
GET
POST
PUT
DELETE
✅
✅
✅
✅
Columnas
Columna
Notas
id
Clave primaria.
name
Nombre visible.
is_active
1 / 0.
variable_path
Ruta del DOM o expresión JS que se recoge.
mask
Regex/plantilla opcional que se aplica a la cadena recogida.
constant_value
Valor alternativo / forzado opcional.
watch_variable
Volver a recoger cada vez que cambia la variable (1 / 0).
profile_column
Columna del perfil en la que se escribe el valor.
Ejemplos
# All grab-variable containers
curl 'https://api:KEY@app.personyze.com/rest/containers_grab_variable'
Catálogo de productos. Cada fila es un SKU. Los nombres de columna son dinámicos — además de las columnas de gestión documentadas, puede guardar los campos personalizados que necesite su catálogo.
GET
POST
PUT
DELETE
✅
✅
✅
✅
Columnas de identificación / gestión
Columna
Notas
id
Clave primaria. Se asigna automáticamente.
internal_id
Su SKU / identificador externo.
data_last_modified
Segundos Unix.
is_in_stock
'yes' / 'no' enum (no 1/0).
Campos de producto comunes (personalizados)
title, description_short, description_long, price, sale_price, image_big_url, image_medium_url, image_small_url, cart_url, brand, manufacturer, category, inventory, expiration_date, size, color, rank, is_new, age_from, age_to, available_location, not_available_location, etc. El conjunto real de campos depende de la configuración de su cuenta.
Entradas renombradas (en POST / PUT)
Entrada
Se guarda como
image_1
image_big_url
image_2
image_medium_url
image_3
image_small_url
Ejemplos
# In-stock products in a category
curl 'https://api:KEY@app.personyze.com/rest/products
/where/category=tools&is_in_stock=yes
/columns/id,internal_id,title,price,inventory
/order_by/title
/limit/100'
# Lookup by internal_id
curl 'https://api:KEY@app.personyze.com/rest/products/where/internal_id=SKU-1234'
# Insert (or "patch" — duplicate internal_id will UPDATE rather than fail)
curl -X POST 'https://api:KEY@app.personyze.com/rest/products' \
-H 'Content-Type: application/json' \
-d '{"internal_id":"SKU-1234",
"title":"Cordless Drill",
"price":129.99,
"is_in_stock":"yes",
"image_1":"https://cdn.example.com/big.jpg"}'
# → 51234
# Update by internal_id
curl -X PUT 'https://api:KEY@app.personyze.com/rest/products/where/internal_id=SKU-1234' \
-H 'Content-Type: application/json' \
-d '{"price":119.99,"is_in_stock":"no"}'
Comportamiento de upsert en POST.POST aplica parche si está duplicado: un internal_id existente actualiza la fila en lugar de fallar. Para importaciones masivas desde una URL de feed, use la sincronización programada de feeds desde la GUI de Personyze en lugar de llamadas REST fila a fila.
articles
Catálogo de artículos (entradas de blog, noticias, entradas de base de conocimiento). La misma forma que products pero para contenido editorial.
GET
POST
PUT
DELETE
✅
✅
✅
✅
Columnas de identificación / gestión
Columna
Notas
id
Clave primaria. Se asigna automáticamente.
internal_id
Su identificador externo (slug, id del CMS).
data_last_modified
Segundos Unix.
is_published
'yes' / 'no' enum.
Campos de artículo comunes (personalizados)
title, description_short, description_long, image_big_url, image_medium_url, image_small_url, author, publish_date, category, tags, rank, etc. La lista real depende de la configuración other_columns_info de su sitio.
Entradas renombradas
Entrada
Se guarda como
image_1
image_big_url
image_2
image_medium_url
image_3
image_small_url
Ejemplos
# Recent published articles
curl 'https://api:KEY@app.personyze.com/rest/articles
/where/is_published=yes
/columns/id,internal_id,title,author,publish_date
/order_by_desc/publish_date
/limit/100'
# Lookup by internal_id
curl 'https://api:KEY@app.personyze.com/rest/articles/where/internal_id=how-to-personalize'
# Insert
curl -X POST 'https://api:KEY@app.personyze.com/rest/articles' \
-H 'Content-Type: application/json' \
-d '{"internal_id":"how-to-personalize",
"title":"How to personalize your site",
"author":"Alice",
"is_published":"yes",
"image_1":"https://cdn.example.com/big.jpg"}'
Las interacciones con artículos van en el endpoint do.POST aplica parche si está duplicado (igual que products). Para registrar las interacciones de los visitantes con artículos (visto / comentado / me gusta), use do con los comandos Article … — hoy no hay un objeto REST dedicado.
products_interactions
Registro de interacciones con productos: vistas, añadidos al carrito, compras, «favorito», «entregado». Sobre todo de inserción. Respaldado por una tabla de archivo.
GET
POST
PUT
DELETE
✅
✅
✅
✅
Columnas
Columna
Notas
user_id
FK → users.user_id. Indexado.
product_internal_id
FK → products.internal_id. Columna inicial de un índice compuesto [product_internal_id, user_id, transaction_time].
quantity
Por defecto 1 al insertar.
status
Uno de viewed, delivered, extra (≈ añadido al carrito), favorite, goal (compra). Indexado.
action_id
Si la interacción se atribuyó a una acción de Personyze, su ID. Si no, null.
transaction_time
Segundos Unix — momento del pedido o de la transacción.
time
Segundos Unix — cuándo se registró la fila. Indexado.
amount
Valor monetario (según la configuración de moneda del sitio).
Inserción: identificar al usuario
POST acepta uno cualquiera de estos para identificar al usuario:
Campo
Se resuelve en
user_id (numérico)
Búsqueda directa por clave primaria.
user_internal_id
user_id del usuario con ese internal_id. Crea automáticamente una fila users provisional si no existe.
user_email
user_id del usuario con ese email. Se crea automáticamente si no existe.
Ejemplos
# All purchases in a window, paged
curl 'https://api:KEY@app.personyze.com/rest/products_interactions
/where/status=goal&time>1730000000
/order_by_desc/time
/limit/1000'
# A specific user's history with a product
curl 'https://api:KEY@app.personyze.com/rest/products_interactions
/where/product_internal_id=SKU-1234
/columns/user_id,status,quantity,amount,transaction_time'
# Log a purchase
curl -X POST 'https://api:KEY@app.personyze.com/rest/products_interactions' \
-H 'Content-Type: application/json' \
-d '{"user_internal_id":"acct-987",
"product_internal_id":"SKU-1234",
"quantity":2,
"status":"goal",
"transaction_time":1734000000,
"amount":259.98}'
# Delete by composite key
curl -X DELETE 'https://api:KEY@app.personyze.com/rest/products_interactions
/where/user_id=5712334&product_internal_id=SKU-1234&status=viewed'
Columnas indexadas
user_id, [product_internal_id, user_id, transaction_time], status, time. Las consultas sin una cláusula where sobre una de ellas (o un order_by sobre ellas) se rechazan como recorridos de tabla completa.
events
Registro de eventos genérico — una fila por cada evento registrado por el tracker de JS, el SDK o el endpoint do . Por ahora, solo lectura por REST.
GET
POST
PUT
DELETE
✅
—
—
—
Columnas
Columna
Notas
id
Clave primaria.
user_id
FK → users.user_id. Indexado.
time
Segundos Unix.
visit_id
FK → fila de visita.
container_id
FK → containers.id (el origen del evento). Indexado.
container_types
El tipo del contenedor (click event, submit event, etc.).
value
Cadena con los datos del evento.
first_visit_id
Primer visit_id de la sesión.
session_start_time
Segundos Unix.
Ejemplos
# Recent events for a user
curl 'https://api:KEY@app.personyze.com/rest/events
/where/user_id=5712334
/order_by_desc/time
/limit/100'
# Events from a specific container in a window
curl 'https://api:KEY@app.personyze.com/rest/events
/where/container_id=1234&time>1730000000&time<1731000000
/columns/id,user_id,time,value
/order_by_desc/time
/limit/1000'
Cuándo usar events y cuándo summary_actions.La tabla es grande; las consultas deben filtrar por una columna indexada (id, user_id, container_id, …) o la solicitud se rechaza. Para KPI agregados a lo largo del tiempo, use summary_actions en su lugar — tiene contadores diarios precalculados por acción.
forms
Registro de envíos de formularios. Una fila por cada envío de formulario registrado por el tracker. Por ahora, solo lectura por REST.
GET
POST
PUT
DELETE
✅
—
—
—
Columnas
Columna
Notas
user_id
FK → users.user_id. Indexado.
time
Segundos Unix.
action_id
Acción de Personyze que activó o contiene este formulario, si la hay.
session_start_time
Segundos Unix.
más data (JSON)
Los datos enviados del formulario, empaquetados como JSON. Se leen en línea (sus claves aparecen como columnas en la respuesta).
El identificador de cliente data El JSON se expande automáticamente en claves de primer nivel al leer — pida los campos personalizados concretos por su nombre.
Ejemplos
# Submissions for a user
curl 'https://api:KEY@app.personyze.com/rest/forms
/where/user_id=5712334
/order_by_desc/time
/limit/100'
# Submissions tied to a specific action
curl 'https://api:KEY@app.personyze.com/rest/forms
/where/action_id=42&time>1730000000
/columns/user_id,time,email,name,message
/limit/1000'
Las columnas indexadas incluyen user_id, action_id, y time. Las consultas deben filtrar por una de ellas.
do
Distribuidor de comandos sin respuesta: envíe una sola actualización del perfil de usuario o un evento de interacción sin hablar el protocolo del tracker. El cuerpo es un array de comandos; cada uno se procesa por separado.
# Tag a user as VIP
curl -X POST 'https://api:KEY@app.personyze.com/rest/do' \
-H 'Content-Type: application/json' \
-d '[["internal_id","acct-987","User profile","custom_t_1","VIP","first_name","Alice"]]'
# Log a purchase + a profile update in one round-trip
curl -X POST 'https://api:KEY@app.personyze.com/rest/do' \
-H 'Content-Type: application/json' \
-d '[
["email","alice@example.com","Product purchased","SKU-1234","quantity",2,"amount",259.98],
["email","alice@example.com","User profile","customer_segment","loyal"]
]'
Cuándo usar do y cuándo los endpoints con tipo.Las claves de búsqueda (internal_id / email) crean automáticamente una fila users provisional si ningún usuario coincide. Para registrar interacciones a gran volumen, es preferible products_interactions (con tipo e indexado) o la API de eventos por lotes del SDK.
sessions_archive
Una fila por sesión de visitante (un periodo continuo de actividad). Respaldado por la tabla de archivo de larga duración — mucho más ancha que events, con metadatos de ubicación, dispositivo, pantalla y navegador.
GET
POST
PUT
DELETE
✅
—
—
—
Identificación / gestión
Columna
Notas
first_visit_id
Clave primaria. El id de la primera fila visit de esta sesión.
user_id
FK → users.user_id. Indexado.
session_start_time
Segundos Unix.
last_session_time
Segundos Unix.
session_counter
Qué número de sesión es para este usuario (1, 2, 3, …).
total_visits
Páginas vistas en la sesión.
time_in_focus
Segundos en que la pestaña estuvo realmente enfocada.
time_total
Segundos desde el inicio hasta la última actividad.
Geo / idioma / dispositivo
Columna
Notas
time_zone
Desfase horario del visitante (horas).
country_code, region_code, city
Geo (a partir de la IP). city se une desde la tabla de consulta compartida, así que es un nombre legible (null si no hay coincidencia).
Etiqueta numérica (búsqueda / social / directo / …).
search_word
Consulta de búsqueda cuando se llega desde un buscador.
UTM / campaña publicitaria
ad_campaign, ad_source, ad_medium, ad_term, ad_content — los parámetros UTM estándar tal como se capturan al llegar.
Ejemplos
# Sessions for a user, most recent first
curl 'https://api:KEY@app.personyze.com/rest/sessions_archive
/where/user_id=5712334
/columns/first_visit_id,session_start_time,total_visits,country_code,city
/order_by_desc/session_start_time
/limit/100'
# Single session by primary key
curl 'https://api:KEY@app.personyze.com/rest/sessions_archive
/where/first_visit_id=900000000123
/columns/user_id,session_start_time,total_visits,total_goal_value'
Columnas indexadas: first_visit_id, user_id, además de varias más. Las consultas deben filtrar por una columna indexada o la solicitud se rechaza como recorrido de tabla completa.
user_interests
Intereses, categorías, etiquetas y etiquetas de familia/cruzadas/upsell por usuario, deducidos por el proceso del tracker. Una fila por (user_id, value, class, time). Solo lectura.
GET
POST
PUT
DELETE
✅
—
—
—
Columnas
Columna
Notas
user_id
FK → users.user_id. Indexado.
value
El token de interés (p. ej. nombre de categoría, etiqueta, palabra clave).
Decimal. Puntuación de relevancia dentro de la clase.
n_times
Cuántas veces se ha observado este valor para el usuario.
time
Segundos Unix — cuándo se actualizó el interés por última vez. Indexado.
Columnas indexadas: user_id, time. Las consultas deben filtrar por una columna indexada.
Ejemplos
# All interests for one user, strongest first
curl 'https://api:KEY@app.personyze.com/rest/user_interests
/where/user_id=5712334
/columns/value,class,rank,n_times,time
/order_by_desc/rank
/limit/100'
# Only categories, recently updated
curl 'https://api:KEY@app.personyze.com/rest/user_interests
/where/user_id=5712334&class=category
/order_by_desc/time
/limit/50'
products_stats_*
Contadores de interacción agregados por producto que mantiene el proceso de resúmenes fuera de línea. Se exponen seis periodos móviles en rutas separadas — elija el que corresponda a su horizonte de informes. Todos comparten la misma forma de columnas e índices; solo cambia el periodo.
GET
POST
PUT
DELETE
✅
—
—
—
Endpoints
Ruta
Periodo
/rest/products_stats_1day
último día
/rest/products_stats_2day
últimos 2 días
/rest/products_stats_4day
últimos 4 días
/rest/products_stats_week
últimos 7 días
/rest/products_stats_recent
reciente (móvil — definido por el proceso)
/rest/products_stats_all
todo el historial
Identificación
Columna
Notas
internal_id
Clave primaria. El identificador externo del producto (el SKU / id del catálogo que usted aportó). Indexado.
Contadores por producto (número de interacciones con este producto dentro del periodo)
Columna
Notas
n_viewed
Número de eventos de vista. Indexado.
n_delivered
Número de recomendaciones entregadas (mostradas). Indexado (compuesto con n_viewed).
n_extra
Interacciones «extra» (p. ej. añadir al carrito). Indexado (compuesto con n_viewed).
n_favorite
Marcado como favorito / en la lista de deseos. Indexado (compuesto con n_viewed).
n_goal
Objetivos completados (compras). Indexado (compuesto con n_viewed).
Estadísticas de distribución de todo el catálogo
El mismo valor en todas las filas — describe todo el catálogo dentro de este periodo. Para cada métrica M ∈ {viewed, delivered, extra, favorite, goal}:
Columna
Notas
overall_n_<M>
Suma de todos los productos.
overall_avg_<M>
Media de todos los productos.
overall_avg_nonzero_<M>
Media de los productos que tuvieron al menos un evento.
percentile_<M>
El percentil de esta fila para la métrica.
Los 3 últimos usuarios con objetivo (los compradores más recientes de este producto)
internal_id, n_viewed, n_delivered, n_extra, n_favorite, n_goal, last_goal_user_id_0, last_goal_user_id_1, last_goal_user_id_2. Las consultas deben filtrar por (u ordenar con order_by) una de ellas.
Ejemplos
# Top 50 most-viewed products this week
curl 'https://api:KEY@app.personyze.com/rest/products_stats_week
/where/n_viewed>0
/columns/internal_id,n_viewed,n_delivered,n_extra,n_goal,percentile_viewed
/order_by_desc/n_viewed
/limit/50'
# Lookup one product's lifetime stats
curl 'https://api:KEY@app.personyze.com/rest/products_stats_all
/where/internal_id=SKU-12345'
# What a specific user purchased recently (matches against last 3 goal users)
curl 'https://api:KEY@app.personyze.com/rest/products_stats_recent
/where/last_goal_user_id_0=5712334
/columns/internal_id,n_goal,last_goal_user_time_0'
summary_actions
KPI diarios agregados por acción — una fila por (day, action_id) para las acciones vinculadas a una campaña concreta (condition_id). Solo lectura.
GET
POST
PUT
DELETE
✅
—
—
—
Requisito estricto de indexación.Solo está indexada la columna day . Toda solicitud debe incluir where/day… — no sirve usar solo order_bycomo vía de escape.
Identificación
Columna
Notas
day
Marca de tiempo Unix (segundos) de las 0:00 (12 AM) del día en Greenwich (GMT+0000).
action_name
Nombre de la acción.
action_id
ID de la acción.
campaign_name
Nombre de la campaña a la que pertenece la acción.
campaign_id
ID de la campaña a la que pertenece la acción.
Exposición de la acción
Columna
Notas
n_executed
Cuántas veces se ejecutó (las acciones se consideran ejecutadas aunque el contenido visual aún no se haya mostrado).
n_delivered
Cuántas veces recibimos de la página del navegador la confirmación de que el contenido se hizo visible.
n_extra
Depende del tipo de acción. En las acciones HTML: número de clics. En las acciones de formulario: número de envíos.
n_failed
Solo se cuenta en las acciones de email. Cuántas veces falló el envío de un email (p. ej. dirección no válida).
n_closed
Cuántas veces el usuario hizo clic en el botón «cerrar» después de que el contenido de la acción se hiciera visible.
n_sessions_executed
En cuántas sesiones distintas hubo al menos un n_executed para esta acción.
n_sessions_delivered
En cuántas sesiones distintas hubo al menos un n_delivered.
n_sessions_extra
En cuántas sesiones distintas hubo al menos un n_extra.
n_sessions_failed
En cuántas sesiones distintas hubo al menos un n_failed.
n_sessions_closed
En cuántas sesiones distintas hubo al menos un n_closed.
Atribución de productos (cuando esta acción recomendó productos)
Columna
Notas
products_goal_n_times
Cuántos productos (de todos los visitantes) llegaron a «comprado» durante una sesión en la que se ejecutó esta acción. Cuenta cada evento de compra de producto, así que un pedido con 3 artículos suma 3.
products_goal_n_sessions
En cuántas sesiones distintas se compró al menos un producto después de ejecutarse esta acción.
products_goal_value
Suma de los valores monetarios de todos los productos comprados contados en products_goal_n_times.
products_recom_viewed_n_times
Cuántas veces se vio después un producto que esta acción había recomendado.
products_recom_viewed_n_sessions
En cuántas sesiones distintas se vio al menos un producto recomendado.
products_recom_extra_n_times
Cuántas veces un producto recomendado se añadió después al carrito (o alcanzó de otro modo la interacción «extra»).
products_recom_extra_n_sessions
En cuántas sesiones distintas al menos un producto recomendado alcanzó la interacción «extra».
products_recom_extra_value
Suma de los valores monetarios de todos los productos recomendados con interacción «extra».
products_recom_goal_n_times
Cuántas veces se compró después un producto recomendado.
products_recom_goal_n_sessions
En cuántas sesiones distintas se compró al menos un producto recomendado.
products_recom_goal_value
Suma de los valores monetarios de todos los productos recomendados comprados.
Atribución de artículos
La misma forma que la atribución de productos, pero para artículos: articles_recom_viewed_n_times, articles_recom_viewed_n_sessions, articles_recom_extra_n_times, articles_recom_extra_n_sessions, articles_recom_extra_value, articles_recom_goal_n_times, articles_recom_goal_n_sessions, articles_recom_goal_value.
Eventos de objetivo personalizados por cuenta
Una cuenta puede configurar hasta 12 eventos de objetivo. Por cada contenedor de evento configurado en su cuenta con un valor distinto de cero en goal_event_index (N de 1 a 12), aparecen cuatro columnas adicionales en la respuesta:
goal_event_N_name — Nombre visible del evento de objetivo configurado. Se devuelve como una cadena literal, igual en todas las filas.
goal_event_N_n_times — Cuántas veces se activó este evento de objetivo durante una sesión en la que se ejecutó la acción.
goal_event_N_n_sessions — En cuántas sesiones distintas se activó este evento de objetivo al menos una vez después de ejecutarse la acción.
goal_event_N_value — Suma de los valores monetarios notificados para este evento de objetivo en las veces contadas en goal_event_N_n_times (cero salvo que el contenedor del evento de objetivo esté configurado para capturar un valor).
Ejemplos
# Last 30 days, daily KPIs per action
curl 'https://api:KEY@app.personyze.com/rest/summary_actions
/where/day>1730000000
/columns/day,action_name,n_executed,n_delivered,n_extra,products_goal_value
/order_by_desc/day
/limit/1000'
# A specific action's lifetime
curl 'https://api:KEY@app.personyze.com/rest/summary_actions
/where/action_id=42&day>1700000000
/order_by/day
/limit/1000'
tracker_code
Devuelve el fragmento de JS que se inserta en su sitio para arrancar el tracker de Personyze. El contenido se deriva de la configuración de su cuenta (ID de cuenta, host de seguimiento, indicadores async/no-hide).
GET
POST
PUT
DELETE
✅
—
—
—
Respuesta
Un fragmento text/html sin más (o JS dentro de<script>) listo para pegar en un <head>. El cuerpo no es JSON — es el único endpoint REST que devuelve HTML sin procesar.
Convenciones del fragmento del tracker.El fragmento incluye su ID de cuenta y la lista de nombres de host permitidos registrados para esa cuenta. No lo edite a mano; vuelva a obtenerlo cuando añada dominios nuevos desde la GUI. Para los clientes de SDK nativos (iOS / Android), este endpoint no es relevante — el SDK habla directamente el protocolo del tracker mediante endpoints internos.
Próximos pasos
📖 Sintaxis de los parámetros de rutaA fondo: where/columns/order_by/limit con todos los operadores y ejemplos. Leer →
🔑 AutenticaciónGestión de la clave de API, formato de la cabecera, códigos de error, configuraciones con varias cuentas. Leer →