Configurar el catálogo

Para configurar los anuncios dinámicos, necesitarás un catálogo, listas de catálogos y conjuntos de productos.

Tu catálogo es un archivo de datos estructurados con una lista de artículos que quieres anunciar. Cada una de las líneas contiene toda la información necesaria para crear un anuncio dinámico. Las listas de productos son subidas dinámicas de tus datos para mantener tu catálogo de productos actualizado.

En este documento te guiaremos en el proceso de configuración de un catálogo:

Consulta también los apartados de introducción a los anuncios dinámicos y configuración de anuncios dinámicos a través de la interfaz de usuario.

Paso 1: Crear el catálogo

Para crear un catálogo de anuncios dinámicos:

use FacebookAds\Object\ProductCatalog;
use FacebookAds\Object\Fields\ProductCatalogFields;

$product_catalog = new ProductCatalog(null, <BUSINESS_ID>);

$product_catalog->setData(array(
  ProductCatalogFields::NAME => "Catalog",
));

$product_catalog->create();
from facebookads.adobjects.productcatalog import ProductCatalog

product_catalog = ProductCatalog(parent_id=<BUSINESS_ID>)

product_catalog[ProductCatalog.Field.name] = 'Catalog'

product_catalog.remote_create()
ProductCatalog catalog = new Business(<BUSINESS_ID>, context).createProductCatalog()
  .setName("Catalog")
  .execute();
String catalog_id = catalog.getId();
curl \
  -F 'name=Catalog' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.11/<BUSINESS_ID>/product_catalogs

Para usar la API del catálogo, necesitas el nivel de acceso de la API de marketing y debes aceptar las condiciones del servicio. Para ello, crea tu primer catálogo a través de Business Manager. Consulta la referencia del catálogo.

Paso 2: Configurar la lista

Es un conjunto de artículos subidos o recuperados de una empresa para que el catálogo de productos esté actualizado. Un artículo es un artículo único de tu tienda en línea, como un SKU. Puedes tener una única lista de productos que represente todos los productos del catálogo; o bien puedes tener varias, cada una de las cuales represente los productos de un solo país o una única división. Consulta la referencia de la lista y la referencia del artículo.

Después de crear un catálogo de productos, usa catalog id para crear y programar una lista de productos:

use FacebookAds\Object\ProductFeed;
use FacebookAds\Object\Fields\ProductFeedFields;
use FacebookAds\Object\Fields\ProductFeedScheduleFields;

$product_feed = new ProductFeed(null, <PRODUCT_CATALOG_ID>);

$product_feed->setData(array(
  ProductFeedFields::NAME => 'Test Feed',
  ProductFeedFields::SCHEDULE => array(
    ProductFeedScheduleFields::INTERVAL => 'DAILY',
    ProductFeedScheduleFields::URL =>'http://www.example.com/sample_feed.tsv',
    ProductFeedScheduleFields::HOUR => 22,
  ),
));

$product_feed->create();
from facebookads.adobjects.productfeed import ProductFeed

product_feed = ProductFeed(parent_id=<PRODUCT_CATALOG_ID>)

product_feed[ProductFeed.Field.name] = 'Test Feed'
product_feed[ProductFeed.Field.schedule] = {
    'interval': 'DAILY',
    'url': 'http://www.example.com/sample_feed.tsv',
    'hour': 22,
}

product_feed.remote_create()
ProductFeed productFeed = new ProductCatalog(<PRODUCT_CATALOG_ID>, context).createProductFeed()
  .setName("Test Feed")
  .setSchedule("{\"interval\":\"DAILY\",\"url\":\"http://www.example.com/sample_feed.tsv\",\"hour\":\"22\"}")
  .execute();
String product_feed_id = productFeed.getId();
curl \
  -F 'name=Test Feed' \
  -F 'schedule={ 
    "interval": "DAILY", 
    "url": "http:\/\/www.example.com\/sample_feed.tsv", 
    "hour": 22 
  }' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.11/<PRODUCT_CATALOG_ID>/product_feeds

Formatos admitidos

Proporciona la lista de productos en uno de estos formatos:

Formato de la lista Descripción Lista de ejemplo

CSV

Valor separado por comas. La primera fila es el encabezado de columna. Coloca los campos que contengan comas entre "comillas dobles".

Descargar (hacer clic con el botón derecho y seleccionar Guardar enlace como).

TSV

Valores separados por tabulaciones. La primera fila es el encabezado de columna. Coloca los campos que contengan comas entre "comillas dobles".

Descargar (hacer clic con el botón derecho y seleccionar Guardar enlace como).

XML de RSS

Formato que se suele generar mediante servidores web o sistemas de proveedores de listas automatizados. Un conjunto de nodos XML de artículo representa una lista de productos y debe comenzar con la etiqueta de declaración <?xml.

Descargar (hacer clic con el botón derecho y seleccionar Guardar enlace como).

XML de ATOM

Formato que se suele generar mediante servidores web o sistemas de proveedores de listas automatizados. Un conjunto de nodos XML de artículo representa una lista de productos y debe comenzar con la etiqueta de declaración <?xml.

Descargar (hacer clic con el botón derecho y seleccionar Guardar enlace como).

Campos obligatorios

Indica todos los nombres de columna en inglés.

Nombre Tipo Descripción

id


Tamaño máximo: 100

String

Identificador único del artículo. Puede ser una variante de un producto. Si existen varias instancias del mismo identificador, se ignoran todas. Se asigna a retailer_id una vez importado el producto.

availability

String

Si hay existencias del artículo. Los valores aceptados son:


in stock: el artículo se envía de inmediato.


out of stock: no hay ningún plan que reabastecer.


preorder: disponible en el futuro.


available for order: se envía en 1 o 2 semanas.


discontinued: descatalogado.


condition

String

Estado del producto: new, refurbished o used.

description


Tamaño máximo: 5000

String

Texto breve que describe el producto

image_link


String

Enlace a la imagen del artículo que se usa en el anuncio. El formato por secuencia usa imágenes con una relación de aspecto cuadrada de 1:1 (600 x 600 px) mientras que un anuncio de un solo producto usa una imagen con una relación de aspecto de 1,91:1 (1200 x 630 px). Proporciona imágenes que te resulten adecuadas.

link


String

Enlace al sitio del comerciante, donde se puede comprar el artículo.

title


Tamaño máximo: 100

String

Título del artículo

price

String

Coste del artículo y divisa. La divisa debe seguir los códigos de divisa ISO 4217, como 9.99 USD.

gtin, mpn o brand


Tamaño máximo: 70

String

gtin: los identificadores mundiales de artículos comerciales (GTIN) pueden incluir UPC, EAN, JAN e ISBN.



mpn: identificador único del fabricante para el producto.



brand: nombre de la marca.



Se requiere gtin, mpn o brand.

Campos opcionales y enlaces profundos de productos

Proporciona enlaces profundos en la lista de productos de acuerdo con la especificación de App Links. La información de los enlaces profundos de la lista de productos tiene prioridad sobre cualquier información que Facebook recopile con los metadatos de App Links mediante nuestro rastreador web.

Si ya tienes la información de los enlaces profundos de App Links, no tienes que especificar estos datos. Facebook usa la información de App Links para mostrar el enlace profundo correcto. Para mostrar enlaces profundos en tus anuncios, consulta el tema sobre la plantilla de anuncio de Anuncios dinámicos.

Nombre Descripción Ejemplo

ios_url

Esquema personalizado de la aplicación para iOS como URL

example-ios://electronic

ios_app_store_id

Identificador de la aplicación en el App Store

1234

ios_app_name

Nombre para mostrar de la aplicación

Electronic Example iOS

iphone_url

Esquema personalizado de la aplicación para iPhone como URL

example-iphone://electronic

iphone_app_store_id

Identificador de la aplicación en el App Store

5678

iphone_app_name

Nombre para mostrar de la aplicación

Electronic Example iPhone

ipad_url

Esquema personalizado de la aplicación para iPhone

example-ipad://electronic

ipad_app_store_id

Identificador de la aplicación en el App Store

9010

ipad_app_name

