Primeros pasos en el uso de los anuncios del catálogo Advantage+

Los anuncios del catálogo Advantage+ te permiten crear anuncios personalizados que se dirigen a los públicos adecuados según un conjunto de productos.

Los anunciantes que tienen en circulación anuncios relacionados con viviendas, empleo, crédito, temas políticos, elecciones y política tienen diferentes conjuntos de restricciones. Consulta Categorías de anuncios especiales para obtener más información.

Antes de empezar

Para crear una campaña de anuncios del catálogo Advantage+, necesitas lo siguiente:

De manera opcional, puede configurar un público de productos dinámicos; sin embargo, no es obligatorio involucrar inclusiones o exclusiones de conjuntos de productos en la configuración de la segmentación.

Paso 1: crear una campaña de anuncios

Consulta la documentación sobre las campañas de anuncios para obtener información sobre cómo crear una campaña de este tipo.

En este nivel, debes definir tu objetivo publicitario a través del campo objective. En el caso de los anuncios del catálogo Advantage+, los objetivos admitidos son PRODUCT_CATALOG_SALES, CONVERSIONS, LINK_CLICKS o APP_INSTALLS. Si el objective es CONVERSIONS, LINK_CLICKS o APP_INSTALLS, el campo promoted_object no es obligatorio.

curl \
  -F 'name=Product Catalog Sales Campaign' \
  -F 'objective=PRODUCT_CATALOG_SALES' \
  -F 'promoted_object={"product_catalog_id":"<PRODUCT_CATALOG_ID>"}' \
  -F 'status=PAUSED' \
  -F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/campaigns

Paso 2: crear un conjunto de anuncios

En el caso de los anuncios del catálogo Advantage+, debes especificar product_set_id en promoted_object a fin de que el nivel del conjunto de anuncios promocione productos de dicho conjunto.

Además, también puedes definir tu propio evento de conversión para ese conjunto de productos. Para hacerlo, especifica custom_event_type en promoted_object cuando optimization_goal sea OFFSITE_CONVERSIONS. Esto permitirá dirigir tus anuncios a las personas que hayan realizado ese evento en tu app o sitio.

Por ejemplo, si lo configuras en ADD_TO_CART, el evento "AddToCart" es el evento de conversión. De manera predeterminada, custom_event_type está configurado en PURCHASE. Obtén más información sobre los eventos estándares y los valores de custom_event_type en el píxel de Meta, Seguimiento de las conversiones.

Si deseas optimizar las conversiones fuera del sitio, incluidas las conversiones de eventos de la app y del píxel de Facebook, y que la facturación se realice según las impresiones:

  • Configura optimization_goal como OFFSITE_CONVERSIONS.
  • Configura billing_event como IMPRESSIONS.

Para obtener más detalles sobre las combinaciones válidas de optimization_goal y billing_event, consulta Objetivo de optimización y eventos de facturación.

Ejemplo de creación de un conjunto de anuncios facturado por IMPRESSIONS y optimizado para OFFSITE_CONVERSIONS:

curl \
  -F 'name=Product Catalog Sales Adset' \
  -F 'bid_amount=3000' \
  -F 'billing_event=IMPRESSIONS' \
  -F 'optimization_goal=OFFSITE_CONVERSIONS' \
  -F 'daily_budget=15000' \
  -F 'campaign_id=<CAMPAIGN_ID>' \
  -F 'targeting={ "geo_locations": {"countries":["US"]}, 
    "dynamic_audience_ids": ["<DYNAMIC_AUDIENCE_ID>"] 
  }' \
  -F 'promoted_object={"product_set_id":"<PRODUCT_SET_ID>"}' \
  -F 'status=PAUSED' \
  -F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adsets

DYNAMIC_AUDIENCE_ID hace referencia a un público de productos. De manera opcional, puedes omitir dynamic_audience_ids de la llamada.

En el caso de uso del comercio electrónico, puedes omitir dynamic_audience_ids desde la llamada y, en cambio, enviar la información de segmentación de comportamiento como parte de los parámetros product_audience_specs o excluded_product_audience_specs. Estas especificaciones se definen con los mismos parámetros que usas para crear un público de productos.

Parámetros

NombreDescripción

product_set_id

cadena numérica

Obligatorio.
El conjunto de productos con el que se segmentará este público.

inclusions

Objeto JSON

Obligatorio.
Un conjunto de eventos para segmentar. Se requiere una inclusión como mínimo. Cada inclusión debe tener exactamente un event.

inclusions.retention_seconds

Número entero

Obligatorio.
La cantidad de segundos que la cuenta del centro de cuentas se mantendrá en el público.

inclusions.rule

Objeto[]

Obligatorio.
Regla de público personalizado del sitio web que hace referencia a un event.

exclusions

Objeto JSON

Opcional.
Conjunto de eventos para eliminar a una cuenta del centro de cuentas de la segmentación.

exclusions.retention_seconds

Número entero

Obligatorio si se especifica la exclusión.
La cantidad de segundos que se mantendrá la exclusión.

exclusions.rule

Objeto[]

Obligatorio si se especifica la exclusión.
Regla de público personalizado del sitio web que hace referencia a un event.

Las reglas deben incluir unevent con el operador eq, ya sea como regla de nivel superior o como parte de una regla and de nivel superior.

Retargeting

En este ejemplo, nos dirigimos a personas que hayan visualizado productos en los últimos tres a cinco días, pero que no hayan realizado compras. Las ubicaciones de los anuncios están en la lista móvil y Audience Network. Para crear este público:

