Anuncios
Un anuncio es lo que la persona ve: en Google Search, un anuncio de texto (
headlines
de 3 a 15,
descriptions
de 2 a 4); en Demand Gen y en Meta, una imagen con de 1 a 5 títulos, de 1 a 5 textos principales y un llamado a la acción — la red publica todos y sirve la combinación que mejor responde —, cortada de
creatives
(una imagen base sin
format
y, si quieres, recortes
square
,
vertical
,
horizontal
, o un carrusel de 2 a 10 imágenes sin
format
). También puede promover una publicación que ya existe (
existing_post
), pedir datos con
lead_form
, abrir una conversación con
messaging
, y llevar el mismo anuncio en varios idiomas (
translations
).
url
es el destino: una página que Dátil publica para tu organización pasa al instante; cualquier otra necesita el Datil Pixel instalado. Un anuncio con
lead_form
mide el resultado en el formulario y no exige el Píxel.
delivery_status
añade
in_appeal
,
learning
y
learning_limited
cuando la red está en apelación o todavía aprende.
POST /ads
con
ad_group
(y en él
ad_campaign
) crea el árbol entero y lo lanza en una sola transacción.
POST /ads/:id/duplicate
copia el anuncio, en pausa, para iterar.
Listar anuncios#
/api/v1/ads
Bearer
De la más antigua a la más reciente, por páginas:
limit
(1 a 100, 25 por defecto) y
after
(el
next_cursor
de la página anterior).
ad_group_id
string
Solo los anuncios de este grupo.
ad_campaign_id
string
Solo los anuncios de esta campaña.
status
string
active
,
paused
,
in_review
o
rejected
.
limit
integer
Cuántos por página, de 1 a 100.
after
string
El
next_cursor
de la página anterior.
Devuelve
·
200
con la lista (
data
,
has_more
,
next_cursor
) ·
422
con un filtro inválido.
curl "https://edge.datil.com/api/v1/ads" \
-H "Authorization: Bearer $DATIL_API_KEY"
{
"object": "list",
"data": [
{
"id": "1f2e3d4c-5b6a-4978-8695-a4b3c2d1e0f9",
"object": "ad",
"ad_group": {
"id": "2a3b4c5d-6e7f-4a8b-9c0d-1e2f3a4b5c6d"
},
"ad_campaign": {
"id": "3b4c5d6e-7f8a-4b9c-8d0e-2f3a4b5c6d7e"
},
"platform": "meta",
"title": "Firma en 10 minutos",
"status": "active",
"delivery_status": "processing",
"issues": [],
"url": "https://mi-socio.datil.id/comprar?type=persona_natural&validity=y1",
"headlines": [
"Tu firma electrónica hoy"
],
"descriptions": [],
"primary_texts": [
"Emite tu firma sin filas, desde tu celular."
],
"call_to_action": "shop_now",
"path1": null,
"path2": null,
"creatives": [
{
"media_id": "6e7f8a9b-0c1d-4e2f-8a3b-4c5d6e7f8a9b",
"format": null
}
],
"social_accounts": [
{
"id": "facebook:104012345678901"
}
],
"existing_post": null,
"translations": [],
"lead_form": null,
"messaging": null,
"url_parameters": [],
"multi_advertiser": true,
"music": null,
"variant_of": null,
"metrics": {
"window_days": 30,
"impressions": 12480,
"clicks": 311,
"spend": "74.20",
"conversions": 9.0,
"conversion_value": "180.00",
"roas": 2.43,
"reach": 8400,
"frequency": 1.49,
"unique_clicks": 280,
"ctr": 0.0249,
"cpc": "0.24",
"cpm": "5.95",
"cpa": "8.24",
"events": [
{
"name": "purchase",
"count": 9,
"value": "180.00"
}
],
"reached_people": 640
},
"created_at": "2026-09-27T14:03:01Z",
"updated_at": "2026-09-27T14:03:02Z"
}
],
"has_more": false,
"next_cursor": null
}
Crear un anuncio#
/api/v1/ads
Bearer
Escribe el anuncio en un grupo (
ad_group_id
) o crea el grupo —y su campaña— con él, y lo aprueba: la conciliación lo publica. Cada regla de lanzamiento responde
400
con lo que hay que corregir.
Content-Type: application/json
title
string
Un nombre para reconocer el anuncio.
ad_group_id
string
El grupo del anuncio.
ad_group
objeto
O el grupo nuevo, con el cuerpo de
POST /ad_groups
(y en él
ad_campaign
).
status
string
Por defecto
active
.
activepaused
url
string
requerido
El destino, https.
headlines
array
requerido
Search: de 3 a 15 títulos de hasta 30 caracteres. Imagen: de 1 a 5 títulos de hasta 40.
descriptions
array
Search: de 2 a 4 descripciones de hasta 90. Imagen: hasta 5 líneas de hasta 40.
primary_texts
array
Imagen: de 1 a 5 textos principales de hasta 90 caracteres.
call_to_action
string
learn_more
,
shop_now
,
sign_up
,
subscribe
,
get_started
,
book_now
,
apply_now
,
contact_us
,
download
,
order_now
,
buy_now
,
get_quote
.
path1
string
Search: la primera ruta visible, hasta 15 caracteres.
path2
string
Search: la segunda ruta visible.
creatives
array de objetos
Imagen:
[{id, format, crop, language}]
.
format
nulo es la imagen base, o
square
,
vertical
,
horizontal
(a lo más una por formato). Dos a diez entradas sin
format
son un carrusel.
crop
es
{x, y, width, height}
.
language
es
es
,
en
,
pt
,
fr
,
de
o
it
.
social_accounts
array
Meta: las cuentas por las que habla el anuncio (
GET /social_accounts
); por defecto, las de la organización.
existing_post
objeto
Meta:
{id, source}
promueve una publicación que ya existe.
source
es
facebook
o
instagram
. El anuncio igual lleva
url
.
translations
array de objetos
Meta: hasta 8 idiomas (
es
,
en
,
pt
,
fr
,
de
,
it
), cada uno con
headlines
,
primary_texts
y
descriptions
.
lead_form
objeto
Meta:
{name, privacy_policy_url, intent, questions, thank_you}
.
intent
es
more_volume
o
higher_intent
. Cada pregunta es
{type, label, options}
con
type
email
,
phone
,
full_name
o
custom
.
thank_you.button
es
website
,
call
o
none
.
messaging
objeto
Meta:
{greeting, reply}
abre la conversación con ese saludo.
url_parameters
objeto
Parámetros extra del destino.
utm_source
,
utm_medium
,
utm_campaign
,
utm_content
,
utm_term
,
dcid
y
dcrid
están reservados: la atribución los escribe.
multi_advertiser
boolean
Meta: si el anuncio puede aparecer junto a otros anunciantes. Por defecto
true
.
music
objeto
Meta:
{track_id}
de una pista de la organización o del catálogo de Dátil.
Devuelve
·
201
con el anuncio ·
400 pixel_not_detected
(el destino no tiene el Píxel de Dátil; el mensaje trae el enlace para instalarlo) ·
400 destination_required
·
400 social_page_required
(Meta necesita la página de Facebook) ·
400 base_creative_required
·
400 payment_method_required
·
400 budget_level
·
409 group_full
·
422
con
errors
.
curl -X POST https://edge.datil.com/api/v1/ads \
-H "Authorization: Bearer $DATIL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Firma en 10 minutos",
"headlines": [
"Tu firma electrónica hoy"
],
"primary_texts": [
"Emite tu firma sin filas, desde tu celular."
],
"call_to_action": "shop_now",
"url": "https://mi-socio.datil.id/comprar?type=persona_natural&validity=y1",
"creatives": [
{
"id": "6e7f8a9b-0c1d-4e2f-8a3b-4c5d6e7f8a9b"
}
],
"ad_group": {
"title": "Ecuador · contadores",
"budget_amount": "25.00",
"budget_type": "daily",
"regions": {
"include": {
"countries": [
"EC"
]
}
},
"meta": {
"interests": [
{
"id": "6003107902433",
"name": "Contabilidad"
}
]
},
"ad_campaign": {
"title": "Firma electrónica · Ecuador",
"platform": "meta",
"objective": "sales",
"offering_id": "portal.cert.y1.persona_natural"
}
}
}'
{
"id": "1f2e3d4c-5b6a-4978-8695-a4b3c2d1e0f9",
"object": "ad",
"ad_group": {
"id": "2a3b4c5d-6e7f-4a8b-9c0d-1e2f3a4b5c6d"
},
"ad_campaign": {
"id": "3b4c5d6e-7f8a-4b9c-8d0e-2f3a4b5c6d7e"
},
"platform": "meta",
"title": "Firma en 10 minutos",
"status": "active",
"delivery_status": "processing",
"issues": [],
"url": "https://mi-socio.datil.id/comprar?type=persona_natural&validity=y1",
"headlines": [
"Tu firma electrónica hoy"
],
"descriptions": [],
"primary_texts": [
"Emite tu firma sin filas, desde tu celular."
],
"call_to_action": "shop_now",
"path1": null,
"path2": null,
"creatives": [
{
"media_id": "6e7f8a9b-0c1d-4e2f-8a3b-4c5d6e7f8a9b",
"format": null
}
],
"social_accounts": [
{
"id": "facebook:104012345678901"
}
],
"existing_post": null,
"translations": [],
"lead_form": null,
"messaging": null,
"url_parameters": [],
"multi_advertiser": true,
"music": null,
"variant_of": null,
"metrics": {
"window_days": 30,
"impressions": 12480,
"clicks": 311,
"spend": "74.20",
"conversions": 9.0,
"conversion_value": "180.00",
"roas": 2.43,
"reach": 8400,
"frequency": 1.49,
"unique_clicks": 280,
"ctr": 0.0249,
"cpc": "0.24",
"cpm": "5.95",
"cpa": "8.24",
"events": [
{
"name": "purchase",
"count": 9,
"value": "180.00"
}
],
"reached_people": 640
},
"created_at": "2026-09-27T14:03:01Z",
"updated_at": "2026-09-27T14:03:02Z"
}
Consultar un anuncio#
/api/v1/ads/:id
Bearer
Un objeto de tu organización, con su estado de entrega.
id
string
requerido
El
id
del objeto.
Devuelve
·
200
con el objeto ·
404 not_found
para uno que no es de tu organización.
curl "https://edge.datil.com/api/v1/ads/7b0f6a52-3c1e-4d7e-9a57-0c1f5c2e9b10" \
-H "Authorization: Bearer $DATIL_API_KEY"
{
"id": "1f2e3d4c-5b6a-4978-8695-a4b3c2d1e0f9",
"object": "ad",
"ad_group": {
"id": "2a3b4c5d-6e7f-4a8b-9c0d-1e2f3a4b5c6d"
},
"ad_campaign": {
"id": "3b4c5d6e-7f8a-4b9c-8d0e-2f3a4b5c6d7e"
},
"platform": "meta",
"title": "Firma en 10 minutos",
"status": "active",
"delivery_status": "processing",
"issues": [],
"url": "https://mi-socio.datil.id/comprar?type=persona_natural&validity=y1",
"headlines": [
"Tu firma electrónica hoy"
],
"descriptions": [],
"primary_texts": [
"Emite tu firma sin filas, desde tu celular."
],
"call_to_action": "shop_now",
"path1": null,
"path2": null,
"creatives": [
{
"media_id": "6e7f8a9b-0c1d-4e2f-8a3b-4c5d6e7f8a9b",
"format": null
}
],
"social_accounts": [
{
"id": "facebook:104012345678901"
}
],
"existing_post": null,
"translations": [],
"lead_form": null,
"messaging": null,
"url_parameters": [],
"multi_advertiser": true,
"music": null,
"variant_of": null,
"metrics": {
"window_days": 30,
"impressions": 12480,
"clicks": 311,
"spend": "74.20",
"conversions": 9.0,
"conversion_value": "180.00",
"roas": 2.43,
"reach": 8400,
"frequency": 1.49,
"unique_clicks": 280,
"ctr": 0.0249,
"cpc": "0.24",
"cpm": "5.95",
"cpa": "8.24",
"events": [
{
"name": "purchase",
"count": 9,
"value": "180.00"
}
],
"reached_people": 640
},
"created_at": "2026-09-27T14:03:01Z",
"updated_at": "2026-09-27T14:03:02Z"
}
Cambiar un anuncio#
/api/v1/ads/:id
Bearer
Cambia su texto, su destino o sus imágenes;
creatives
reemplaza el juego entero, con su imagen base. La red recibe la versión nueva.
Content-Type: application/json
id
string
requerido
El
id
del anuncio.
title
string
Un nombre para reconocer el anuncio.
url
string
requerido
El destino, https.
headlines
array
requerido
Search: de 3 a 15 títulos de hasta 30 caracteres. Imagen: de 1 a 5 títulos de hasta 40.
descriptions
array
Search: de 2 a 4 descripciones de hasta 90. Imagen: hasta 5 líneas de hasta 40.
primary_texts
array
Imagen: de 1 a 5 textos principales de hasta 90 caracteres.
call_to_action
string
learn_more
,
shop_now
,
sign_up
,
subscribe
,
get_started
,
book_now
,
apply_now
,
contact_us
,
download
,
order_now
,
buy_now
,
get_quote
.
path1
string
Search: la primera ruta visible, hasta 15 caracteres.
path2
string
Search: la segunda ruta visible.
creatives
array de objetos
Imagen:
[{id, format, crop, language}]
.
format
nulo es la imagen base, o
square
,
vertical
,
horizontal
(a lo más una por formato). Dos a diez entradas sin
format
son un carrusel.
crop
es
{x, y, width, height}
.
language
es
es
,
en
,
pt
,
fr
,
de
o
it
.
social_accounts
array
Meta: las cuentas por las que habla el anuncio (
GET /social_accounts
); por defecto, las de la organización.
existing_post
objeto
Meta:
{id, source}
promueve una publicación que ya existe.
source
es
facebook
o
instagram
. El anuncio igual lleva
url
.
translations
array de objetos
Meta: hasta 8 idiomas (
es
,
en
,
pt
,
fr
,
de
,
it
), cada uno con
headlines
,
primary_texts
y
descriptions
.
lead_form
objeto
Meta:
{name, privacy_policy_url, intent, questions, thank_you}
.
intent
es
more_volume
o
higher_intent
. Cada pregunta es
{type, label, options}
con
type
email
,
phone
,
full_name
o
custom
.
thank_you.button
es
website
,
call
o
none
.
messaging
objeto
Meta:
{greeting, reply}
abre la conversación con ese saludo.
url_parameters
objeto
Parámetros extra del destino.
utm_source
,
utm_medium
,
utm_campaign
,
utm_content
,
utm_term
,
dcid
y
dcrid
están reservados: la atribución los escribe.
multi_advertiser
boolean
Meta: si el anuncio puede aparecer junto a otros anunciantes. Por defecto
true
.
music
objeto
Meta:
{track_id}
de una pista de la organización o del catálogo de Dátil.
Devuelve
·
200
con el anuncio ·
400
por una regla de lanzamiento ·
400 brand_check_failed
(un anuncio activo con palabras que no cumplen la marca) ·
422
con
errors
.
curl -X PATCH https://edge.datil.com/api/v1/ads/7b0f6a52-3c1e-4d7e-9a57-0c1f5c2e9b10 \
-H "Authorization: Bearer $DATIL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"headlines": [
"Tu firma en 10 minutos"
]
}'
{
"id": "1f2e3d4c-5b6a-4978-8695-a4b3c2d1e0f9",
"object": "ad",
"ad_group": {
"id": "2a3b4c5d-6e7f-4a8b-9c0d-1e2f3a4b5c6d"
},
"ad_campaign": {
"id": "3b4c5d6e-7f8a-4b9c-8d0e-2f3a4b5c6d7e"
},
"platform": "meta",
"title": "Firma en 10 minutos",
"status": "active",
"delivery_status": "processing",
"issues": [],
"url": "https://mi-socio.datil.id/comprar?type=persona_natural&validity=y1",
"headlines": [
"Tu firma electrónica hoy"
],
"descriptions": [],
"primary_texts": [
"Emite tu firma sin filas, desde tu celular."
],
"call_to_action": "shop_now",
"path1": null,
"path2": null,
"creatives": [
{
"media_id": "6e7f8a9b-0c1d-4e2f-8a3b-4c5d6e7f8a9b",
"format": null
}
],
"social_accounts": [
{
"id": "facebook:104012345678901"
}
],
"existing_post": null,
"translations": [],
"lead_form": null,
"messaging": null,
"url_parameters": [],
"multi_advertiser": true,
"music": null,
"variant_of": null,
"metrics": {
"window_days": 30,
"impressions": 12480,
"clicks": 311,
"spend": "74.20",
"conversions": 9.0,
"conversion_value": "180.00",
"roas": 2.43,
"reach": 8400,
"frequency": 1.49,
"unique_clicks": 280,
"ctr": 0.0249,
"cpc": "0.24",
"cpm": "5.95",
"cpa": "8.24",
"events": [
{
"name": "purchase",
"count": 9,
"value": "180.00"
}
],
"reached_people": 640
},
"created_at": "2026-09-27T14:03:01Z",
"updated_at": "2026-09-27T14:03:02Z"
}
Eliminar un anuncio#
/api/v1/ads/:id
Bearer
El anuncio se pausa y se retira de la red (
REMOVED
en Google,
DELETED
en Meta) en la próxima conciliación, y queda en el registro como rechazado.
id
string
requerido
El
id
del objeto.
Devuelve
·
200
con
deleted: true
·
404
·
409
por su estado.
curl -X DELETE https://edge.datil.com/api/v1/ads/7b0f6a52-3c1e-4d7e-9a57-0c1f5c2e9b10 \
-H "Authorization: Bearer $DATIL_API_KEY"
{
"id": "3b4c5d6e-7f8a-4b9c-8d0e-2f3a4b5c6d7e",
"object": "ad_campaign",
"deleted": true
}
Pausar un anuncio#
/api/v1/ads/:id/pause
Bearer
El anuncio deja de publicarse.
Content-Type: application/json
id
string
requerido
El
id
del objeto.
Devuelve
·
200
con el objeto ·
400
por una regla de lanzamiento ·
404
·
409
por su estado.
curl -X POST https://edge.datil.com/api/v1/ads/7b0f6a52-3c1e-4d7e-9a57-0c1f5c2e9b10/pause \
-H "Authorization: Bearer $DATIL_API_KEY"
{
"id": "1f2e3d4c-5b6a-4978-8695-a4b3c2d1e0f9",
"object": "ad",
"ad_group": {
"id": "2a3b4c5d-6e7f-4a8b-9c0d-1e2f3a4b5c6d"
},
"ad_campaign": {
"id": "3b4c5d6e-7f8a-4b9c-8d0e-2f3a4b5c6d7e"
},
"platform": "meta",
"title": "Firma en 10 minutos",
"status": "active",
"delivery_status": "processing",
"issues": [],
"url": "https://mi-socio.datil.id/comprar?type=persona_natural&validity=y1",
"headlines": [
"Tu firma electrónica hoy"
],
"descriptions": [],
"primary_texts": [
"Emite tu firma sin filas, desde tu celular."
],
"call_to_action": "shop_now",
"path1": null,
"path2": null,
"creatives": [
{
"media_id": "6e7f8a9b-0c1d-4e2f-8a3b-4c5d6e7f8a9b",
"format": null
}
],
"social_accounts": [
{
"id": "facebook:104012345678901"
}
],
"existing_post": null,
"translations": [],
"lead_form": null,
"messaging": null,
"url_parameters": [],
"multi_advertiser": true,
"music": null,
"variant_of": null,
"metrics": {
"window_days": 30,
"impressions": 12480,
"clicks": 311,
"spend": "74.20",
"conversions": 9.0,
"conversion_value": "180.00",
"roas": 2.43,
"reach": 8400,
"frequency": 1.49,
"unique_clicks": 280,
"ctr": 0.0249,
"cpc": "0.24",
"cpm": "5.95",
"cpa": "8.24",
"events": [
{
"name": "purchase",
"count": 9,
"value": "180.00"
}
],
"reached_people": 640
},
"created_at": "2026-09-27T14:03:01Z",
"updated_at": "2026-09-27T14:03:02Z"
}
Reanudar un anuncio#
/api/v1/ads/:id/unpause
Bearer
El anuncio vuelve a aprobarse;
400 brand_check_failed
si no cumple el kit de marca;
409 ad_group_paused
si su grupo está pausado.
Content-Type: application/json
id
string
requerido
El
id
del objeto.
Devuelve
·
200
con el objeto ·
400
por una regla de lanzamiento ·
404
·
409
por su estado.
curl -X POST https://edge.datil.com/api/v1/ads/7b0f6a52-3c1e-4d7e-9a57-0c1f5c2e9b10/unpause \
-H "Authorization: Bearer $DATIL_API_KEY"
{
"id": "1f2e3d4c-5b6a-4978-8695-a4b3c2d1e0f9",
"object": "ad",
"ad_group": {
"id": "2a3b4c5d-6e7f-4a8b-9c0d-1e2f3a4b5c6d"
},
"ad_campaign": {
"id": "3b4c5d6e-7f8a-4b9c-8d0e-2f3a4b5c6d7e"
},
"platform": "meta",
"title": "Firma en 10 minutos",
"status": "active",
"delivery_status": "processing",
"issues": [],
"url": "https://mi-socio.datil.id/comprar?type=persona_natural&validity=y1",
"headlines": [
"Tu firma electrónica hoy"
],
"descriptions": [],
"primary_texts": [
"Emite tu firma sin filas, desde tu celular."
],
"call_to_action": "shop_now",
"path1": null,
"path2": null,
"creatives": [
{
"media_id": "6e7f8a9b-0c1d-4e2f-8a3b-4c5d6e7f8a9b",
"format": null
}
],
"social_accounts": [
{
"id": "facebook:104012345678901"
}
],
"existing_post": null,
"translations": [],
"lead_form": null,
"messaging": null,
"url_parameters": [],
"multi_advertiser": true,
"music": null,
"variant_of": null,
"metrics": {
"window_days": 30,
"impressions": 12480,
"clicks": 311,
"spend": "74.20",
"conversions": 9.0,
"conversion_value": "180.00",
"roas": 2.43,
"reach": 8400,
"frequency": 1.49,
"unique_clicks": 280,
"ctr": 0.0249,
"cpc": "0.24",
"cpm": "5.95",
"cpa": "8.24",
"events": [
{
"name": "purchase",
"count": 9,
"value": "180.00"
}
],
"reached_people": 640
},
"created_at": "2026-09-27T14:03:01Z",
"updated_at": "2026-09-27T14:03:02Z"
}
Duplicar un anuncio#
/api/v1/ads/:id/duplicate
Bearer
Crea otro anuncio con las mismas palabras e imágenes, sin identificadores de la red.
mode: variant
lo marca como variante del original. Nace en pausa para que no gaste hasta que lo reanudes.
status: active
lo aprueba al crearlo.
ad_group_id
lo mueve a otro grupo del mismo tipo.
Content-Type: application/json
id
string
requerido
El
id
del anuncio.
ad_group_id
string
Otro grupo, del mismo tipo de anuncio.
title
string
El nombre de la copia. Una variante sin nombre añade « · variante».
status
string
Por defecto
paused
.
activepaused
mode
string
Por defecto
copy
.
copyvariant
Devuelve
·
201
con el anuncio nuevo ·
409 group_full
·
422
si el grupo es de otro tipo.
curl -X POST https://edge.datil.com/api/v1/ads/7b0f6a52-3c1e-4d7e-9a57-0c1f5c2e9b10/duplicate \
-H "Authorization: Bearer $DATIL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"mode": "variant"
}'
{
"id": "1f2e3d4c-5b6a-4978-8695-a4b3c2d1e0f9",
"object": "ad",
"ad_group": {
"id": "2a3b4c5d-6e7f-4a8b-9c0d-1e2f3a4b5c6d"
},
"ad_campaign": {
"id": "3b4c5d6e-7f8a-4b9c-8d0e-2f3a4b5c6d7e"
},
"platform": "meta",
"title": "Firma en 10 minutos",
"status": "paused",
"delivery_status": "processing",
"issues": [],
"url": "https://mi-socio.datil.id/comprar?type=persona_natural&validity=y1",
"headlines": [
"Tu firma electrónica hoy"
],
"descriptions": [],
"primary_texts": [
"Emite tu firma sin filas, desde tu celular."
],
"call_to_action": "shop_now",
"path1": null,
"path2": null,
"creatives": [
{
"media_id": "6e7f8a9b-0c1d-4e2f-8a3b-4c5d6e7f8a9b",
"format": null
}
],
"social_accounts": [
{
"id": "facebook:104012345678901"
}
],
"existing_post": null,
"translations": [],
"lead_form": null,
"messaging": null,
"url_parameters": [],
"multi_advertiser": true,
"music": null,
"variant_of": "1f2e3d4c-5b6a-4978-8695-a4b3c2d1e0f9",
"metrics": {
"window_days": 30,
"impressions": 12480,
"clicks": 311,
"spend": "74.20",
"conversions": 9.0,
"conversion_value": "180.00",
"roas": 2.43,
"reach": 8400,
"frequency": 1.49,
"unique_clicks": 280,
"ctr": 0.0249,
"cpc": "0.24",
"cpm": "5.95",
"cpa": "8.24",
"events": [
{
"name": "purchase",
"count": 9,
"value": "180.00"
}
],
"reached_people": 640
},
"created_at": "2026-09-27T14:03:01Z",
"updated_at": "2026-09-27T14:03:02Z"
}