Programar carregamentos do feed de dados

Use este guia para carregar e programar seu feed.

Carregar seu feed

Para carregar um feed, você precisa da permissão catalog_management. Consulte Autorização. Depois de criar um catálogo, use a catalog id para criar e programar um feed de produtos:

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'}, })

O parâmetro schedule permite programar o carregamento do feed. As opções incluem interval, url, hour. Também são aceitos os valores day_of_week, minute, username e password.

Observação: para username e password, há compatibilidade com a autenticação básica em HTTP e FTP.

Exemplo – Programar o carregamento do feed

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}

Atualizar um item individual

Atualize os dados de um item específico em tempo real. Inclua os campos atualizados em uma solicitação HTTP POST, em que retailer_id é a identificação do item do feed. Deve ser codificado em base64url.

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

Veja os campos mutáveis na referência sobre produtos do catálogo.

Não forneça feeds com atualização, criação ou exclusão de itens individuais usando a API. Isso pode atrapalhar atualizações ou exclusões de itens criados com a API, já que não os rastreamos com o feed.

Programar buscas no feed de dados

Os feeds programados não são compatíveis com carregamentos que ocorram em uma frequência maior do que uma vez por hora. Se você precisar atualizar o inventário mais rapidamente, recomendamos o uso da API de Carregamento Direto.

Caso esteja usando nossa API para criar e gerenciar seus feeds, será preciso nos enviar uma solicitação de API com os detalhes da programação de atualização desejada:

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

Buscamos feeds de itens no seu sistema com base na programação definida por você. Existem dois tipos de programação disponíveis:

  • update_schedule: os carregamentos criam novos itens ou atualizam os existentes com as informações fornecidas no arquivo do feed de dados.
  • schedule: os carregamentos resultam em uma operação de atualização completa no seu feed de dados. Excluímos itens não presentes nos arquivos, atualizamos os existentes e criamos novos. É possível usar uma das programações ou ambas, dependendo da sua necessidade.

Por exemplo: update_schedule com frequência HOURLY e uma substituição schedule com frequência DAILY.

Recomendamos configurar uma update_schedule com apenas dados alterados no arquivo de feed de dados para agilizar o processamento. Isso é especialmente útil para vendas de fim de ano, já que permite um carregamento mais rápido de preços e disponibilidades. Também é recomendável marcar os itens como "esgotados" em vez de excluí-los do feed para que possamos redirecionar o usuário a itens semelhantes que estejam disponíveis.

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

Resposta:

{ "id" : {FEED_ID} }

Consulte as referências sobre feed de dados e programação do feed de dados.