curl \
  -F 'name=Product Catalog Sales Adset' \
  -F 'bid_amount=3000' \
  -F 'billing_event=LINK_CLICKS' \
  -F 'optimization_goal=LINK_CLICKS' \
  -F 'daily_budget=15000' \
  -F 'campaign_id=<CAMPAIGN_ID>' \
  -F 'targeting={ 
    "publisher_platforms": ["facebook","audience_network"], 
    "device_platforms": ["mobile"], 
    "geo_locations": {"countries":["US"]}, 
    "product_audience_specs": [ 
      { 
        "product_set_id": "<PRODUCT_SET_ID>", 
        "inclusions": [{"retention_seconds":432000,"rule":{"event":{"eq":"ViewContent"}}}], 
        "exclusions": [{"retention_seconds":432000,"rule":{"event":{"eq":"Purchase"}}}] 
      } 
    ], 
    "excluded_product_audience_specs": [ 
      { 
        "product_set_id": "<PRODUCT_SET_ID>", 
        "inclusions": [{"retention_seconds":259200,"rule":{"event":{"eq":"ViewContent"}}}] 
      } 
    ] 
  }' \
  -F 'promoted_object={"product_set_id":<PRODUCT_SET_ID>"}' \
  -F 'status=PAUSED' \
  -F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adsets

Ventas cruzadas o dirigidas

Ejemplo para anunciar productos que el usuario no vio:

curl \
-F 'name=Case 1 Adset' \
-F 'bid_amount=3000' \
-F 'billing_event=IMPRESSIONS' \
-F 'status=ACTIVE' \
-F 'daily_budget=15000' \
-F 'campaign_id=<CAMPAIGN_ID>' \
-F 'targeting= { \
            "geo_locations": { \
            "countries":["US"], \
             }, \
            "interests":[ \
                {"id":6003397425735,"name":"Tennis"}, \
            ], \
        }' \
-F 'promoted_object={"product_set_id”:<PRODUCT_SET_ID>}' \
-F 'access_token=<ACCESS_TOKEN>’ \
https://graph.facebook.com/<API_VERSION>/act_<ACCOUNT_ID>/adsets

Para realizar ventas cruzadas entre conjuntos de productos:

  • Especifica el público del productos con las reglas de eventos asociadas al conjunto de productos A.
  • Muestra productos del conjunto de productos B en el anuncio. Para hacerlo, configura product_set_id en el conjunto de productos B en el nivel del contenido del anuncio.

Por ejemplo, una empresa desea aumentar las ventas de carteras de PRODUCT_SET_1 mediante la segmentación de un anuncio a los usuarios existentes que demostraron interés en los zapatos de PRODUCT_SET_2. Configura el product_set_id en product_audience_specs como identificador de PRODUCT_SET_2 o zapatos, y el product_set_id en promoted_object como identificador de PRODUCT_SET_1 o carteras.

curl \
  -F 'name=My cross sell ad set' \
  -F 'bid_amount=3000' \
  -F 'billing_event=LINK_CLICKS' \
  -F 'optimization_goal=LINK_CLICKS' \
  -F 'daily_budget=15000' \
  -F 'campaign_id=<CAMPAIGN_ID>' \
  -F 'targeting={ 
    "geo_locations": {"countries":["US"]}, 
    "product_audience_specs": [ 
      { 
        "product_set_id": "<PRODUCT_SET_2_ID>", 
        "inclusions": [{"retention_seconds":432000,"rule":{"event":{"eq":"ViewContent"}}}], 
        "exclusions": [{"retention_seconds":432000,"rule":{"event":{"eq":"Purchase"}}}] 
      } 
    ], 
    "excluded_product_audience_specs": [ 
      { 
        "product_set_id": "<PRODUCT_SET_2_ID>", 
        "inclusions": [{"retention_seconds":259200,"rule":{"event":{"eq":"ViewContent"}}}] 
      } 
    ] 
  }' \
  -F 'promoted_object={"product_set_id":"<PRODUCT_SET_1_ID>"}' \
  -F 'status=PAUSED' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adsets  

Luego, configura el product_set_id del contenido como identificador de PRODUCT_SET_1.

  curl \
  -F 'name=Advantage+ Catalog Ads Template Creative Sample' \
  -F 'object_story_spec={ 
    "page_id": "<PAGE_ID>", 
    "template_data": { 
      "description": "Description {{product.description}}", 
      "link": "<LINK>", 
      "message": "Test {{product.name | titleize}}", 
      "name": "Headline {{product.price}}" 
    } 
  }' \
  -F 'product_set_id=<PRODUCT_SET_ID>' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adcreatives

Segmentación de público amplio

Además de cambiar la segmentación y la venta cruzada a clientes preexistentes, los anuncios del catálogo Advantage+ pueden usarse para dirigirse a públicos amplios mediante la segmentación por edad, sexo y otros datos demográficos con productos adecuados del catálogo de productos. Si se usan públicos ampliamente segmentados junto con pujas para realizar conversiones fuera del sitio, los anuncios del catálogo Advantage+ te permiten expandir enormemente y de manera eficaz el alcance de tus anuncios.

Para segmentar públicos amplios, realiza lo siguiente:

  • Crea un público mediante una segmentación demográfica básica, p. ej., mujeres de EE. UU. mayores de 18 años.
  • Incluye customOptimize para OFFSITE_CONVERSIONS con señales de intención más fuertes, como Purchase o InitiateCheckout.

En este ejemplo, creamos un conjunto de anuncios dirigido a mujeres estadounidenses entre 30 y 65 años de edad, que excluye a clientes que hayan realizado compras en los últimos diez días. Pujaremos $8 y usaremos OFFSITE_CONVERSIONS para los eventos PURCHASE.

curl \
  -F 'name=Broad Audience Targeting' \
  -F 'bid_amount=800' \
  -F 'billing_event=IMPRESSIONS' \
  -F 'daily_budget=15000' \
  -F 'campaign_id=<CAMPAIGN_ID>' \
  -F 'targeting={ 
    "age_max": 65, 
    "age_min": 30, 
    "geo_locations": {"countries":["US"]}, 
    "genders": [2], 
    "excluded_product_audience_specs": [ 
      { 
        "product_set_id": "<PRODUCT_SET_ID>", 
        "inclusions": [{"retention_seconds":864000,"rule":{"event":{"eq":"Purchase"}}}] 
      } 
    ] 
  }' \
  -F 'promoted_object={"product_set_id":"<PRODUCT_SET_ID>","custom_event_type":"PURCHASE"}' \
  -F 'optimization_goal=OFFSITE_CONVERSIONS' \
  -F 'status=PAUSED' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adsets

Categorías de anuncios del catálogo Advantage+

Los anunciantes que tienen en circulación anuncios relacionados con viviendas, empleo, crédito, temas políticos, elecciones y política tienen diferentes conjuntos de restricciones. Consulta Categorías de anuncios especiales para obtener más información.

Las categorías de anuncios del catálogo Advantage+ incorporan dos opciones de contenido nuevas para la plataforma de anuncios, que pueden usarse para personalizar el contenido para los compradores en las etapas iniciales del proceso de decisión. Con esta función, puedes crear lo que en términos prácticos es un segundo catálogo de contenido, más pequeño, con imágenes que representan cada categoría (además del catálogo que ya tienes con imágenes de productos), y asignamos las categorías de productos a las personas en tus anuncios de forma similar a como asignamos los productos a las personas.

Las categorías de anuncios del catálogo Advantage+ pueden usarse con cualquier opción de segmentación en el objetivo de tráfico, conversión o ventas de catálogo. Si no tienes una imagen de calidad alta que represente cada categoría o marca, Facebook puede generar automáticamente un collage 2x2 de los productos principales de cada grupo de productos.

Cuando asignan las nuevas imágenes a los catálogos de productos preexistentes, los anunciantes pueden usar alguna de las tres columnas de sus listas para agrupar los productos: marca, tipo de producto y categoría de producto de Google.

En el ejemplo del catálogo que se muestra a continuación, la columna Tipo de producto tiene cinco valores únicos. El anunciante puede suministrar hasta cinco collages o imágenes de estilo de vida: uno por cada valor único en product_type. El tipo de producto es el criterio de categorización de la categoría, que es el nombre de campo del catálogo usado para definir las categorías. El valor del campo del catálogo es el valor de criterios de la categoría.

Una categoría puede identificarse de manera unívoca mediante:

  • Identificador del catálogo de productos
  • Criterios de categorización (marca, tipo de producto, o categoría de producto de Google)
  • Valores de criterios (tomados del catálogo)
Minorista Nombre de identificador Precio Tipo de producto Marca Categoría

prod_1

