Datenfeed-Uploads planen

Verwende diesen Leitfaden für Upload und Planung deines Feeds.

Upload deines Feeds

Für den Upload eines Feeds benötigst du eine catalog_management-Berechtigung. Siehe Marketing API, Berechtigungen. Nachdem du einen Katalog erstellt hast, kannst du mit catalog id einen Produkt-Feed erstellen und planen:

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

Mit dem Parameter schedule kannst du deinen Feed-Upload planen. Optionen sind interval, url, hour. Weitere Optionen sind day_of_week, minute, username und password.

Hinweis: Für username und password unterstützen wir basic auth auf HTTP und FTP.

Beispiel – Deinen Feed-Upload planen

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}

Einen einzelnen Artikel aktualisieren

Aktualisiere die Daten eines einzelnen Artikels in Echtzeit. Füge die aktualisierten Felder einem HTTP POST hinzu, wobei retailer_id die Artikel-ID aus deinem Feed ist. Sie muss für base64url codiert sein.

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

Siehe Felder mit MUtables unter Produkte, Referenz.

Stelle keine Artikel-Feeds mit Updates, Erstellung oder Löschung einzelner Artikel mit der API bereit. Dies kann sich negativ auf alle Updates oder Löschungen von mit der von dir mit der API erstellten Artikeln auswirken.

Datenfeed-Abrufe planen

Geplante Feeds unterstützen Uploads höchstens einmal pro Stunde. Wenn du den Bestand schneller aktualisieren musst, empfehlen wir dir, die API für den direkten Upload zu verwenden.

Wenn du unsere API zum Erstellen und Verwalten deiner Feeds verwendest, musst du uns eine API-Anfrage mit Details für den gewünschten Aktualisierungsplan senden:

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

Wir rufen Artikel-Feeds von Ihrem System nach einem von dir definierten Plan ab. Du kannst zwei Plantypen definieren:

  • update_schedule: Die Uploads erstellen neue Artikel oder aktualisieren vorhandene Artikel mit den in der Datenfeed-Datei enthaltenen Informationen.
  • schedule — Mit den Uploads wird eine vollständige Aktualisierung deines Datenfeeds durchgeführt. Wir löschen Artikel, die nicht in der Datei enthalten sind, aktualisieren vorhandene und erstellen neue. Du kannst je nach Anforderung nur einen Zeitplan oder beide verwenden.

Zum Beispiel: update_schedule mit der Frequenz HOURLY und eine Ersetzung des schedule mit der Frequenz DAILY.

Wir empfehlen dir, einen update_schedule nur mit geänderten Daten in der Datenfeed-Datei einzurichten, um den Feed schneller zu verarbeiten. Das ist insbesondere im Weihnachtsgeschäft und für schnellere Updates zu Preis und Verfügbarkeit nützlich. Wir empfehlen auch, „ausverkaufte Artikel“ entsprechend zu markieren, anstatt sie aus dem Feed zu löschen, damit wir den*die Nutzer*in mit ähnlichen verfügbaren Artikeln erneut ansprechen können.

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

Antwort:

{ "id" : {FEED_ID} }

Siehe Datenfeed-Referenz, Datenfeed-Plan-Referenz.