Programmer des importations de flux de données

Utilisez ce guide pour importer et programmer votre flux.

Importer votre flux

Pour importer un flux, vous avez besoin de l’autorisation catalog_management. Consultez la rubrique API de marketing, Autorisations. Après avoir créé un catalogue, utilisez catalog id pour créer et programmer un Flux de produits :

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

Le paramètre schedule vous permet de programmer l’importation de votre flux. Les options comprennent interval, url, hour. Elles peuvent également inclure day_of_week, minute, username, et password.

Note : pour username et password, nous prenons en charge l'authentification de base sur HTTP et FTP.

Exemple — Programmer l’importation de votre flux

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}

Mettre à jour un article individuel

Mettez à jour les données d'un article individuel en temps réel. Incluez les champs mis à jour dans un HTTP POST, où retailer_id est l’ID de l’article de votre flux. Il doit être base64url-encoded.

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

Consultez les champs mutables dans Produits, Référence.

Ne fournissez jamais de flux d'articles avec des mises à jour, des créations ou des suppressions d'articles individuels par l'intermédiaire de l'API. Cela risque de perturber toute mise à jour ou suppression d'articles que vous avez créés avec l'API car nous ne les suivons pas avec le flux.

Programmer des récupérations de flux de données

Les flux programmés ne prennent en charge les importations qu'une fois par heure. Si vous devez mettre à jour un inventaire plus rapidement, nous recommandons d'utiliser l'API Direct Upload.

Si vous utilisez notre API pour créer et gérer vos flux, vous devez nous envoyer une demande d'API avec les détails du calendrier de mise à jour que vous souhaitez créer :

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

Nous récupérons les flux d'articles de votre système selon un calendrier que vous définissez. Vous pouvez définir deux types de calendriers :

  • update_schedule — Les importations créent de nouveaux articles ou mettent à jour des articles existants avec les informations fournies dans le fichier de flux de données.
  • schedule — Les importations entraînent une opération de mise à jour complète de votre flux de données. Nous supprimons les articles absents du fichier, mettons à jour les existants et en créons de nouveaux. Vous pouvez utiliser l’un des calendrier ou les deux, selon vos besoins.

Pour exemple : un update_schedule avec une fréquence HOURLY et un schedule de remplacement avec une fréquence DAILY.

Pour garantir un traitement plus rapide du flux, nous recommandons de configurer un update_schedule avec uniquement les données modifiées dans le fichier de flux de données. Cette approche est particulièrement plus efficace pour les articles saisonniers, et elle permet de mettre à jour plus rapidement le prix et la disponibilité. Il est également recommandé de signaler les articles comme « épuisés » plutôt que de les supprimer du flux afin que nous puissions recibler l'utilisateur·ice avec des articles similaires disponibles.

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

Réponse :

{ "id" : {FEED_ID} }

Consultez les rubriques Référence du flux de données, Référence de la programmation du flux de données.