Camiseta

25 USD

Indumentaria

Marca A

Categoría A

prod_2

Buzo con capucha de FB

30 USD

Indumentaria

Marca B

Categoría A

prod_3

iPhone 6

800 USD

Teléfono

Marca C

Categoría B

prod_4

Samsung Galaxy S5

750 USD

Teléfono

Marca C

Categoría B

prod_5

Arrocera

120 USD

Artículos para el hogar

Marca C

Categoría C

prod_6

Sofá Parker

500 USD

Artículos para el hogar

Marca D

Categoría D

prod_7

Filtro solar

14 USD

Cuidado personal

Marca E

Categoría E

Puedes asociar cada categoría (por ejemplo, cada grupo de productos definido según los valores únicos en una de las columnas anteriores) a activos:

  • Nombre: un nombre corto de la categoría visible para el usuario (hasta 40 caracteres).
  • Descripción: una descripción de la categoría visible para el usuario (hasta 20 caracteres).
  • destination_uri: la URL de la página de destino a la que llegan los usuarios que hacen clic en la categoría.
  • image_url(opcional): la URL de una imagen de estilo de vida que represente la categoría. Si no se proporciona un image_url, autogeneramos un collage con los principales productos de la categoría.

Durante el tiempo de entrega de anuncios, coincidimos dinámicamente cada cuenta del Centro de Cuentas con las categorías a las que es más probable que respondan utilizando los mismos modelos de aprendizaje automático que impulsan los anuncios de catálogo Advantage+ hoy.

API de administración de categorías

La información de las categorías se guarda a nivel del catálogo, lo que significa que distintos anuncios que promocionen las categorías del mismo catálogo compartirían activos, tal como los anuncios que promocionan productos comparten activos definidos en los catálogos. Admitimos distintas opciones de contenido para personalizar los anuncios de categoría.

Las siguientes son las API para recibir y actualizar información sobre categorías.

Lectura

Solicitud

  curl -G \
    -d 'fields=["criteria_value","name","description","destination_uri","image_url"]' \
    -d 'categorization_criteria=product_type' \
    -d 'filter={"price_amount":{"gt":1500}}' \ # optional
    -d 'access_token=<ACCESS_TOKEN>' \
    https://graph.facebook.com/v19.0/<PRODUCT_CATALOG_ID>/categories

Hacemos una búsqueda de todos los productos (se admite un filtro opcional) y presentamos las 1.000 categorías principales (ordenadas según la cantidad de productos).

Ejemplo de respuesta

{
  "data": [
    {
      "criteria_value": "clothes",
      "name": "Awesome clothes",
      "description": "Check out these awesome clothes!",
      "destination_uri": "http://www.example.com/clothes",
      "image_url": "http://www.example.com/clothes.jpg"
    },
    ...
    {
      "criteria_value": "shoes",
      "name": "Awesome shoes",
      "description": "Check out these awesome shoes!",
      "destination_uri": "http://www.example.com/shoes",
      "image_url": "http://www.example.com/shoes.jpg"
    }
  ]
}

Actualización

Puedes especificar varios tipos de información de categoría en los datos. En cada categoría, los campos categorization_criteria y criteria_value son obligatorios, mientras que los campos name, description, destination_uri y image_url son opcionales. Cuando se actualiza por primera vez la información de una categoría, es preciso especificar la destination_uri. Si quieres saltear la entrega de una categoría, basta con dejar la destination_uri vacía.

Nota: Actualmente no es posible borrar una categoría.

Solicitud

curl \
  -F 'data=[{"categorization_criteria":"product_type","criteria_value":"product_type_value","name":"Name","description":"Description","destination_uri":"http://www.example.com/","image_url":"<IMAGE_URL>"}]' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v19.0/<lPRODUCT_CATALOG_ID>/categories

Creación de anuncios

Crear anuncios de categoría de anuncios del catálogo Advantage+ es similar a crear otros anuncios de este tipo, pero la selección de contenido difiere un poco. Sigues promocionando un conjunto de productos con anuncios de categorías dinámicas, pero la diferencia radica en que, esta vez, se muestra el contenido de las categorías.

curl \
  -F "name=Dynamic Category Ad Creative" \
  -F 'object_story_spec={"page_id": "<PAGE_ID>", "template_data": {"description": "{{category.description}}", "link": "https://www.example.com/", "message": "<MESSAGE>", "name": "{{category.name}}"}}' \
  -F 'product_set_id=<PRODUCT_SET_ID>' \
  -F 'categorization_criteria=brand' \
  -F 'category_media_source=MIXED' \ # optional
  -F access_token=<ACCESS_TOKEN> \
  https://graph.facebook.com/v19.0/act_<ACCOUNT_ID>/adcreatives

Esto crea un contenido de categoría en formato por secuencia:

Tokens de categoría

Tokens de categoría admitidos:

  • category.name: nombre de la categoría dentro del conjunto de productos promocionado.
  • category.description: descripción de categoría dentro del conjunto de productos promocionado.
  • category.destination_uri: URI de destino de categoría.
  • category.min_price: precio mínimo de esta categoría dentro del conjunto de productos promocionado. Esta información se obtiene del catálogo.

Parámetros

NombreDescripción

categorization_criteria

Especifica qué tipo de categoría se debe usar.
Valores:

  • brand
  • product_type
  • google_product_category

category_media_source

Especifica cómo renderizar la tarjeta de la secuencia de categorías.
Valores:

  • mixed (predeterminado)
    Usa la imagen de la categoría, si existe; de lo contrario, se usará products_collage.
  • category
    Usa la imagen de la categoría. Omite esta categoría si no tiene una imagen.
  • products_collage
    Genera un collage 2x2 de imágenes de productos de esta categoría.
  • products_slideshow
    Hace una presentación de productos de la categoría.

Durante la creación de contenido de la categoría, buscamos categorías posibles que se puedan mostrar.

Nota: Descartamos las categorías sin nombre o sin URL de destino. También descartamos las categorías sin imágenes si category_media_source = category.

Errores comunes

La creación de contenido no funciona si hay menos de cuatro categorías admisibles (por ejemplo, para usar categorías de anuncios del catálogo Advantage+ como contenido para una campaña determinada, es preciso que haya al menos cuatro valores únicos en una columna determinada del archivo de lista de datos).

Paso 3: proporcionar el contenido de un anuncio

En las plantillas de anuncios del catálogo Advantage+ se usan publicaciones de página directas para crear contenido de plantillas del catálogo Advantage+.

Crear contenido de plantillas

Crear contenido de plantillas de anuncios del catálogo Advantage+ es similar a crear otro tipo de contenido de anuncios. La diferencia radica en que puedes agregar parámetros de plantilla que se muestren correctamente en el tiempo de ejecución según el archivo de lista de datos.

Crea la plantilla de acuerdo con el objeto template_data de object_story_spec y utiliza los siguientes campos:

NombreDescripciónAcepta parámetros de plantilla

call_to_action

Objeto

Objeto de llamada a la acción.
Se debe omitir el campo value.

No

message

Cadena

Mensaje del anuncio, visible en Instagram.

