Introducción a los anuncios de catálogo de Advantage+

Los anuncios de catálogo de Advantage+ permiten crear anuncios personalizados dirigidos a las audiencias correspondientes en función de un conjunto de productos.

Los anunciantes que ponen en circulación anuncios sobre vivienda, empleo, crédito o temas sociales, elecciones y política tienen un conjunto de restricciones distinto. Consulta Categorías de anuncios especiales para obtener más información.

Antes de empezar

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

De manera opcional, puedes configurar una audiencia de productos dinámicos, pero no es necesario que añadas inclusiones o exclusiones de conjuntos de productos en la configuración de segmentación.

Paso 1: Crear una campaña publicitaria

Consulta la documentación sobre las campañas publicitarias para descubrir cómo crear una campaña publicitaria.

En este nivel, debes definir el objetivo publicitario mediante el campo objective. Para los anuncios de catálogo de Advantage+, los objetivos admitidos son PRODUCT_CATALOG_SALES, CONVERSIONS, LINK_CLICKS o APP_INSTALLS. Si el valor proporcionado de objective es CONVERSIONS, LINK_CLICKS o APP_INSTALLS, el campo promoted_object no es necesario.

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 de catálogo de Advantage+, debes especificar product_set_id en promoted_object como nivel del conjunto de anuncios para promocionar productos de dicho conjunto.

Además, también puedes definir tu propio evento de conversión para ese producto. Para ello, especifica custom_event_type en promoted_object cuando optimization_goal esté definido en OFFSITE_CONVERSIONS. De este modo, tus anuncios se dirigirán a personas que hayan llevado a cabo ese evento en tu aplicación o sitio.

Por ejemplo, si se establece en ADD_TO_CART, el evento "Añadir al carrito" es el evento de conversión. De forma predeterminada, custom_event_type está establecido en PURCHASE. Obtén más información sobre los eventos y valores estándar de custom_event_type en Seguimiento de las conversiones del píxel de Meta.

Si quieres realizar la optimización para las conversiones fuera del sitio, incluidas las que se completaron desde eventos de la aplicación y desde el píxel de Facebook, así como que la facturación se realice por impresiones:

  • Establece optimization_goal en OFFSITE_CONVERSIONS.
  • Establece billing_event en IMPRESSIONS.

Se pueden encontrar más detalles sobre las combinaciones válidas de optimization_goal y billing_event en Objetivo de optimización y Eventos de facturación.

Ejemplo de creación de un conjunto de anuncios facturado por el valor de IMPRESSIONS y optimizado para el objeto 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

El objeto DYNAMIC_AUDIENCE_ID hace referencia a una audiencia de productos. De manera opcional, puedes omitir dynamic_audience_ids de la llamada.

Para los casos de uso del comercio electrónico, puedes omitir dynamic_audience_ids de la llamada y enviar la información de comportamiento de segmentación 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 una audiencia de productos.

Parámetros

NombreDescripción

product_set_id

Cadena numérica

Obligatorio.
Conjunto de productos al que se va a dirigir esta audiencia.

inclusions

Objeto JSON

Obligatorio.
Conjunto de eventos para la segmentación. Se requiere una inclusión como mínimo. Cada inclusión debe tener exactamente un event.

inclusions.retention_seconds

Entero

Obligatorio.
Número de segundos que la cuenta del Centro de cuentas se va a mantener en la audiencia.

inclusions.rule

Objeto[]

Obligatorio.
Regla de audiencia personalizada del sitio web que hace referencia a un elemento event.

exclusions

Objeto JSON

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

exclusions.retention_seconds

Entero

Obligatorio si se especifica la exclusión.
Número de segundos que se retendrá la exclusión.

exclusions.rule

Objeto[]

Obligatorio si se especifica la exclusión.
Regla de audiencia personalizada del sitio web que hace referencia a un event.

Cada regla debe incluir un event con el operador eq, ya sea como una regla de nivel superior o como parte de una regla and de nivel superior.

Nueva segmentación

En este ejemplo, nos dirigimos a personas que han visualizado productos entre los últimos tres y cinco días, pero que no han realizado una compra. Las ubicaciones de anuncios son la sección de noticias para móviles y Audience Network. Para crear esta audiencia, sigue estos pasos:

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

