Programar subidas de listas de datos

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

Subir listas

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/v19.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 encuentran interval, url y hour. También puedes incluir day_of_week, minute, username y password.

Nota: En relación con username y password, admitimos autorización básica en HTTP y FTP.

Ejemplo: programar la subida de tu 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}

Subir un artículo individual

Sube los datos de un artículo individual en tiempo real. Incluye los campos actualizados en una llamada HTTP POST, donde el retailer_id es el identificador del artículo de tu lista. Debe contar con codificación base64url.

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

Consulta los campos mutables en Productos, referencia.

No proporciones listas de artículos actualizando, creando o eliminando artículos individuales con la API. Esto puede interrumpir cualquier actualización o eliminar artículos que creaste con la API, ya que no hacemos seguimiento de estos artículos con la lista.

Programar la obtención de listas de datos

Las listas programadas no se pueden subir con una frecuencia superior a una vez por hora. Si necesitas actualizar el inventario con mayor frecuencia, te recomendamos usar la API de subida directa.

Si usas nuestra API para crear y administrar tus listas, tienes que enviarnos una solicitud de API con la información de 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 listas de artículos de tu sistema en función del cronograma que tú defines. Puedes definir dos tipos de cronogramas:

  • update_schedule: las subidas crean nuevos artículos o actualizan los anteriores con la información proporcionada en el archivo de la lista de datos.
  • schedule: las subidas generan una operación completa de actualización de tu lista de datos. Eliminamos artículos que no están presentes en el archivo, actualizamos los preexistentes y creamos nuevos, y puedes usar cualquiera de las programaciones o ambas, en función de tus necesidades.

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

Recomendamos configurar una update_schedule solo con los datos cambiados en el archivo de lista de datos para lograr un procesamiento más rápido de la lista. Esta acción se adapta mejor a las ventas de las fiestas y permite contar con actualizaciones de precios y de disponibilidad de forma más rápida. También se recomienda marcar los artículos como "agotados", en lugar de eliminarlos de la lista. De esta manera, podemos volver a dirigirnos 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 la referencia de la lista de datos y la referencia de programación de lista de datos.