Nombre para mostrar de la aplicación

Electronic Example iPad

android_url

Esquema personalizado de la aplicación para Android como URL

example-android://electronic

android_package

Nombre completo del paquete para la generación de intenciones

com.electronic

android_app_name

Nombre para mostrar de la aplicación

Electronic Example Android

windows_phone_url

Esquema personalizado de la aplicación para Windows Phone como URL

example-windows://electronic

windows_phone_app_id

Identificador de la aplicación, como un GUID, de la Tienda de aplicaciones

ee728e01-7727-4168-9c8f-85c7eef40112

windows_phone_app_name

Nombre para mostrar de la aplicación

Electronic Example Windows

Para iOS, proporciona solo información de la aplicación para iPhone o iPad si es distinta de la información de la aplicación para iOS general.

Usa el grupo de productos para agrupar todas las variantes de producto. Proporciona el grupo de productos para identificar productos que son casi idénticos, pero presentan variaciones de color, material, tamaño o trama. Los grupos facilitan la publicidad de colores, estilos o tramas adicionales de un producto concreto. Todos los productos de un grupo de productos comparten el mismo item_group_id. En los anuncios dinámicos, seleccionamos solo un artículo del grupo en función de la señal que recibimos del píxel o de la aplicación.

Esta es una lista de campos opcionales que puedes incluir:

Nombre Tipo Tamaño máximo

additional_image_link


Tamaño máximo: 2000

String

Puedes incluir hasta 10 imágenes adicionales; proporciónalas como direcciones URL separadas por comas.

age_group

String

Grupo de edad del producto. Los valores aceptados son newborn, infant, toddler, kids y adult.

color


Tamaño máximo: 100

String

Color del artículo

expiration_date

ISO‑8601 (AAAA‑MM‑DD)

Caducidad del producto. Si el producto ha caducado, Facebook lo excluye de todos los conjuntos de productos y no lo muestra en los anuncios.

gender

String

Las opciones incluyen: male, female y unisex.

item_group_id

String

Para los artículos que son variantes de un producto. Proporciona el mismo item_group_id para todos los artículos que sean variantes. Por ejemplo, "Polo rojo" es una variante de "Polo". Facebook lo asigna a retailer_product_group_id cuando obtiene tu lista. En los anuncios dinámicos, seleccionamos solo un artículo del grupo en función de la señal que recibimos del píxel o de la aplicación.

google_product_category


Tamaño máximo: 250

String

Valores predefinidos de la taxonomía de productos de Google. Por ejemplo, Apparel & Accessories > Clothing > Dresses.

material


Tamaño máximo: 200

String

Material del que está hecho el producto, como leather, denim o cotton.

pattern


Tamaño máximo: 100

String

Trama o impresión gráfica de un producto

product_type


Tamaño máximo: 750

String

Categoría del producto definida por el minorista.

Ejemplo en TSV
Home & Garden > Kitchen & Dining > Appliances > Refrigerators

Ejemplo en XML <product_type>Home & Garden > Kitchen & Dining > Appliances > Refrigerators</product_type>

sale_price

String

Precio con descuento si el artículo está en oferta. La divisa debe especificarse con el código de divisa ISO 4217. Especificado como 9,99 USD

sale_price_effective_date

ISO‑8601 (AAAA‑MM‑DD)

Fecha y hora inicial y fecha y hora final de la oferta, separadas por una barra diagonal:


2014-11-01T12:00-0300/2014-12-01T00:00-0300

shipping

String

Blob con distintos precios para cada país y región. Las distintas regiones se separan con coma. El formato debe ser COUNTRY:STATE:SHIPPING_TYPE:PRICE.

Ejemplo:

US:CA:Ground:9.99 USD,US:NY:Air:15.99 USD

shipping_weight

String

Peso del artículo del envío. Solo se aceptan estas unidades de peso: lb, oz, g y kg. Ejemplo: 3 lbs

size

String

Tamaño o talla del artículo. Por ejemplo, una camiseta puede ser de talla Small o XL.

custom_label_0


Tamaño máximo: 100

String

Información adicional opcional sobre el artículo