Venta cruzada o venta dirigida

Ejemplo para anunciar productos que el usuario no ha visto:

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 la venta cruzada entre conjuntos de productos, sigue estos pasos:

  • Proporciona a la audiencia de los productos reglas de eventos asociadas al conjunto de productos A.
  • Muestra productos del conjunto de productos B en el anuncio. Para ello, establece el parámetro product_set_id en el conjunto de productos B en el nivel del contenido del anuncio.

Por ejemplo, una empresa quiere aumentar sus ventas de bolsos de mano de PRODUCT_SET_1 mediante la segmentación de un anuncio para los usuarios existentes que han mostrado interés por los zapatos de PRODUCT_SET_2. Establece el parámetro product_set_id de product_audience_specs en el identificador o los zapatos de PRODUCT_SET_2 y el parámetro product_set_id de promoted_object en el identificador o los bolsos de PRODUCT_SET_1.

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  

También debes establecer el parámetro 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 audiencia amplia

Además de para volver a segmentar y hacer ventas cruzadas a los clientes existentes, los anuncios de catálogo de Advantage+ se pueden usar para dirigirse a audiencias amplias por medio de la segmentación por edad, sexo y otros datos demográficos con productos pertinentes del catálogo. Al utilizar audiencias ampliamente segmentadas combinadas con pujas para conversiones fuera del sitio, los anuncios de catálogo de Advantage+ te permiten expandir enormemente el alcance de tus anuncios de forma eficaz.

Para segmentar audiencias amplias:

  • Crea una audiencia mediante la segmentación demográfica básica. Por ejemplo, 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 de entre 30 y 65 años en los EE. UU. que excluye a clientas que han realizado una compra en los últimos diez días. Pujaremos 8 USD y usaremos el objeto OFFSITE_CONVERSIONS para 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 los anuncios de catálogo de Advantage+

Los anunciantes que ponen en circulación anuncios sobre vivienda, empleo, crédito o temas sociales, elecciones y política tienen un conjunto de restricciones distinto. Consulta Categorías de anuncios especiales para obtener más información.

Las categorías de los anuncios de catálogo de Advantage+ presentan dos nuevas opciones de contenido para la plataforma de anuncios de catálogo de Advantage+. Ambas se pueden usar para personalizar el contenido para compradores que están empezando a tomar una decisión. Con esta función, puedes crear un segundo catálogo de contenido más reducido con las imágenes que representan cada categoría (además del catálogo que ya tienes de imágenes de productos). Asimismo, relacionaremos las categorías de productos con personas en los anuncios igual que relacionamos productos con personas.

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

Cuando asignes estas imágenes nuevas a catálogos de productos existentes, puedes usar una de las tres columnas de la lista para agrupar artículos: marca, tipo de producto y categoría de producto de Google.

En el catálogo de ejemplo siguiente, la columna Tipo de producto tiene cinco valores únicos. El anunciante puede proporcionar hasta cinco collages o imágenes de estilo de vida (una para cada valor único de product_type). El tipo de producto es el criterio de categorización de la categoría, que es el nombre del campo del catálogo usado para definir las categorías. El valor del campo del catálogo es el valor del criterio de la categoría.

Una categoría se puede identificar de manera exclusiva por:

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

prod_1

Camiseta

25 USD

Ropa

Marca A

Categoría A

prod_2

Sudadera con capucha FB

30 USD

Ropa

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

Dispositivo

Marca C

Categoría C

prod_6

Sofá Parker

500 USD

Dispositivo

Marca D

Categoría D

prod_7

Protector solar

14 USD

Cuidado personal

Marca E

Categoría E

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

  • Nombre: nombre corto de la categoría dirigido al usuario (hasta 40 caracteres).
  • Descripción: descripción de la categoría dirigida al usuario (hasta 20 caracteres).
  • destination_uri: URL de la página de destino cuando un usuario hace clic en la categoría.
  • image_url: opcional. URL de una imagen de estilo de vida que representa la categoría. Si no se especifica el campo image_url, se generará automáticamente un collage de productos destacados de la categoría.

Durante la entrega de anuncios, se relacionará de forma dinámica cada cuenta del Centro de cuentas con las categorías a las que es más probable que responda según los mismos modelos de aprendizaje automático que se usan actualmente en los anuncios de catálogo de Advantage+.