link

Cadena

Enlace al sitio web que se usa para generar el texto del anuncio.
Este campo siempre se reemplazará por el campo link del archivo de lista de datos, excepto la tarjeta final de los anuncios por secuencia, que se vinculará a este.
Nota: No puede ser una URL de Facebook.

No

name

Cadena

Nombre o título del anuncio, visible en Instagram.

description

Cadena

Descripción del anuncio, no visible en Instagram.

force_single_link

Booleano

Opcional.
Fuerza la representación de un formato de enlace único.
Si se configura como true, el contenido será un anuncio de publicación de la página del enlace que mostrará un solo producto. Si se excluye, el anuncio resultante será un anuncio por secuencia. Facebook elegirá la cantidad de tarjetas para optimizar el rendimiento del anuncio.

No

show_multiple_images

Booleano

Muestra varias imágenes de la secuencia para un solo producto.
Nota:force_single_link y multi_share_end_card se deben configurar como true y false, respectivamente.

No

multi_share_end_card

Booleano

Opcional.
La configuración predeterminada es true.
Úsalo en el formato por secuencia. Si se configura como false, eliminará la tarjeta final que muestra el icono de la página.

No

additional_image_index

Número entero

Indica qué imagen de la matriz de imágenes adicionales debe usarse como imagen del anuncio. Es un índice basado en cero entre 0 y 19.
Si no hay una imagen de un producto determinado en el índice especificado, usa la imagen principal del producto.
Nota: Las URL de imagen adicionales deberían ser únicas. Los duplicados se eliminan, por lo que la numeración del índice se verá afectada.

No

child_attachments

Matriz

Permite proporcionar una o varias tarjetas estáticas en los anuncios del catálogo Advantage+ del formato por secuencia.
Las tarjetas estáticas aparecen antes o después de todos los anuncios del catálogo Advantage+. Proporciona el campo static_card configurado como true para cada tarjeta estática en child_attachments.

No

image_layer_specs

AdCreativeLinkDataImageLayerSpecs

Especifica cómo transformar las imágenes cuando se entregan a los usuarios en el anuncio.
Se necesita un AdCreativeLinkDataImageOverlaySpec en cada capa para definir la forma de representarla. Las capas se representarán en el orden en que se muestran en la lista.
Nota: AdCreativeLinkDataImageLayerSpec está disponible de forma limitada. Ponte en contacto con tu representante de Facebook para obtener más información.

No

image_overlay_spec

AdCreativeLinkDataImageOverlaySpec

Especifica cómo representar superposiciones en una imagen vinculadas a un artículo dinámico.

No

preferred_image_tags

Matriz

Selecciona la imagen que se va a usar si agregaste etiquetas a tus imágenes.
En el caso de un artículo, se selecciona la imagen de la siguiente manera: se obtiene la primera etiqueta en preferred_image_tags, que contiene al menos una imagen para el artículo, y, a continuación, se genera la primera imagen para esa etiqueta. Si ninguna etiqueta coincide con una imagen, se mostrará la primera imagen.

No

Ejemplos

Crear una plantilla de anuncios del catálogo Advantage+ por secuencia

curl \
  -F 'name=Advantage+ Catalog Ads Template Creative Sample' \
  -F 'object_story_spec={ 
    "page_id": "<PAGE_ID>", 
    "template_data": { 
      "description": "Description {{product.description}}", 
      "link": "<LINK>", 
      "message": "Test {{product.name | titleize}}", 
      "name": "Headline {{product.price}}" 
    } 
  }' \
  -F 'product_set_id=<PRODUCT_SET_ID>' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adcreatives  

Usar una plantilla de anuncios del catálogo Advantage+ con superposiciones de imágenes

curl \
  -F 'name=Advantage+ Catalog Ads Template Creative Sample' \
  -F 'object_story_spec={ 
    "page_id": "<PAGE_ID>", 
    "template_data": { 
      "call_to_action": {"type":"SHOP_NOW"}, 
      "description": "Description {{product.description}}", 
      "link": "<LINK>", 
      "message": "Test {{product.name | titleize}}", 
      "name": "Headline {{product.price}}",
      "image_layer_specs": [
        {
          "layer_type": "image",
          "image_source": "catalog"
        },
        {
          "layer_type": "frame_overlay",
          "blending_mode": "lighten",
          "frame_image_hash": "<HASH>",
          "frame_source": "custom",
          "opacity": 100,
          "overlay_position": "center",
          "scale": 100
        },
        {
          "layer_type": "text_overlay",
          "content": {
            "type": "price"
          },
          "opacity": 100,
          "overlay_position": "top_left",
          "overlay_shape": "rectangle",
          "shape_color": "DF0005",
          "text_color": "FFFFFF",
          "text_font": "open_sans_bold"
        }
      ]
    } 
  }' \
  -F 'product_set_id=<PRODUCT_SET_ID>' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/adcreatives

Crear una plantilla de anuncios del catálogo Advantage+ de un producto único con una llamada a la acción

curl \
  -F 'name=Advantage+ Catalog Ads Template Creative Sample' \
  -F 'object_story_spec={ 
    "page_id": "<PAGE_ID>", 
    "template_data": { 
      "call_to_action": {"type":"SHOP_NOW"}, 
      "description": "Description {{product.description}}", 
      "force_single_link": true, 
      "link": "<LINK>", 
      "message": "Test {{product.name | titleize}}", 
      "name": "Headline {{product.price}}" 
    } 
  }' \
  -F 'product_set_id=<PRODUCT_SET_ID>' \
  -F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adcreatives  

Crear una plantilla de anuncios del catálogo Advantage+ por secuencia donde la imagen del anuncio use la primera imagen de la matriz de imágenes adicionales

Para obtener una vista previa de anuncios del catálogo Advantage+ con additional_image_index, debes pasar todo el parámetro object_story_spec al punto de conexión /generatepreviews. Si solo pasas el parámetro object_story_id, no se generará una vista previa.

curl \
  -F 'name=Advantage+ Catalog Ads Template Creative Sample' \
  -F 'object_story_spec={ 
    "page_id": "<PAGE_ID>", 
    "template_data": { 
      "additional_image_index": 0, 
      "description": "Description {{product.description}}", 
      "link": "<LINK>", 
      "message": "Test {{product.name | titleize}}", 
      "name": "Headline {{product.price}}" 
    } 
  }' \
  -F 'product_set_id=<PRODUCT_SET_ID>' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adcreatives  

Crear una plantilla de anuncios del catálogo Advantage+ por secuencia para un solo producto, donde las imágenes provengan de la matriz de imágenes adicionales del catálogo

curl -X POST \
     -F 'name=Advantage+ Catalog Ads Template Creative Sample' \
     -F 'object_story_spec={
           "page_id": <PAGE_ID>,
           "template_data": {
             "message": "Test {{product.name | titleize}}",
             "link": "<YOUR_LINK_URL>",
             "name": "Headline {{product.price}}",
             "description": "Description {{product.description}}",
             "multi_share_end_card": false,
             "force_single_link": true,
             "show_multiple_images": true,
           }
         }' \
     -F 'product_set_id=<PRODUCT_SET_ID>' \
     -F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adcreatives