custom_label_1


Tamaño máximo: 100

String

Información adicional opcional sobre el artículo

custom_label_2


Tamaño máximo: 100

String

Información adicional opcional sobre el artículo

custom_label_3


Tamaño máximo: 100

String

Información adicional opcional sobre el artículo

custom_label_4


Tamaño máximo: 100

String

Información adicional opcional sobre el artículo

Prueba tu lista de productos a través de la página de depuración de nuestra lista de productos. Para los archivos CSV/TSV, copia la primera fila (fila del encabezado de columna) y algunos productos; para el formato XML, copia el texto XML con algunos artículos o entradas, pega las líneas en el área de texto y valídalo.

Paso 3: Opciones de actualización

Para mantener la información del producto actualizada, usa una de las opciones siguientes:

  1. Recuperaciones de listas de productos programadas
  2. Subida directa de una lista de productos
  3. Actualización de un producto

Recuperaciones de listas de productos programadas

Facebook recupera listas de productos de tu sistema según la programación que definas. Puedes definir dos tipos de programación: update_schedule y schedule. Las cargas creadas a través de update_schedule crearían nuevos artículos o actualizarían los existentes con la información incluida en el archivo de lista. Las cargas creadas a través de schedule darían lugar a una operación de actualización completa en tu lista (eliminamos productos no presentes en el archivo, actualizamos los existentes y creamos otros nuevos). Puedes usar una de la programaciones o ambas según tus necesidades.

Por ejemplo: update_schedule con frecuencia HOURLY y una schedule de reemplazo con frecuencia DAILY.

Se recomienda configurar una update_schedule solo con los datos modificados en el archivo de lista para acelerar el procesamiento de la lista. Resulta especialmente idónea para las ventas de vacaciones y para actualizar precios y disponibilidades con más rapidez. También se recomienda marcar los productos como "agotados" en lugar de eliminarlos de la lista, para que Facebook pueda volver a dirigirse al usuario con productos similares que estén disponibles.

curl \
  -F 'name=Test Feed' \
  -F 'schedule={ 
    "interval": "DAILY", 
    "url": "http:\/\/www.example.com\/sample_feed.tsv"
  }' \
  -F 'update_schedule={ 
    "interval": "HOURLY", 
    "url": "http:\/\/www.example.com\/sample_feed_updates.tsv",
    "hour": 22
  }' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.10/<PRODUCT_CATALOG_ID>/product_feeds

La respuesta es:

{ "id" : {PRODUCT_FEED_ID} }

Consulta Referencia de lista de productos, Referencia de la programación de listas de productos.


Subida directa de una lista de productos

Junto con las recuperaciones de listas programadas, puedes realizar subidas únicas manualmente.

Este ejemplo es para archivos de lista que están hospedados en una ubicación pública.

curl \
-F "url=http://www.example.com/sample_feed.xml" \
-F "access_token={ACCESS_TOKEN}" \
https://graph.facebook.com/{API_VERSION}/{PRODUCT_FEED_ID}/uploads

Este ejemplo es para cargar archivos de lista directamente desde el equipo local. La ruta al archivo debe modificarse de acuerdo con tu caso de uso.

curl \
-F "file=@catalog.csv;type=text/csv" \
-F "access_token={ACCESS_TOKEN}" \
https://graph.facebook.com/{API_VERSION}/{PRODUCT_FEED_ID}/uploads

De manera opcional, puedes establecer update_only en true. Creamos nuevos artículos y actualizamos los existentes, pero no eliminamos artículos de la lista. Solo tienes que proporcionar el id para actualizar los artículos existentes. Ello reduce el tiempo necesario para recuperar y procesar el archivo.

Por ejemplo, para actualizar solo el precio y las etiquetas personalizadas de 100 artículos de una lista, usa la subida directa. Proporciona un archivo solo con id, price y custom_label_0 para esos artículos, y con update_only establecido en true. Se admiten todos los formatos de archivo enumerados, pero los más comunes son TSV y CSV.

Archivos de ejemplo:

Formato de la lista Caso de uso Lista de ejemplo

CSV

Actualiza price y availability para un subconjunto de artículos.