API de administración de categorías

La información de categorías se almacena en el nivel del catálogo, lo que significa que distintos anuncios que promocionen las categorías del mismo catálogo compartirán los activos, igual que los anuncios que promocionen productos compartirán los activos definidos en los catálogos. Se admiten distintas opciones de contenido para personalizar los anuncios de categorías.

A continuación, se indican las API para obtener y actualizar la 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

Se realiza una consulta de todos los productos (se admite un filtro opcional) y se buscan las primeras 1000 categorías (ordenadas por número 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

En los datos se puede especificar información de varias categorías. Para 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. Al actualizar información de una categoría por primera vez, debes especificar el campo destination_uri. Si quieres omitir la entrega de una categoría, el campo destination_uri debe estar vacío.

Nota: En estos momentos no se admite la eliminación de 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

Las categorías para la creación de anuncios de los anuncios de catálogo de Advantage+ son similares a las que se utilizan para la creación de otros anuncios de catálogo de Advantage+, pero la selección del contenido es ligeramente diferente. Sigues promocionando un conjunto de productos con anuncios de categoría dinámica. La diferencia es que mostramos contenidos de categorías en su lugar.

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

De esta forma se crea contenido del anuncio de una categoría que se representa en formato por secuencia:

Identificadores de categoría

Identificadores de categoría admitidos:

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

Parámetros

NombreDescripción

categorization_criteria

Especifica el tipo de categoría que se va a usar.
Valores:

  • brand
  • product_type
  • google_product_category

category_media_source

Especifica cómo representar la imagen de la secuencia de la categoría.
Valores:

  • mixed (valor predeterminado)
    Si existe, usa la imagen de la categoría; de lo contrario, recurre a products_collage.
  • category
    Usa la imagen de la categoría. Omite esta categoría si no tiene imagen.
  • products_collage
    Genera un collage de 2 x 2 de imágenes de productos de esta categoría.
  • products_slideshow
    Representa una película de productos de esta categoría.

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

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

Errores comunes

La creación de contenido no se lleva a cabo correctamente si existen menos de cuatro categorías aptas (por ejemplo, para usar categorías de anuncios de catálogo de Advantage+ como contenido de una campaña determinada, debe haber como mínimo cuatro valores únicos en una columna específica del archivo de lista de datos).

Paso 3: Proporcionar el contenido del anuncio

Las plantillas de los anuncios de catálogo de Advantage+ utilizan publicaciones de página en línea para crear contenido de plantilla de catálogo de Advantage+.

Crear contenido de plantilla

El proceso de creación de contenido de plantillas de anuncios de catálogo de Advantage+ es similar al de creación de contenido de anuncios de otro tipo. La diferencia es que puedes añadir parámetros de plantilla que se representen correctamente en tiempo de ejecución según el archivo de lista de datos.

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

NombreDescripciónAcepta parámetros de plantilla

call_to_action

Objeto

Objeto de llamada a la acción.
El campo value debe omitirse.

No

message

Cadena

Mensaje para el anuncio, visible en Instagram.

link

Cadena

Enlace a tu sitio web, que se usará para generar el subtítulo del anuncio.
Este campo se sustituirá siempre por el campo link del archivo de lista de datos, salvo la tarjeta final de los anuncios por secuencia, que enlazará a esto.
Nota: No puede ser una URL de Facebook.

No

name

Cadena

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

description

Cadena

Descripción para el anuncio, no es visible en Instagram.

force_single_link

Booleano

Opcional.
Fuerza la representación de un formato de enlace único.
Si se establece en 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á el número de imágenes 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 deben estar definidos en true y false, respectivamente.

No

multi_share_end_card

Booleano

Opcional.
El valor predeterminado es true.
Úsalo en el formato por secuencia. Si se establece en false, eliminará la imagen final que muestra el icono de la página.

No

additional_image_index

Entero

Indica la imagen de la matriz de imágenes adicionales que debe usarse como imagen del anuncio. Es un índice basado en cero entre 0 y 19.
Si no hay ninguna imagen para un producto determinado en el índice especificado, se usa la imagen del producto principal.
Nota: Las URL de las imágenes adicionales deben ser únicas, ya que las duplicadas se eliminarán. Esto afecta a la numeración del índice.

No

child_attachments

Matriz

Te permite proporcionar una o más imágenes estáticas en los anuncios de catálogo de Advantage+ para el formato por secuencia.
Las imágenes estáticas aparecen antes o después de todos los anuncios de catálogo de Advantage+. Proporciona el campo static_card establecido en true de todas las imágenes estáticas bajo child_attachments.

No

image_layer_specs

AdCreativeLinkDataImageLayerSpecs

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

No

image_overlay_spec

AdCreativeLinkDataImageOverlaySpec

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

No

preferred_image_tags

Matriz

Selecciona la imagen que se usará si has añadido etiquetas a las imágenes.
Para los artículos, elegimos la imagen de la manera siguiente: obtenemos la primera etiqueta de preferred_image_tags que tiene al menos una imagen para el artículo y, a continuación, representamos la primera imagen de la etiqueta. Si no hay ninguna etiqueta correspondiente para una imagen, mostramos la primera imagen.

No

Ejemplos

Creación de una plantilla de anuncios de catálogo de 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  

Uso de una plantilla de anuncios de catálogo de 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

Creación de una plantilla de anuncios de catálogo de Advantage+ de un solo producto 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  

Creación de una plantilla de anuncios de catálogo de Advantage+ por secuencia, donde la imagen del anuncio usa la primera imagen de la matriz de imágenes adicionales

Para generar una vista previa de anuncios de catálogo de Advantage+ con additional_image_index, debes pasar todo el parámetro object_story_spec al extremo /generatepreviews. Si solo pasas el parámetro object_story_id, no se generará ninguna 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  

Creación de una plantilla de anuncios de catálogo de Advantage+ por secuencia para un solo producto, donde cada una de las imágenes procede 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

Creación de una plantilla de anuncios de catálogo de Advantage+ por secuencia con la primera tarjeta como 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  

Creación de una película por secuencia a partir de una plantilla de anuncios de catálogo de Advantage+

Representamos cada imagen dinámica de la secuencia como una película. Cada película muestra imágenes de un elemento dinámico si este tiene varias imágenes. Si el elemento dinámico solo tiene una imagen, se representa una tarjeta como 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 del contenido de una nueva plantilla de anuncios de catálogo de Advantage+.

{"id":"creative_id"}

Subida de un catálogo

Al subir un catálogo, puedes especificar etiquetas de cadena alfanumérica arbitrarias para 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>

Creación del contenido de un anuncio

Al crear el contenido de un anuncio, se puede pasar una matriz de objetos preferred_image_tags en el parámetro 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

Activar el vídeo para los anuncios de catálogo de Advantage+

Los pasos principales para crear un anuncio de catálogo de Advantage+ siguen siendo los mismos. Para activar el vídeo, debes incluir datos de vídeo y proporcionarlos en el catálogo. Consulta a continuación los cambios necesarios durante la creación o actualización de catálogos.

Paso 1: Configurar un catálogo

En este ejemplo se utiliza un archivo XML, aunque otros formatos deben ser parecidos.

Cuando añades un vídeo al anuncio, se admiten los campos url y tag. Actualmente, solo se admite un vídeo 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 vídeo

Paso 2: Usar la API para obtener los metadatos del vídeo para solucionar problemas

Puedes utilizar la API para comprobar los datos subidos. Para cada elemento, habilita las consultas de los “metadatos del vídeo”.

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: Activar el vídeo en el contenido o el anuncio

Para activar el contenido de vídeo de producto en los anuncios, consulta la documentación Crear anuncios con contenido multimedia dinámico.

Seguimiento de clics y plantillas

Si haces un seguimiento de los clics en el enlace mediante una herramienta de terceros para el seguimiento de clics antes de redirigir a la URL del producto definitiva, puedes usar el campo template_url_spec en el contenido del anuncio. De este modo, se puede añadir una plantilla de seguimiento de clics en el anuncio sin tener que usar codificación fija en el archivo de lista de datos. También puedes usar este campo para crear plantillas de enlaces profundos.

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

Ejemplo

Creación de una plantilla de anuncios de catálogo de Advantage+ por secuencia con la 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:

NombreDescripción

brand

Valor brand del artículo del archivo de lista de datos.

current_price

Precio de venta formateado 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é a la venta. Si no se ha especificado ningún precio de venta o si las fechas de venta han pasado, se mostrará el campo de precio.

description

Valor description del artículo del archivo de lista de datos.

name

Valor title del artículo del archivo de lista de datos.

price

Columna price formateada (como $1,234.56).

retailer_id

Valor id del artículo del archivo de lista de datos.

url

Valor link del artículo del archivo de lista de datos.

custom_label_0

Valor custom_label_0 del artículo del archivo de lista de datos.

custom_label_1

Valor custom_label_1 del artículo del archivo de lista de datos.

custom_label_2

Valor custom_label_2 del artículo del archivo de lista de datos.

custom_label_3

Valor custom_label_3 del artículo del archivo de lista de datos.

custom_label_4

Valor custom_label_4 del artículo del archivo de lista de datos.

Opciones

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

{{field option1 option2 ...}}

Están disponibles las opciones siguientes:

OpciónDescripciónCompatible con

raw

Omite el símbolo de divisa.

price
current_price

strip_zeros

Omite la parte de los céntimos en la divisa si son ceros.

price
current_price

round

Omite el importe decimal de la divisa y redondea el precio al alza.

Todos los campos de precio

Transformaciones

Puedes usar valores de plantilla con transformaciones, que ajustan el valor según este formato:

{{field | transform}}

Usa una de estas transformaciones:

TransformacionesDescripción

number_format

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

titleize

Cambia la inicial de las palabras a mayúscula para que se vea mejor el título (p. ej., "box" -> "Box").

urlencode

Codifica el valor de la URL.

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

Al mostrar el contenido dinámico, puedes especificar el comportamiento deseado cuando alguien hace clic en el anuncio de la aplicación de Facebook nativa. Existen dos requisitos para poder usar los enlaces profundos:

  1. La aplicación para móviles nativa a la que se debe enviar el usuario debe admitir los enlaces profundos (iOS o Android).
  2. La información de enlaces profundos debe incluirse en el archivo de lista de datos o estar disponible a través de App Links.

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

NombreDescripción

web_only

Siempre se envía al usuario a la URL web proporcionada.

deeplink_with_web_fallback

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

deeplink_with_appstore_fallback

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

Ejemplos

Creación de una plantilla de anuncios de catálogo de Advantage+ por secuencia con una llamada a la acción que establecerá un enlace profundo a una aplicación nativa si está disponible; en caso contrario, recurrirá 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  

Creación de una plantilla de anuncios de catálogo de Advantage+ por secuencia con etiquetas de URL activadas que establecerá un enlace profundo a una aplicación nativa si está disponible; en caso contrario, recurrirá a la tienda de aplicaciones para obtener la aplicación:

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 los anuncios de catálogo de Advantage+

Consulta los detalles en Catálogo localizado para anuncios de catálogo de Advantage+.

Paso 4: Crear un anuncio

Por último, puedes crear un anuncio. El anuncio hace referencia al contenido de un 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', })

Enhorabuena. Has creado tu primer anuncio de catálogo de Advantage+. No dudes en reanudarlo para iniciar la entrega.

Cuando se publican como anuncios de Instagram Stories, los anuncios de catálogo de Advantage+ se recortan a un tamaño de 1:1, independientemente de las dimensiones de la imagen original.

Próximos pasos

Vista previa de los anuncios de catálogo de Advantage+

Puedes generar vistas previas del contenido dinámico con el extremo de vistas previas del anuncio. Debes especificar el parámetro product_item_ids o varios valores de product_item_ids para obtener la 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 identificadores de Facebook (FBID) del producto o identificadores del identificador de producto codificado mediante Base64 URL.
Cada identificador tiene el formato catalog:{catalog_id}:{base64urlencode(retailer_id)}.

Recuperar estadísticas de anuncios de productos

Puedes recuperar estadísticas por producto mediante una llamada de GET al extremo de insights. Añade product_id al parámetro fields.

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

Ejemplo

En este ejemplo se comunican los valores de clicks, actions e impressions para cada objeto 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"
    }, 
 ], 
...
}

Recuperar comentarios y Me gusta

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

Nota: No se puede utilizar este extremo para recuperar comentarios de Instagram.

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

Este extremo devuelve objetos de publicación dinámica.

Cuando obtengas 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.