Crear una plantilla de anuncios del catálogo Advantage+ por secuencia con la primera tarjeta como una tarjeta estática de cupón

curl \
  -F 'name=Advantage+ Catalog Ads Template Creative Sample' \
  -F 'object_story_spec={ 
    "page_id": "<PAGE_ID>", 
    "template_data": { 
      "child_attachments": [ 
        { 
          "call_to_action": {"type":"SHOP_NOW"}, 
          "description": "30% off", 
          "image_hash": "<IMAGE_HASH>", 
          "link": "https:\/\/www.link.com\/coupon", 
          "name": "Coupon Static Card", 
          "static_card": true 
        }, 
        { 
          "call_to_action": {"type":"SHOP_NOW"}, 
          "description": "Description {{product.description}}", 
          "name": "Headline {{product.price}}" 
        } 
      ], 
      "link": "<LINK>", 
      "message": "Test Message" 
    } 
  }' \
  -F 'product_set_id=<PRODUCT_SET_ID>' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adcreatives  

Crear una presentación por secuencia a partir de una plantilla de anuncios del catálogo Advantage+

Cada tarjeta dinámica de la secuencia se genera como una presentación. Cada presentación muestra imágenes de un artículo dinámico si el artículo contiene varias imágenes. Si el artículo dinámico contiene una sola imagen, se genera una tarjeta como una imagen estática.

curl \
  -F 'name=Advantage+ Catalog Ads Template Creative Sample' \
  -F 'object_story_spec={
    "page_id": "PAGE_ID",
    "template_data": {
      "call_to_action": {"type":"SHOP_NOW"},
      "description": "Description {{product.description}}",
      "link": "LINK",
      "message": "Test {{product.name | titleize}}",
      "name": "Headline {{product.price}}",
      "format_option": "carousel_slideshows"
    }
  }' \
  -F 'product_set_id=PRODUCT_SET_ID' \
  -F 'access_token=ACCESS_TOKEN' \
  https://graph.facebook.com/v19.0/AD_ACCOUNT_ID/adcreatives

La respuesta a estas llamadas es el identificador de contenido de una nueva plantilla de anuncios del catálogo Advantage+.

{"id":"creative_id"}

Subir un catálogo

Al subir un catálogo, puedes especificar etiquetas de cadenas alfanuméricas arbitrarias en cada imagen en cada propiedad.

<listing>
 <hotel_id>hotel_1</hotel_id>
 ...
 <image>
 <url>https://media-cdn.tripadvisor.com/media/photo-o/05/ca/40/af/the-epiphany-a-joie-de.jpg (https://l.facebook.com/l.php?u=https%3A%2F%2Fmedia-cdn.tripadvisor.com%2Fmedia%2Fphoto-o%2F05%2Fca%2F40%2Faf%2Fthe-epiphany-a-joie-de.jpg&h=ATPTuLcCa7Vsnmn07cEVa0YseTFl1C2hOax9NezejmXDbR48w3CLdjLlwlpuGCRDQmuafQvk03ybGqfhk-2mBcH7xtuKAsnuuq9xKwBd8DwfuBMZkq3n1qX5MdychRKGy2bo2ax9BZQzgqVDY_AvC1EqE6aAdUEc)</url>
 <tag>exterior</tag>
 <tag>first image</tag>
 <tag>tree</tag>
 </image>
 <image>
 <url>http://www3.hilton.com/resources/media/hi/DFWANHH/en_US/img/shared/full_page_image_gallery/main/HH_exteriorview001_1270x560_FitToBoxSmallDimension_Center.jpg (http://l.facebook.com/l.php?u=http%3A%2F%2Fwww3.hilton.com%2Fresources%2Fmedia%2Fhi%2FDFWANHH%2Fen_US%2Fimg%2Fshared%2Ffull_page_image_gallery%2Fmain%2FHH_exteriorview001_1270x560_FitToBoxSmallDimension_Center.jpg&h=ATPTuLcCa7Vsnmn07cEVa0YseTFl1C2hOax9NezejmXDbR48w3CLdjLlwlpuGCRDQmuafQvk03ybGqfhk-2mBcH7xtuKAsnuuq9xKwBd8DwfuBMZkq3n1qX5MdychRKGy2bo2ax9BZQzgqVDY_AvC1EqE6aAdUEc)</url>
 <tag>skyline</tag>
 ...
 </image>
 ...
</listing>

Crear contenido de un anuncio

Cuando se crea el contenido de un anuncio, es posible pasar una matriz de preferred_image_tags en object_story_spec.

curl \
 -F 'name=Ad Creative Test'\
 -F 'object_story_spec={
     "page_id": '<PAGE_ID>',
     "template_data": {
       "preferred_image_tags": ["skyline","exterior"],
       "call_to_action": {"type":"BOOK_TRAVEL"},
       "description": "{{hotel.description}}",
       "link": "<URL>",
        "message": "Book your stay in {{hotel.city}}",
        "name": "{{hotel.name | titleize}}"
     }
    }' \
 -F 'product_set_id=<PRODUCT_SET_ID>' \
 -F 'access_token=<ACCESS_TOKEN>' \
 https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adcreatives

Habilitar video para anuncios del catálogo Advantage+

Los pasos principales para crear anuncios del catálogo Advantage+ siguen siendo los mismos. Para habilitar el video, debes incluir datos de video y proporcionar esos datos dentro del catálogo. Consulta a continuación los cambios que es necesario realizar cuando se crean o actualizan catálogos.

Paso 1: configurar el catálogo

En este ejemplo, se utiliza un archivo XML; otros formatos se comportan de forma similar.

Al agregar un video a la lista, se admiten los campos url y tag. Actualmente, solo se admite un video por producto.

<?xml version="1.0" encoding="utf-8"?>
<listings>
  <title>Test hotel feed</title>
  <listing>
    <hotel_id>hotel_1</hotel_id>
    <name>Test Hotel 1</name>
    <description>A very nice hotel</description>
    <brand>Facebook</brand>
    <address format="simple">
      <component name="addr1">180 Hamilton Ave</component>
      <component name="city">Palo Alto</component>
      <component name="city_id">12345</component>
      <component name="region">California</component>
      <component name="postal_code">94301</component>
      <component name="country">United States</component>
    </address>
    <latitude>37.4435997</latitude>
    <longitude>-122.1615219</longitude>
    <neighborhood>Palo Alto</neighborhood>
    <neighborhood>Silicon Valley</neighborhood>
    <margin_level>8</margin_level>
    <base_price>200.5 USD</base_price>
    <phone>+1 650 666-3311</phone>
    <star_rating>2.5</star_rating>
    <guest_rating>
      <score>7.8</score>
      <rating_system>tripAdvisor</rating_system>
      <number_of_reviewers>300</number_of_reviewers>
    </guest_rating>
    <guest_rating>
      <score>9.8</score>
      <rating_system>Hotels.com</rating_system>
      <number_of_reviewers>35000</number_of_reviewers>
    </guest_rating>
    <image>
      <url>https://media-cdn.tripadvisor.com/media/photo-o/05/ca/40/af/the-epiphany-a-joie-de.jpg</url>
      <tag>front view</tag>
      <tag>first image</tag>
    </image>
    <image>
      <url>http://www.jdvhotels.com/content/uploads/2014/06/72-1200x800.jpg</url>
      <tag>room</tag>
      <tag>bed</tag>
    </image>
    <loyalty_program>Starwood</loyalty_program>
    <url>http://www.jdvhotels.com/hotels/california/silicon-valley-hotels/the-epiphany-hotel/</url>
    <applink property="ios_url" content="example-ios://electronic"/>
    <applink property="ios_app_store_id" content="42"/>
    <applink property="ios_app_name" content="Electronic Example iOS"/>
