Programar subidas de listas de datos

Usa esta guía para subir y programar una lista.

Subir una lista

Para subir una lista, necesitas el permiso catalog_management. Consulta API de marketing, Permisos. Después de crear un catálogo, usa catalog id para crear y programar una lista de productos:

curl -X POST \ -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/v21.0/{product-catalog-id}/product_feeds
'use strict'; const bizSdk = require('facebook-nodejs-business-sdk'); const ProductCatalog = bizSdk.ProductCatalog; const ProductFeed = bizSdk.ProductFeed; const access_token = '<ACCESS_TOKEN>'; const app_secret = '<APP_SECRET>'; const app_id = '<APP_ID>'; const id = '<PRODUCT_CATALOG_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' : 'Test Feed', 'schedule' : {'interval':'DAILY','url':'http://www.example.com/sample_feed.tsv','hour':'22'}, }; const product_feeds = (new ProductCatalog(id)).createProductFeed( fields, params ); logApiCallResult('product_feeds api call complete.', product_feeds);
require __DIR__ . '/vendor/autoload.php'; use FacebookAds\Object\ProductCatalog; use FacebookAds\Object\ProductFeed; use FacebookAds\Api; use FacebookAds\Logger\CurlLogger; $access_token = '<ACCESS_TOKEN>'; $app_secret = '<APP_SECRET>'; $app_id = '<APP_ID>'; $id = '<PRODUCT_CATALOG_ID>'; $api = Api::init($app_id, $app_secret, $access_token); $api->setLogger(new CurlLogger()); $fields = array( ); $params = array( 'name' => 'Test Feed', 'schedule' => array('interval' => 'DAILY','url' => 'http://www.example.com/sample_feed.tsv','hour' => '22'), ); echo json_encode((new ProductCatalog($id))->createProductFeed( $fields, $params )->exportAllData(), JSON_PRETTY_PRINT);
from facebook_business.adobjects.productcatalog import ProductCatalog from facebook_business.adobjects.productfeed import ProductFeed from facebook_business.api import FacebookAdsApi access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<PRODUCT_CATALOG_ID>' FacebookAdsApi.init(access_token=access_token) fields = [ ] params = { 'name': 'Test Feed', 'schedule': {'interval':'DAILY','url':'http://www.example.com/sample_feed.tsv','hour':'22'}, } print ProductCatalog(id).create_product_feed( 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 = \"<PRODUCT_CATALOG_ID>\"; APIContext context = new APIContext(access_token).enableDebug(true); new ProductCatalog(id, context).createProductFeed() .setName(\"Test Feed\") .setSchedule(\"{\\"interval\\":\\"DAILY\\",\\"url\\":\\"http://www.example.com/sample_feed.tsv\\",\\"hour\\":\\"22\\"}\") .execute(); } }
require 'facebook_ads' access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<PRODUCT_CATALOG_ID>' FacebookAds.configure do |config| config.access_token = access_token config.app_secret = app_secret end product_catalog = FacebookAds::ProductCatalog.get(id) product_feeds = product_catalog.product_feeds.create({ name: 'Test Feed', schedule: {'interval':'DAILY','url':'http://www.example.com/sample_feed.tsv','hour':'22'}, })

El parámetro schedule te permite programar la subida de la lista. Entre las opciones se incluyen interval, url y hour. También puede incluir day_of_week, minute, username y password.

Nota: En el caso de username y password, admitimos la autenticación básica en HTTP y FTP.

Ejemplo: programar la subida de la lista

schedule: {"day_of_week":"FRIDAY","hour":17,"interval_count":1,"interval":"DAILY","minute":42,"next_scheduled_upload_time":"","password":pwd123,"status":"active","timezone":"Atlantic/Canary","url":"https://www.abc.com","username":aname}

Actualizar un artículo individual

Actualiza los datos de un artículo individual en tiempo real. Incluye los campos actualizados en una solicitud HTTP POST, donde retailer_id es el identificador del artículo de la lista. Debe estar codificado en Base64url.

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

Consulta los campos mutables en Productos, Referencia.

No proporciones listas de artículos con actualizaciones, creación o eliminación de artículos individuales con la API. Esto puede interrumpir las actualizaciones o eliminaciones de artículos que hayas creado con la API porque no hacemos un seguimiento con la lista.

Programar recuperaciones de listas de datos

Las listas programadas no admiten subidas con más frecuencia que una vez por hora. Si necesitas actualizar el inventario más rápido, te recomendamos usar la API de subida directa.

Si usas nuestra API para crear y administrar tus listas, tienes que enviarnos una solicitud de la API con los detalles de la programación de la actualización que quieres crear:

curl \
  -F 'name=Test Feed' \
  -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/<API_VERSION>/<CATALOG_ID>/product_feeds

Recuperamos las listas de artículos de tu sistema según la programación que definas. Puedes definir dos tipos de programaciones:

  • update_schedule: las subidas crean nuevos artículos o actualizan los existentes con la información que se proporciona en el archivo de lista de datos.
  • schedule: las subidas dan como resultado una operación de actualización completa en la lista de datos. Eliminamos los artículos que no están presentes en el archivo, actualizamos los existentes y creamos artículos nuevos. Puedes utilizar una de las programaciones, o ambas, en función de tus necesidades.

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

Te recomendamos configurar update_schedule solo con datos modificados en el archivo de lista de datos para que la lista se procese más rápido. Esto es particularmente mejor en el caso de las ventas durante las Navidades y actualizaciones de precios y disponibilidad más rápidas. También se recomienda marcar los artículos como “agotados” en lugar de eliminarlos de la lista para que podamos volver a segmentar al usuario con artículos disponibles similares.

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/<API_VERSION>/<CATALOG_ID>/product_feeds

Respuesta:

{ "id" : {FEED_ID} }

Consulta Referencia de las listas de datos, Referencia de la programación de las listas de datos.