Die Facebook Business Extension (FBE) verwendet Katalog, um den Bestand eines Unternehmens aufzunehmen. Er wird verwendet, um verschiedene Features wie Dynamic Ads, Seiten-Shops und Karten mit empfohlenen Dienstleistungen zu unterstützen. Er stellt einen optionalen Bestandteil der Integration dar, ist aber für bestimmte Features erforderlich.
Der Facebook-Katalog verfügt über eine eigene Suite an APIs. FBE lässt sich aber in einige direkt integrieren, sodass du den Bestand eines Unternehmens auf einfache Weise auf deiner Plattform aktualisieren kannst (ohne dass du deinerseits Facebook-Katalog-IDs verfolgen musst).
Damit alle Pflichtfelder für Dynamic Ads und E-Commerce-Anwendungsfälle (Seiten-Shop, Instagram Shopping, Marketplace) in deinem Katalog richtig aufgefüllt werden, lies Unterstützte Felder.
Es gibt zwei Methoden, um den Bestand zu aktualisieren:
Wir empfehlen dringend, eine der Übertragungsmethoden (Batch API oder One-Time Feed Upload API) zu verwenden, da dadurch sofortige Bestandsaktualisierungen ermöglicht werden und die Serverlast auf beiden Seiten reduziert wird. Der hierbei verwendete access_token
ist der gleiche, der von Unternehmens-Login und dem Webhook zurückgegeben wird.
Du musst uns den gesamten Bestand eines Unternehmens senden, sobald du einen neuen Installations-Webhook erhältst. Jedes Mal, wenn ein Unternehmen seinen Bestand auf deiner Website ändert, musst du eine Aktualisierung senden.
Für die meisten E-Commerce-Unternehmen empfohlen. Die Batch API ist eine standardmäßige Facebook Catalog API und ist für Unternehmen mit großen Beständen (über 100 Artikel) hilfreich bzw. wenn Artikel häufig aktualisiert werden.
Verfügbar für Termine (Services) für Unternehmen. Die One-Time Feed Upload API ist eine standardmäßige Facebook Catalog API und ist für Unternehmen mit kleineren Beständen (bis zu 100 Artikel) hilfreich.
Mit dieser Methode kannst du den gesamten Bestand senden, wenn eine Aktualisierung erfolgt. Der Bestand wird dann im Facebook-Katalog vollständig ersetzt.
Schritt 1: Rufe die Feed-ID ab, die während der FBE-Installation erstellt wurde, indem du die verbundene Katalog-ID sendest (über Webhook-Benachrichtigungen oder über unser FBE Installation API-Endpunkt):
curl -G \ -d "access_token=<ACCESS_TOKEN>" \ https://graph.facebook.com/<API_VERSION>/<CATALOG_ID>/product_feeds
Hier erfährst du mehr über die Product Feed API.
Schritt 2: Führe einmalige Uploads auf den Feed durch:
Beispiel: Feed-Dateien, die an einem öffentlichen Ort gehostet werden
curl -X POST \
-F 'url="http://www.example.com/sample_feed.xml"' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/{FEED_ID}/uploads
POST /{FEED_ID}/uploads HTTP/1.1
Host: graph.facebook.com
url=http%3A%2F%2Fwww.example.com%2Fsample_feed.xml
/* PHP SDK v5.0.0 */
/* make the API call */
try {
// Returns a `Facebook\FacebookResponse` object
$response = $fb->post(
'/{FEED_ID}/uploads',
array (
'url' => 'http://www.example.com/sample_feed.xml',
),
'{access-token}'
);
} catch(Facebook\Exceptions\FacebookResponseException $e) {
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
$graphNode = $response->getGraphNode();
/* handle the result */
/* make the API call */
FB.api(
"/{FEED_ID}/uploads",
"POST",
{
"url": "http:\/\/www.example.com\/sample_feed.xml"
},
function (response) {
if (response && !response.error) {
/* handle the result */
}
}
);
Beispiel: Direktes Hochladen von Feed-Dateien vom lokalen Rechner. Der Dateipfad muss deinem konkreten Anwendungsfall entsprechend geändert werden.
curl -X POST \
-F 'file=@catalog.csv;type=text/csv' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/{FEED_ID}/uploads
POST /{FEED_ID}/uploads HTTP/1.1
Host: graph.facebook.com
file=%40catalog.csv%3Btype%3Dtext%2Fcsv
/* PHP SDK v5.0.0 */
/* make the API call */
try {
// Returns a `Facebook\FacebookResponse` object
$response = $fb->post(
'/{FEED_ID}/uploads',
array (
'file' => '@catalog.csv;type=text/csv',
),
'{access-token}'
);
} catch(Facebook\Exceptions\FacebookResponseException $e) {
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
$graphNode = $response->getGraphNode();
/* handle the result */
/* make the API call */
FB.api(
"/{FEED_ID}/uploads",
"POST",
{
"file": "@catalog.csv;type=text\/csv"
},
function (response) {
if (response && !response.error) {
/* handle the result */
}
}
);
Alle Anfrage- und Antwortformate sind ansonsten die gleichen, die auch für den ursprünglichen Endpunkt dokumentiert sind.
Branche | Beispiel für CSV-Feed | Beispiel für TSV-Feed | Beispiel für XML-Feed |
---|---|---|---|
E-COMMERCE | |||
TERMINE |
Siehe Vom Katalog unterstützte Felder für Termine (Services)
Wir raten von dieser Methode ab, da sie dazu führt, dass Bestände bis zum nächsten Abruf veraltet sind. Sie ist aber für kleinere, selbst gehostete Unternehmen mit einer öffentlich zugänglichen Bestandsdatei nützlich. Wenn du diese Methode für ein Unternehmen verwenden möchtest, musst du das Feature catalog_feed_scheduled
in der Unternehmenskonfiguration angeben, die über das Unternehmens-Login übergeben wird. Wenn dies entsprechend definiert ist, rufen wir den Bestand des Unternehmens regelmäßig unter der angegebenen öffentlichen URL ab, unabhängig von jeglichen Aktualisierungen.
Erfahre mehr über den geplanten Feed-Abruf.