*    <video>
      <url>http://example.com/some_video1.mp4</url>
      <tag>City</tag>
      <tag>Package</tag>
    </video>*
  </listing>
</listings>

Especificaciones de video

Paso 2: usar la API para obtener metadatos de video para la solución de problemas

Puedes usar la API para comprobar los datos subidos. Permite para cada elemento la consulta de sus "metadatos de video".

Solicitud
curl -i -X GET \
 "https://graph.intern.facebook.com/v19.0/1234567890?fields=videos_metadata.fields(video,tags,url)&access_token=<ACCESS TOKEN>"

Ejemplo de respuesta

Paso 3: Activa el video en el contenido o anuncio

Para activar el contenido de video a nivel de producto en los anuncios, consulta la documentación Crear anuncios con contenido multimedia dinámico.

Seguimiento de clics y plantillas

Si realizas un seguimiento de clics en enlaces a través de un rastreador de clics de terceros antes de que se produzca el redireccionamiento a la URL del producto final, puedes usar el campo template_url_spec en el contenido del anuncio. Esto permite agregar una plantilla de rastreador de clics en el nivel del anuncio sin tener que integrarla como parte del código del archivo de lista de datos. También puedes usar este campo para crear plantillas de enlaces profundos.

En este campo, puedes usar campos dinámicos, como la URL o el identificador del producto, que deben tener codificación URL si sus valores pueden contener caracteres que invaliden la URL.

Ejemplo

Para crear una plantilla de anuncios del catálogo Advantage+ por secuencia con la opción de configuración template_url_spec:

curl \
  -F 'name=Advantage+ Catalog Ads Template Creative Sample' \
  -F 'object_story_spec={ 
    "page_id": "<PAGE_ID>", 
    "template_data": { 
      "description": "Description {{product.description}}", 
      "link": "<URL>", 
      "message": "Test {{product.name | titleize}}", 
      "name": "Headline {{product.price}}" 
    } 
  }' \
  -F 'template_url_spec={ 
    "ios": { 
      "app_store_id": "123", 
      "url": "example:\/\/link\/?nav=item.view&id={{product.retailer_id | urlencode}}&referrer=http:\/\/rover.example.com\/rover\/1\/711-198453-24755-9\/16%3Fitemid={{product.retailer_id | urlencode | urlencode}}" 
    }, 
    "web": { 
      "url": "http:\/\/clicktrack.com\/cm325?id={{product.retailer_id | urlencode}}&redirect_url={{product.url | urlencode | urlencode}}" 
    } 
  }' \
  -F 'product_set_id=<PRODUCT_SET_ID>' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adcreatives  

Usar datos del archivo de lista de datos en la plantilla

Cuando se muestra un anuncio, Facebook reemplaza el contenido en la sección {{ }} con los valores correctos del archivo de lista de datos. Los valores de plantilla disponibles son los siguientes:

NombreDescripción

brand

El valor brand del artículo, tomado del archivo de lista de datos.

current_price

El precio de venta con formato si el producto tiene uno especificado. De manera opcional, puedes especificar fechas de inicio y fin de la venta de un producto, y current_price mostrará el precio de venta mientras el artículo esté en venta. Si no se especifica ningún precio de venta o si las fechas de venta caducaron, se mostrará el campo de precio.

description

El valor description del artículo, tomado del archivo de lista de datos.

name

El valor title del artículo, tomado del archivo de lista de datos.

price

La columna price con formato (como $1,234.56).

retailer_id

El valor id del artículo, tomado del archivo de lista de datos.

url

El valor link del artículo, tomado del archivo de lista de datos.

custom_label_0

El valor custom_label_0 del artículo, tomado del archivo de lista de datos.

custom_label_1

El valor custom_label_1 del artículo, tomado del archivo de lista de datos.

custom_label_2

El valor custom_label_2 del artículo, tomado del archivo de lista de datos.

custom_label_3

El valor custom_label_3 del artículo, tomado del archivo de lista de datos.

custom_label_4

El valor custom_label_4 del artículo, tomado del archivo de lista de datos.

Opciones

Algunos valores de la plantilla pueden recibir opciones en cualquier orden y con el siguiente formato:

{{field option1 option2 ...}}

Las siguientes opciones están disponibles:

OpciónDescripciónCompatible con

raw

Omite el símbolo de divisa.

price
current_price

strip_zeros

Omite los centavos en la divisa si son ceros.

price
current_price

round

Omite el monto en centavos de la divisa y redondea el precio hacia arriba.

Todos los campos de precios

Transformaciones

Puedes utilizar los valores de la plantilla con transformaciones para ajustar el valor en función de este formato:

{{field | transform}}

Utiliza una de estas transformaciones:

TransformacionesDescripción

number_format

Formatea el número con el formato predeterminado con coma (",") como separador de miles y redondeado al entero más próximo (por ejemplo, 1234.56->"1,235"). El valor para el formato debe ser un número sin formato ("1234", no "1,234").

titleize

Coloca la primera letra de los títulos en mayúscula para que tengan una mejor apariencia (p. ej., "caja" -> "Caja").

urlencode

Codifica el valor de la URL.

Especificar el comportamiento deseado de los clics en anuncios desde dispositivos móviles

Cuando muestras contenido dinámico, puedes especificar el comportamiento deseado si una persona hace clic en el anuncio en la app de Facebook nativa. Existen dos requisitos para poder usar los enlaces profundos:

  1. La app para celulares nativa a la que se debe enviar el usuario debe admitir los enlaces profundos (iOS o Android).
  2. La información de enlaces profundos se incluyó en el archivo de lista de datos, o bien está disponible mediante App Links.

Si se cumplen ambos requisitos, puedes usar el campo applink_treatment cuando crees el contenido de un anuncio para especificar el comportamiento deseado si un usuario hace clic en un anuncio.

NombreDescripción

web_only

Se envía siempre al usuario a la URL web específica.

deeplink_with_web_fallback

Si la app está instalada en el teléfono del usuario y tenemos la información correspondiente de los enlaces profundos, se envía al usuario a la app. Si no se cumple alguna de estas condiciones, se envía al usuario al sitio web.

deeplink_with_appstore_fallback

Valor predeterminado cuando los enlaces de la app están presentes para el producto. Si la app está instalada en el teléfono del usuario y tenemos la información de los enlaces profundos correspondiente, se envía al usuario a la app. Si la app no está instalada, se envía a la persona a la tienda de apps para que la obtenga.