Descargar (hacer clic con el botón derecho y seleccionar Guardar enlace como).

TSV

Restablece sale_price y actualiza custom_label_0 para un subconjunto de artículos.

Descargar (hacer clic con el botón derecho y seleccionar Guardar enlace como).

Consulta la referencia de las subidas manuales.

Si recibes errores en la lista de productos, consulta la referencia de los errores de subida de la lista de productos.


Actualización de un producto individual

Actualiza los datos de un producto individual en tiempo real. Incluye los campos actualizados en una solicitud HTTP POST:

https://graph.facebook.com/catalog:{PRODUCT_CATALOG_ID}:{base64urlencode(retailer_id)}

Donde retailer_id es el identificador de producto de tu lista de productos. Debe tener la codificación base64url. Consulta los campos de productos mutables en la referencia de los productos del catálogo de productos.

No proporciones listas de productos con actualizaciones, creación o eliminación de productos individuales mediante la API. Esto puede interrumpir cualquier actualización o eliminación de artículos creados con la API, ya que no se realiza su seguimiento con la lista.

Consulta también * la referencia de recuperaciones de listas programadas, * la referencia de listas de subida directa, * la referencia de listas de productos, * las listas de productos del catálogo, * la referencia del artículo y * la búsqueda de productos en el catálogo.

Subida por lotes para catálogos de gran tamaño