Ejemplos

Crear una plantilla de anuncios del catálogo Advantage+ por secuencia con una llamada a la acción que establecerá un enlace profundo a la app nativa, si está disponible, o dirigirá a la web:

curl \
  -F 'name=Advantage+ Catalog Ads Template Creative Sample' \
  -F 'applink_treatment=deeplink_with_web_fallback' \
  -F 'object_story_spec={ 
    "page_id": "<PAGE_ID>", 
    "template_data": { 
      "call_to_action": {"type":"SHOP_NOW"}, 
      "description": "Description {{product.description}}", 
      "link": "<LINK>", 
      "message": "Test {{product.name | titleize}}", 
      "name": "Headline {{product.price}}" 
    } 
  }' \
  -F 'product_set_id=<PRODUCT_SET_ID>' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adcreatives  

Crear una plantilla de anuncios del catálogo Advantage+ por secuencia con etiquetas de URL habilitadas que establecerá un enlace profundo a la app nativa, si está disponible, o dirigirá a la tienda de apps para obtener la app:

curl \
  -F 'name=Advantage+ Catalog Ads Template Creative Sample' \
  -F 'applink_treatment=deeplink_with_appstore_fallback' \
  -F 'object_story_spec={ 
    "page_id": "<PAGE_ID>", 
    "template_data": { 
      "call_to_action": {"type":"SHOP_NOW"}, 
      "description": "Description {{product.description}}", 
      "link": "<LINK>", 
      "message": "Test {{product.name | titleize}}", 
      "name": "Headline {{product.price}}" 
    } 
  }' \
  -F 'product_set_id=<PRODUCT_SET_ID>' \
  -F 'access_token<ACCESS_TOKEN>' \
https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/adcreatives

Crear un catálogo localizado para anuncios del catálogo Advantage+

Para obtener información detallada, consulta Catálogo localizado para anuncios del catálogo Advantage+.

Paso 4: crear un anuncio

Por último, puedes crear un anuncio. El anuncio hace referencia al contenido del anuncio.

Ejemplo

curl -X POST \ -F 'name="My Ad"' \ -F 'adset_id="<AD_SET_ID>"' \ -F 'creative={ "creative_id": "<CREATIVE_ID>" }' \ -F 'status="PAUSED"' \ -F 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/ads
'use strict'; const bizSdk = require('facebook-nodejs-business-sdk'); const AdAccount = bizSdk.AdAccount; const Ad = bizSdk.Ad; const access_token = '<ACCESS_TOKEN>'; const app_secret = '<APP_SECRET>'; const app_id = '<APP_ID>'; const id = '<AD_ACCOUNT_ID>'; const api = bizSdk.FacebookAdsApi.init(access_token); const showDebugingInfo = true; // Setting this to true shows more debugging info. if (showDebugingInfo) { api.setDebug(true); } const logApiCallResult = (apiCallName, data) => { console.log(apiCallName); if (showDebugingInfo) { console.log('Data:' + JSON.stringify(data)); } }; let fields, params; fields = [ ]; params = { 'name' : 'My Ad', 'adset_id' : '<adSetID>', 'creative' : {'creative_id':'<adCreativeID>'}, 'status' : 'PAUSED', }; const ads = (new AdAccount(id)).createAd( fields, params ); logApiCallResult('ads api call complete.', ads);
require __DIR__ . '/vendor/autoload.php'; use FacebookAds\Object\AdAccount; use FacebookAds\Object\Ad; use FacebookAds\Api; use FacebookAds\Logger\CurlLogger; $access_token = '<ACCESS_TOKEN>'; $app_secret = '<APP_SECRET>'; $app_id = '<APP_ID>'; $id = '<AD_ACCOUNT_ID>'; $api = Api::init($app_id, $app_secret, $access_token); $api->setLogger(new CurlLogger()); $fields = array( ); $params = array( 'name' => 'My Ad', 'adset_id' => '<adSetID>', 'creative' => array('creative_id' => '<adCreativeID>'), 'status' => 'PAUSED', ); echo json_encode((new AdAccount($id))->createAd( $fields, $params )->exportAllData(), JSON_PRETTY_PRINT);
from facebook_business.adobjects.adaccount import AdAccount from facebook_business.adobjects.ad import Ad from facebook_business.api import FacebookAdsApi access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<AD_ACCOUNT_ID>' FacebookAdsApi.init(access_token=access_token) fields = [ ] params = { 'name': 'My Ad', 'adset_id': '<adSetID>', 'creative': {'creative_id':'<adCreativeID>'}, 'status': 'PAUSED', } print AdAccount(id).create_ad( fields=fields, params=params, )
import com.facebook.ads.sdk.*; import java.io.File; import java.util.Arrays; public class SAMPLE_CODE_EXAMPLE { public static void main (String args[]) throws APIException { String access_token = \"<ACCESS_TOKEN>\"; String app_secret = \"<APP_SECRET>\"; String app_id = \"<APP_ID>\"; String id = \"<AD_ACCOUNT_ID>\"; APIContext context = new APIContext(access_token).enableDebug(true); new AdAccount(id, context).createAd() .setName(\"My Ad\") .setAdsetId(<adSetID>L) .setCreative( new AdCreative() .setFieldId(\"<adCreativeID>\") ) .setStatus(Ad.EnumStatus.VALUE_PAUSED) .execute(); } }
require 'facebook_ads' access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<AD_ACCOUNT_ID>' FacebookAds.configure do |config| config.access_token = access_token config.app_secret = app_secret end ad_account = FacebookAds::AdAccount.get(id) ads = ad_account.ads.create({ name: 'My Ad', adset_id: '<adSetID>', creative: {'creative_id':'<adCreativeID>'}, status: 'PAUSED', })

¡Felicitaciones! Creaste tu primer anuncio del catálogo Advantage+. No dudes en reanudarlo para iniciar la entrega.

Cuando se publican como anuncios de historias de Instagram, los anuncios del catálogo Advantage+ se recortan al formato 1:1, independientemente de las dimensiones de la imagen original.

Próximos pasos

Vista previa de anuncios del catálogo Advantage+

Puedes generar vistas previas del contenido dinámico con el punto de conexión de vistas previas de anuncios. Especifica el parámetro product_item_ids o varios product_item_ids para generar una vista previa de un anuncio por secuencia.

curl -X GET \ -d 'ad_format="DESKTOP_FEED_STANDARD"' \ -d 'product_item_ids=[ "<PRODUCT_ITEM_ID>" ]' \ -d 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v19.0/<CREATIVE_ID>/previews
'use strict'; const bizSdk = require('facebook-nodejs-business-sdk'); const AdCreative = bizSdk.AdCreative; const AdPreview = bizSdk.AdPreview; const access_token = '<ACCESS_TOKEN>'; const app_secret = '<APP_SECRET>'; const app_id = '<APP_ID>'; const id = '<AD_CREATIVE_ID>'; const api = bizSdk.FacebookAdsApi.init(access_token); const showDebugingInfo = true; // Setting this to true shows more debugging info. if (showDebugingInfo) { api.setDebug(true); } const logApiCallResult = (apiCallName, data) => { console.log(apiCallName); if (showDebugingInfo) { console.log('Data:' + JSON.stringify(data)); } }; let fields, params; fields = [ ]; params = { 'ad_format' : 'DESKTOP_FEED_STANDARD', 'product_item_ids' : ['<productItemID>'], }; const previewss = (new AdCreative(id)).getPreviews( fields, params ); logApiCallResult('previewss api call complete.', previewss);
require __DIR__ . '/vendor/autoload.php'; use FacebookAds\Object\AdCreative; use FacebookAds\Object\AdPreview; use FacebookAds\Api; use FacebookAds\Logger\CurlLogger; $access_token = '<ACCESS_TOKEN>'; $app_secret = '<APP_SECRET>'; $app_id = '<APP_ID>'; $id = '<AD_CREATIVE_ID>'; $api = Api::init($app_id, $app_secret, $access_token); $api->setLogger(new CurlLogger()); $fields = array( ); $params = array( 'ad_format' => 'DESKTOP_FEED_STANDARD', 'product_item_ids' => array('<productItemID>'), ); echo json_encode((new AdCreative($id))->getPreviews( $fields, $params )->getResponse()->getContent(), JSON_PRETTY_PRINT);
from facebook_business.adobjects.adcreative import AdCreative from facebook_business.adobjects.adpreview import AdPreview from facebook_business.api import FacebookAdsApi access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<AD_CREATIVE_ID>' FacebookAdsApi.init(access_token=access_token) fields = [ ] params = { 'ad_format': 'DESKTOP_FEED_STANDARD', 'product_item_ids': ['<productItemID>'], } print AdCreative(id).get_previews( fields=fields, params=params, )
import com.facebook.ads.sdk.*; import java.io.File; import java.util.Arrays; public class SAMPLE_CODE_EXAMPLE { public static void main (String args[]) throws APIException { String access_token = \"<ACCESS_TOKEN>\"; String app_secret = \"<APP_SECRET>\"; String app_id = \"<APP_ID>\"; String id = \"<AD_CREATIVE_ID>\"; APIContext context = new APIContext(access_token).enableDebug(true); new AdCreative(id, context).getPreviews() .setAdFormat(AdPreview.EnumAdFormat.VALUE_DESKTOP_FEED_STANDARD) .setProductItemIds(\"[\\"<productItemID>\\"]\") .execute(); } }
require 'facebook_ads' access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<AD_CREATIVE_ID>' FacebookAds.configure do |config| config.access_token = access_token config.app_secret = app_secret end ad_creative = FacebookAds::AdCreative.get(id) previewss = ad_creative.previews({ fields: { }, ad_format: 'DESKTOP_FEED_STANDARD', product_item_ids: ['<productItemID>'], })

Parámetros

NombreDescripción

product_item_ids

matriz [cadena]

Lista de FBID de productos o tokens de identificador de productos codificados como URL Base64.
Todos los tokens tienen el formato catalog:{catalog_id}:{base64urlencode(retailer_id)}.

Recuperación de estadísticas de anuncios de productos

Puedes recuperar estadísticas por producto mediante una llamada GET al punto de conexión de estadísticas. Agrega product_id al parámetro fields.

Se muestran las estadísticas de todos los productos en los conjuntos de productos de una cuenta que se muestran en anuncios del catálogo Advantage+.

Ejemplo

En el ejemplo se reportan clicks, actions e impressions para cada product_id.

Solicitud
use FacebookAds\Object\AdAccount;
use FacebookAds\Object\Fields\AdsInsightsFields;
use FacebookAds\Object\Values\AdsInsightsActionBreakdownsValues;
use FacebookAds\Object\Values\AdsInsightsDatePresetValues;
use FacebookAds\Object\Values\AdsInsightsBreakdownsValues;

$account = new AdAccount('act_<AD_ACCOUNT_ID>');

$fields = array(
  AdsInsightsFields::ACCOUNT_NAME,
  AdsInsightsFields::IMPRESSIONS,
  AdsInsightsFields::ACTIONS,
);

$params = array(
  'date_preset' => AdsInsightsDatePresetValues::LAST_WEEK,
  'action_breakdowns' => array(
    AdsInsightsActionBreakdownsValues::ACTION_TYPE,
  ),
  'breakdowns' => array(
    AdsInsightsBreakdownsValues::PRODUCT_ID,
  ),
);

$stats = $account->getInsights($fields, $params);
from facebookads.adobjects.adaccount import AdAccount
from facebookads.adobjects.adsinsights import AdsInsights

account = AdAccount('act_<AD_ACCOUNT_ID>')

fields = [
    AdsInsights.Field.account_name,
    AdsInsights.Field.impressions,
    AdsInsights.Field.actions,
]

params = {
    'date_preset': 'last_week',
    'actions_group_by': ['action_type'],
    'breakdowns': [
        AdsInsights.Breakdowns.product_id,
    ],
}

stats = account.get_insights(fields=fields, params=params)
APINodeList<AdsInsights> adsInsightss = new AdAccount(act_<AD_ACCOUNT_ID>, context).getInsights()
  .setDatePreset(AdsInsights.EnumDatePreset.VALUE_LAST_WEEK)
  .setActionBreakdowns("[\"action_type\"]")
  .setBreakdowns("[\"product_id\"]")
  .requestField("account_name")
  .requestField("impressions")
  .requestField("actions")
  .execute();
curl -G \
  -d 'date_preset=last_week' \
  -d 'action_breakdowns=["action_type"]' \
  -d 'breakdowns=["product_id"]' \
  -d 'fields=account_name,impressions,actions' \
  -d 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.8/act_<AD_ACCOUNT_ID>/insights
Respuesta
{
 "data": [ 
   {
      "account_id": "123456", 
      "product_id": "60750", 
      "date_start": "2015-02-03", 
      "date_stop": "2015-02-03", 
      "impressions": 880, 
      "clicks": 8, 
      "actions": [ 
        {
          "action_type": "link_click", 
          "value": 6
        }, 
        {
          "action_type": "offsite_conversion.other", 
          "value": 5
        },  
        {
          "action_type": "offsite_conversion", 
          "value": 5
        }
      ], 
      "account_name": "My Account"
    }, 
 ], 
...
}

Recuperación de comentarios y Me gusta

Puedes recuperar comentarios, Me gusta y el product_id de una publicación de anuncios del catálogo Advantage+. Realiza una llamada GET con un post_id como se indica a continuación. El post_id es el effective_object_story_id de un contenido de un anuncio con el formato PageID_PostID.

Nota: No puedes usar ese punto de conexión para recuperar comentarios de Instagram.

curl -G \
  -d 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/<API_VERSION>/<POST_ID>/dynamic_posts

Este punto de conexión devuelve objetos de publicación dinámica.

Una vez que obtienes publicaciones dinámicas, puedes recuperar comments, likes, product_id y child_attachments para el formato por secuencia, si corresponde.

El perímetro dynamic_posts no devolverá los anuncios de personalización de activos de ubicación.