Sube catálogos muy grandes con millones de productos y un inventario muy variable. Puedes crear, actualizar y eliminar numerosos productos en una única solicitud HTTP. La API presenta dos extremos:

  • POST [/{product_catalog_id}/batch](#send-batch-request): envía un lote de solicitudes para crear, actualizar y eliminar artículos en un catálogo.
  • GET [/{product_catalog_id}/check_batch_request_status](#batch-request-status): comprueba el estado de la solicitud.

Envío de actualizaciones de productos

Para crear, actualizar o eliminar productos en el catálogo, realiza una solicitud HTTP POST con los cambios que quieres aplicar. Puedes realizar hasta 500 actualizaciones en una llamada. Para cada catálogo, puedes realizar hasta 100 llamadas por hora.

use FacebookAds\Api;
use FacebookAds\Http\RequestInterface;

$requests =  array(
    array(
        'method' => 'CREATE',
        'retailer_id' => 'retailer-product-id-123',
        'data' => array(
          'availability' => 'in stock',
          'brand' => 'Niky',
          'category' => 't-shirts',
          'currency' => 'USD',
          'description' => 'This is the product description.',
          'image_url' => 'http://www.images.example.com/t-shirts/1.png',
          'name' => 'My product name',
          'price' => '100',
          'url' => 'http://www.example.com/t-shirts/1.html',
        ),
    ),
);


$data = Api::instance()->call(
  '/'.<CATALOG_ID>.'/batch',
  RequestInterface::METHOD_POST,
  array('requests' => $requests))->getContent();
curl \
  -F 'requests=[ 
    { 
      "method": "CREATE", 
      "retailer_id": "retailer-product-id-123", 
      "data": { 
        "availability": "in stock", 
        "brand": "Niky", 
        "category": "t-shirts", 
        "currency": "USD", 
        "description": "This is the product description.", 
        "image_url": "http:\/\/www.images.example.com\/t-shirts\/1.png", 
        "name": "My product name", 
        "price": "100", 
        "url": "http:\/\/www.example.com\/t-shirts\/1.html" 
      } 
    } 
  ]' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.11/<CATALOG_ID>/batch

Esta llamada devuelve un identificador que se puede usar para comprobar el estado de la solicitud por lotes. Consulta Estado de la solicitud Get:

{
  "handles": ["AczwaOW7j_EuQ5peV3kGq8X9qc7cDiv_kFrrHkdKuG7LkpkkqK5939wgdoduSQ45FGK5vKdVqOaSDJEun-fvbsR1kk8Rd53AZyD1WThSemo26I"]
}
Parámetro Tipo Descripción

requests

Object

Objeto JSON que contiene todas las solicitudes

requests.method

String

CREATE, UPDATE o DELETE.

requests.retailer_id

String

id de producto proporcionado por un minorista

requests.data

Object

Objeto JSON que contiene los campos y los valores del producto Si method es CREATE, debe contener todos los campos necesarios para un producto. Si method es UPDATE, puede contener campos cualesquiera. Facebook actualiza solo los campos que proporcionas.

Los valores admitidos en el campo data que puedes usar para crear (CREATE) y actualizar (UPDATE) artículos:

  • additional_image_urls
  • availability
  • age_group
  • applinks
  • brand
  • category
  • color
  • condition
  • currency
  • custom_label_0
  • custom_label_1
  • custom_label_2
  • custom_label_3
  • custom_label_4
  • description
  • gender
  • gtin
  • image_url
  • manufacturer_part_number
  • name
  • pattern
  • price
  • product_type
  • sale_price
  • sale_price_end_date
  • sale_price_start_date
  • shipping
  • size
  • url

Puedes usar applinks para la información de enlaces profundos, que funcionan de manera similar a los enlaces profundos de productos. El formato es el siguiente:

"applinks" : {
  "ios": [{
    "url":"example-ios://electronic",
    "app_store_id":42,
    "app_name":"Electronic Example iOS"
  }],
  "iphone": [{
    "url":"example-iphone://electronic",
     "app_store_id":43,
     "app_name":"Electronic Example iPhone"
  }],
  "ipad": [{
    "url":"example-ipad://electronic",
     "app_store_id":44,
     "app_name":"Electronic Example iPad"
  }],
  "android": [{
    "url":"example-android://electronic",
     "package":"com.electronic",
     "class":"com.electronic.Example",
     "app_name":"Electronic Example Android",
  }],
  "windows_phone": [{
    "url":"example-windows://electronic",
     "app_id":"64ec0d1b-5b3b-4c77-a86b-5e12d465edc0",
     "app_name":"Electronic Example Windows"
  }]
}

Consulta la referencia de creación del catálogo de productos.

Estado de la solicitud Get

Para obtener el estado de una solicitud por lotes, usa el identificador que ha devuelto la llamada a {product_catalog_id}/batch:

curl -G \
-d 'handle=AczwaOW7j_EuQ5peV3kGq8X9qc7cDiv_kFrrHkdKuG7LkpkkqK5939wgdoduSQ45FGK5vKdVqOaSDJEun-fvbsR1kk8Rd53AZyD1WThSemo26I'
-d 'access_token={ACCESS_TOKEN}'
https://graph.facebook.com/{API_VERSION}/{PRODUCT_CATALOG_ID}/check_batch_request_status

Respuesta:

{
  "data": [
    {
      "handle": "AczwaOW7j_EuQ5peV3kGq8X9qc7cDiv_kFrrHkdKuG7LkpkkqK5939wgdoduSQ45FGK5vKdVqOaSDJEun-fvbsR1kk8Rd53AZyD1WThSemo26Q",
      "status": "finished",
      "errors_total_count": 1,
      "errors": [
        {
          "line": 0,
          "id": "retailer-4",
          "message": "Invalid value: Value passed at position 0 (id=retailer-199) is invalid: \"You cannot create a EntProductItem without required field Availability\""
        }
      ]
    }
  ]
}

Consulta la referencia del catálogo de productos sobre la comprobación del estado del lote.

Reglas de listas de productos

Corrige y evita errores continuos de carga de listas con reglas. Puedes proporcionar reglas para que Facebook las aplique a cada subida de lista. Especifica tus reglas por el atributo (columna) al que deben aplicarse, por el tipo de regla y por los parámetros. Actualmente, no puedes utilizar reglas con la API de lote. Puedes proporcionar estos tipos de reglas:

  • Regla de asignación: asigna atributos (nombres de columna) de un archivo de lista a atributos que se pueden reconocer.
  • Regla de asignación de valores: asigna campos (valores de columna) de un archivo de lista a campos que se pueden reconocer.
  • Regla de mayúsculas o minúsculas: cambia las mayúsculas y minúsculas de las palabras de un campo. Por ejemplo, cambia todas las descripciones en mayúsculas a minúsculas.

Por ejemplo, puedes solucionar estos problemas con las reglas de asignación y las reglas de asignación de valores:

  • Errores ortográficos de atributos de gavailability a availability
  • Cambio de enumeraciones no reconocidas InStock por in stock
  • Formato de precio de 45$ a 45.00 USD
  • Traducir la condición: Neu bajo la condición: New

Puedes usar las reglas de mayúsculas y minúsculas para abordar estos tipos de problemas:

  • Cambio de descripciones íntegramente en mayúsculas BRAND NEW WITH LEATHER DETAIL... por Brand new with leather detail...
  • Cambio de títulos íntegramente en mayúsculas FACEBOOK T-SHIRT por Facebook T-shirt

Reglas sugeridas

Puedes obtener reglas sugeridas de Facebook para resolver errores en tu lista. Para ver las reglas sugeridas para la sesión de subida, realiza los pasos siguientes.

  • Recuperar sesiones de carga:
https://graph.facebook.com/{API_VERSION}/{PRODUCT_FEED_ID}/uploads
  • Recuperar errores de la sesión de subida:
https://graph.facebook.com/{API_VERSION}/{UPLOAD_SESSION_ID}/errors
  • Recuperar reglas sugeridas para el error de subida:
curl -i -X GET 
 "https://graph.facebook.com/{API_VERSION}/{UPLOAD_ERROR_ID}/suggested_rules?access_token={ACCESS_TOKEN}

Una respuesta de ejemplo con una sugerencia tiene el aspecto siguiente:

"data": [
  
    "attribute": "description",
    "type": "letter_case_rule",
    "params": [
      
        "key": "type",
        "value": "capitalize_first"
      
    ]
  
]

Para obtener más información, consulta la referencia de la API de reglas sugeridas.

Extremos

Agregar reglas a listas

Para aplicar reglas a una lista, debes asociar la regla a la lista. Realiza una llamada de HTTP POST a:

https://graph.facebook.com/{API_VERSION}/{PRODUCT_FEED_ID}/rules?attribute={ATTRIBUTE}&amp;rule_type={RULE_TYPE}&amp;params={PARAMS}

Por ejemplo:

curl -i -X POST 
 -d "attribute=google_product_category" 
 -d "rule_type=mapping_rule" 
 -d "params=%7B'map_from'%3A%20'gcategory'%7D" 
 -d "access_token={ACCESS_TOKEN}" 
 "https://graph.facebook.com/v2.9/{PRODUCT_FEED_ID}/rules" 
 // sample response
 
  "id": "{RULE_ID}"

Debes formatear params de la siguiente manera:

Tipo de regla Formato Ejemplo Notas

Regla de asignación

"map_from": <string>

"map_from": "gavailability"

Regla de asignación de valores

<string> : <string>

"InStock": "in stock"

Para la regla de asignación de valores, el número de asignaciones se limita a 10 y la longitud de las cadenas, a 20.

Regla de mayúsculas y minúsculas

"type": one of : "capitalize_first", "capitalize_all", "to_upper", "to_lower"

"type": "capitalize_first"

Para obtener más información, consulta la referencia de la API de reglas de listas de productos.

Obtener las reglas actuales

Para enumerar todas las reglas asociadas a una lista, realiza una llamada HTTP GET a:

https://graph.facebook.com/{API_VERSION}/{PRODUCT_FEED_ID}/rules

Para obtener más información, consulta la referencia de la API de reglas de listas de productos.

Actualización y eliminación de reglas

Para cambiar una regla asociada a una lista, realiza una llamada HTTP POST para actualizar todos los parámetros y, para eliminarla, realiza una llamada HTTP DELETE. Solo puedes actualizar parámetros. Si quieres cambiar los parámetros attribute o rule_type, debes eliminar y volver a crear la regla.

https://graph.facebook.com/{API_VERSION}/{PRODUCT_FEED_RULE_ID}?params={PARAMS}

Para obtener más información, consulta la referencia de la API de reglas de listas de productos.

A continuación: Capturar señales del público y crear el público de productos

Crear públicos de productos