Configurer un catalogue

Pour configurer des publicités dynamiques, vous aurez besoin d’un catalogue, de fils et d’ensembles de produits.

Votre catalogue est un fichier de données structurées comprenant une liste d’articles dont vous souhaitez faire la promotion. Chaque ligne contient toutes les informations requises pour créer une publicité dynamique. Les fils de produits sont des importations dynamiques de vos données permettant de garder votre catalogue produits à jour.

Dans ce document, nous allons vous guider dans les étapes de la configuration d’un catalogue :

Consultez aussi les pages Démarrer avec les publicités dynamiques et Configuration de publicités dynamiques via l’interface utilisateur.

Étape 1 : Créer un catalogue

Procédez comme suit afin de créer un catalogue pour des publicités dynamiques :

use FacebookAds\Object\ProductCatalog;
use FacebookAds\Object\Fields\ProductCatalogFields;

$product_catalog = new ProductCatalog(null, <BUSINESS_ID>);

$product_catalog->setData(array(
  ProductCatalogFields::NAME => "Catalog",
));

$product_catalog->create();
from facebookads.adobjects.productcatalog import ProductCatalog

product_catalog = ProductCatalog(parent_id=<BUSINESS_ID>)

product_catalog[ProductCatalog.Field.name] = 'Catalog'

product_catalog.remote_create()
ProductCatalog catalog = new Business(<BUSINESS_ID>, context).createProductCatalog()
  .setName("Catalog")
  .execute();
String catalog_id = catalog.getId();
curl \
  -F 'name=Catalog' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.11/<BUSINESS_ID>/product_catalogs

Pour utiliser l’API Catalog, vous devez disposer du niveau d’accès adéquat à l’API Marketing et vous devez accepter les conditions d’utilisation en créant votre premier catalogue via Business Manager. Consultez la page Catalogue : documentation de référence.

Étape 2 : Configurer un fil

Il s’agit d’un ensemble d’articles importés ou récupérés afin de tenir à jour le catalogue produits de votre entreprise. Un article est un produit unique de votre boutique en ligne, correspondant à un SKU. Vous pouvez configurer un seul fil contenant tous les produits de votre catalogue, ou plusieurs fils contenant chacun les produits vendus dans un pays donné ou par un service distinct. Consultez les pages Fil : documentation de référence et Article : documentation de référence.

Après avoir créé un catalogue produits, utilisez le paramètre catalog id pour créer et programmer un fil de produits :

use FacebookAds\Object\ProductFeed;
use FacebookAds\Object\Fields\ProductFeedFields;
use FacebookAds\Object\Fields\ProductFeedScheduleFields;

$product_feed = new ProductFeed(null, <PRODUCT_CATALOG_ID>);

$product_feed->setData(array(
  ProductFeedFields::NAME => 'Test Feed',
  ProductFeedFields::SCHEDULE => array(
    ProductFeedScheduleFields::INTERVAL => 'DAILY',
    ProductFeedScheduleFields::URL =>'http://www.example.com/sample_feed.tsv',
    ProductFeedScheduleFields::HOUR => 22,
  ),
));

$product_feed->create();
from facebookads.adobjects.productfeed import ProductFeed

product_feed = ProductFeed(parent_id=<PRODUCT_CATALOG_ID>)

product_feed[ProductFeed.Field.name] = 'Test Feed'
product_feed[ProductFeed.Field.schedule] = {
    'interval': 'DAILY',
    'url': 'http://www.example.com/sample_feed.tsv',
    'hour': 22,
}

product_feed.remote_create()
ProductFeed productFeed = new ProductCatalog(<PRODUCT_CATALOG_ID>, context).createProductFeed()
  .setName("Test Feed")
  .setSchedule("{\"interval\":\"DAILY\",\"url\":\"http://www.example.com/sample_feed.tsv\",\"hour\":\"22\"}")
  .execute();
String product_feed_id = productFeed.getId();
curl \
  -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/v2.11/<PRODUCT_CATALOG_ID>/product_feeds

Formats pris en charge

Fournissez le fil de produits dans l’un de ces formats :

Format de fil Description Exemple de fil

CSV

Valeurs séparées par des virgules. La première ligne correspond à l’en-tête de colonne. Si des champs contiennent des virgules, placez-les entre "guillemets doubles".

Télécharger (faire un clic droit et enregistrer sous)

TSV

Valeurs séparées par des tabulations. La première ligne correspond à l’en-tête de colonne. Si des champs contiennent des virgules, placez-les entre "guillemets doubles".

Télécharger (faire un clic droit et enregistrer sous)

RSS XML

Format communément généré par les systèmes automatisés de création de fils ou les serveurs web. Un ensemble de nœuds XML représente une liste de produits et doit commencer par le tag de déclaration <?xml.

Télécharger (faire un clic droit et enregistrer sous)

ATOM XML

Format communément généré par les systèmes automatisés de création de fils ou les serveurs web. Un ensemble de nœuds XML représente une liste de produits et doit commencer par le tag de déclaration <?xml.

Télécharger (faire un clic droit et enregistrer sous)

Champs obligatoires

Saisissez tous les noms de colonne en anglais.

Nom Type Description

id


Taille maximale : 100

String

ID unique de l’article. Il peut s’agir d’une variante de produit. Si plusieurs instances du même ID sont fournies, toutes les instances sont ignorées. Affiche retailer_id une fois le produit importé.

availability

String

Indique si l’article est en stock. Les valeurs acceptées sont les suivantes :


in stock – Article expédié immédiatement.


out of stock – Pas de réapprovisionnement prévu.


preorder – Disponible prochainement.


available for order – Article expédié sous une à deux semaines.


discontinued – N’est plus commercialisé.


condition

string

État du produit : new, refurbished ou used.

description


Taille maximale : 5 000

string

Court texte décrivant le produit.

image_link


string

Lien vers l’image de l’article utilisée dans la pub. Les publicités carrousels utilisent des images carrées au format 1:1 (600 x 600 pixels), tandis que les pubs pour un produit unique utilisent une image au format 1.91:1 (1 200 x 630 pixels). Fournissez les images adéquates.

link


string

Liens vers un site marchand qui vend l’article.

title


Taille maximale : 100

string

Titre de l’article

price

string

Coût de l’article et devise. Le code de la devise doit respecter la norme ISO 4217. Ex : 9.99 USD.

gtin, mpn ou brand


Taille maximale : 70

string

gtin – Le GTIN (Global Trade Item Number) peut inclure un code UPC, EAN, JAN et ISBN.



mpn – ID de fabricant unique pour le produit.



brand – Nom de la marque.



Doit obligatoirement être gtin, mpn ou brand.

Champs facultatifs et liens profonds vers des produits

Fournissez des liens profonds dans votre fil de produits en suivant la spécification App Links. Les liens profonds l’emportent sur les informations que Facebook collecte avec les métadonnées App Links via le robot d’indexation.

Si vous disposez déjà de liens profonds issus d’App Links, vous n’avez pas besoin de saisir ces données. Facebook utilise les informations provenant d’App Links pour afficher le lien profond correct. Pour savoir comment afficher des liens profonds dans vos pubs, consultez la page Publicités dynamiques, Créer un modèle de contenu.

Nom Description Exemple

ios_url

Schéma personnalisé pour app iOS, au format URL

exemple-ios://electronic

ios_app_store_id

ID d’app pour l’App Store

1234

ios_app_name

Nom d’app à afficher

Electronic Example iOS

iphone_url

Schéma personnalisé pour app iPhone, au format URL

example-iphone://electronic

iphone_app_store_id

ID d’app pour l’App Store

5678

iphone_app_name

Nom d’app à afficher

Electronic Example iPhone

ipad_url

Schéma personnalisé pour app iPad

example-ipad://electronic

ipad_app_store_id

ID d’app pour l’App Store

9010

ipad_app_name

Nom d’app à afficher

Electronic Example iPad

android_url

Schéma personnalisé pour app Android, au format URL

example-android://electronic

android_package

Nom complet du package pour la génération d’intentions

com.electronic

android_app_name

Nom d’app à afficher

Electronic Example Android

windows_phone_url

Schéma personnalisé pour app Windows Phone, au format URL

example-windows://electronic

windows_phone_app_id

ID d’app au format GUID pour l’App Store

ee728e01-7727-4168-9c8f-85c7eef40112

windows_phone_app_name

Nom d’app à afficher

Electronic Example Windows

Pour les applications iOS uniquement, fournissez les informations relatives à votre app sur iPhone ou iPad si elles diffèrent des informations générales pour iOS.

Regroupez toutes les variantes d’un produit. dans un groupe de produits pour identifier les articles quasiment identiques, mais qui présentent des variations de couleur, matière, taille ou motif, par exemple. Il est ainsi plus facile de promouvoir d’autres couleurs, styles ou motifs pour un produit donné. Tous les produits d’un groupe partagent le même item_group_id. Pour les publicités dynamiques, nous ne sélectionnons qu’un article dans le groupe en fonction du signal reçu de la part du pixel ou de l’app.

Vous trouverez ci-dessous des champs facultatifs que vous pouvez inclure :

Nom Type Taille maximale

additional_image_link


Taille maximale : 2 000

string

Vous pouvez inclure jusqu’à 10 images supplémentaires, sous forme d’URL séparées par des virgules.

age_group

string

Tranche d’âge pour le produit. Les valeurs acceptées sont les suivantes : newborn, infant, toddler, kids et adult.

color


Taille maximale : 100

string

Couleur de l’article

expiration_date

ISO‑8601 (AAAA‑MM‑JJ)

Date d’expiration du produit. Si le produit est arrivé à expiration, Facebook l’exclue de tous les ensembles de produits et ne l’affiche pas dans les pubs.

gender

string

Options possibles : male, female et unisex.

item_group_id

string

Pour les articles qui représentent des variantes d’un produit. Fournissez le même item_group_id pour tous les articles. Par exemple, « polo rouge » est une variante de « polo ». Facebook met ce paramètre en correspondance avec retailer_product_group_id après réception de votre fil. Pour les publicités dynamiques, nous ne sélectionnons qu’un article dans le groupe en fonction du signal reçu de la part du pixel ou de l’app.

google_product_category


Taille maximale : 250

string

Valeurs prédéfinies issues de la taxonomie produits de Google. Par exemple : Apparel & Accessories > Clothing > Dresses.

material


Taille maximale : 200

string

Matière dans laquelle le produit fabriqué, par exemple : leather, denim ou cotton.

pattern


Taille maximale : 100

string

Motif ou imprimé du produit

product_type


Taille maximale : 750

string

Catégorie de produits définie par le détaillant.

Exemple au format TSV :
Home & Garden > Kitchen & Dining > Appliances > Refrigerators.

Exemple au format XML : <product_type>Home & Garden > Kitchen & Dining > Appliances > Refrigerators</product_type>.

sale_price

string

Prix remisé si l’article est en promotion. Le code de la devise doit respecter la norme ISO 4217. Ex : 9,99 USD.

sale_price_effective_date

ISO‑8601 (AAAA‑MM‑JJ)

Date de début/fin et durée de la promotion, séparées par une barre oblique :


2014-11-01T12:00-0300/2014-12-01T00:00-0300

shipping

string

Blob avec différents prix pour chaque pays et région. Les régions sont séparées par des virgules. Doit respecter le format COUNTRY:STATE:SHIPPING_TYPE:PRICE.

Par exemple :

US:CA:Ground:9.99 USD,US:NY:Air:15.99 USD

shipping_weight

string

Poids d’expédition de l’article. Seules les unités de poids suivantes sont acceptées : lb, oz, g et kg. Exemple : 3 lbs.

size

string

Taille de l’article. Exemple pour une chemise : Small ou XL.

custom_label_0


Taille maximale : 100

string

Informations supplémentaires facultatives au sujet de l’article

custom_label_1


Taille maximale : 100

string

Informations supplémentaires facultatives au sujet de l’article

custom_label_2


Taille maximale : 100

string

Informations supplémentaires facultatives au sujet de l’article

custom_label_3


Taille maximale : 100

string

Informations supplémentaires facultatives au sujet de l’article

custom_label_4


Taille maximale : 100

string

Informations supplémentaires facultatives au sujet de l’article

Testez votre fil sur notre page de débogage des fils de produits. Pour le format CSV/TSV, copiez la première ligne (en-têtes de colonne) et quelques produits. Pour le format XML, copiez le XML avec quelques articles/entrées, collez les lignes dans la zone de texte, et validez.

Étape 3 : Options de mise à jour

Utilisez l’une des options suivantes pour que les informations relatives à vos produits restent à jour :

  1. Récupération programmée des fils de produits
  2. Importation directe d’un fil de produits
  3. Mise à jour d’un produit

Récupération programmée des fils de produits

Facebook récupère les fils de produits sur votre système selon un programme d’exécution que vous définissez. Vous pouvez définir deux types de programmes : update_schedule et schedule. Les importations créées via update_schedule permettent de créer des articles ou de mettre à jour des articles existants à l’aide des informations fournies dans le fichier du fil. Le résultat des importations créées via schedule est une opération d’actualisation complète sur votre fil : nous supprimons les produits absents du fichier, nous mettons à jour les produits présents et nous en créons de nouveaux. Vous pouvez utiliser l’un des programmes ou les deux, en fonction de vos besoins.

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

Nous vous recommandons de définir un update_schedule avec uniquement les données modifiées dans le fichier du fil afin d’accélérer le traitement du fil. Cela est particulièrement conseillé pour les ventes de vacances, l’obtention plus rapide de prix et les mises à jour des disponibilités. Il est également recommandé de marquer les articles comme étant « en rupture de stock » au lieu de les supprimer du fil de sorte que Facebook puisse recibler des produits disponibles similaires pour l’utilisateur.

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/v2.10/<PRODUCT_CATALOG_ID>/product_feeds

La réponse :

{ "id" : {PRODUCT_FEED_ID} }

Consultez les pages Fil de produits : documentation de référence, Programmation d’un fil de produits : documentation de référence.


Importation directe d’un fil de produits

En plus des récupérations de fil programmées, vous pouvez exécuter manuellement des importations ponctuelles :

Cet exemple concerne les fichiers du fil qui sont hébergés sur un lieu public.

curl \
-F "url=http://www.example.com/sample_feed.xml" \
-F "access_token={ACCESS_TOKEN}" \
https://graph.facebook.com/{API_VERSION}/{PRODUCT_FEED_ID}/uploads

Cet exemple concerne l’importation de fichiers de fil directement à partir de la machine locale. Vous devez modifier le chemin d’accès au fichier en fonction de votre cas d’utilisation.

curl \
-F "file=@catalog.csv;type=text/csv" \
-F "access_token={ACCESS_TOKEN}" \
https://graph.facebook.com/{API_VERSION}/{PRODUCT_FEED_ID}/uploads

Vous pouvez également définir le paramètre update_only sur true. Nous créons de nouveaux articles et mettons à jour les articles existants, mais nous ne supprimons aucun produit du fil. Pour mettre à jour des articles existants, vous ne devez fournir que le paramètre id. Cela permet d’accélérer la récupération et le traitement de votre fichier.

Par exemple, si vous ne voulez mettre à jour que les prix et les libellés personnalisés de 100 articles dans un fil, utilisez la méthode d’importation directe. Fournissez un fichier ne contenant que les paramètres id, price et custom_label_0 pour ces articles, et configurez update_only sur true. Nous acceptons tous les formats de fichiers répertoriés. Les plus courants sont les formats TSV et CSV.

Exemples :

Format de fil Cas d’utilisation Exemple de fil

CSV

Pour mettre à jour les paramètres price et availability d’un sous-ensemble d’articles.

Télécharger (faire un clic droit et enregistrer sous)

TSV

Pour réinitialiser le paramètre sale_price et mettre à jour le paramètre custom_label_0 d’un sous-ensemble d’articles.

Télécharger (faire un clic droit et enregistrer sous)

Consultez la page Importation manuelle : documentation de référence.

Si votre fil de produits renvoie des erreurs, consultez la page Erreurs d’importation du fil de produits : documentation de référence.


Mise à jour d’un article individuel

Vous pouvez mettre à jour les données d’un produit individuel en temps réel. Incluez les champs mis à jour dans une requête HTTP POST :

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

retailer_id représente l’ID de l’article dans votre fil de produits. Ce paramètre doit être encodé au format Base64url. Pour en savoir plus sur les champs mutables du fil de produits, consultez la page Produits du catalogue : documentation de référence.

N’envoyez pas de fils de produits contenant des mises à jour, créations ou suppressions de produits individuels via l’API. Cela pourrait perturber les mises à jour ou suppressions d’articles que vous avez créés via l’API, car nous n’en rassurons pas le suivi via le fil.

Consultez aussi : * Récupération programmée de fils : documentation de référence * Importation directe de fils * Fil de produits : documentation de référence * Fils de produits du catalogue * Article : documentation de référence * Recherche de produits dans le catalogue

Importation groupée de catalogues volumineux

Vous pouvez importer des catalogues volumineux (contenant des millions de produits) dont l’inventaire change rapidement. Vous avez la possibilité de créer, mettre à jour et supprimer plusieurs produits par le biais d’une requête HTTP unique. L’API comprend deux points de terminaison :

  • POST [/{product_catalog_id}/batch](#send-batch-request) – envoie un lot de requêtes (création, mise à jour ou suppression d’articles) pour un catalogue.
  • GET [/{product_catalog_id}/check_batch_request_status](#batch-request-status) – vérifie le statut d’une requête.

Envoyer des mises à jour de produits

Pour créer, mettre à jour ou supprimer des produits de votre catalogue, envoyez un appel HTTP POST avec les modifications que vous voulez apporter. Vous pouvez envoyer jusqu’à 500 modifications par appel. Pour chaque catalogue, vous pouvez effectuer jusqu’à 100 appels par heure.

use FacebookAds\Api;
use FacebookAds\Http\RequestInterface;

$requests =  array(
    array(
        'method' => 'CREATE',
        'retailer_id' => 'retailer-product-id-123',
        'data' => array(
          'availability' => 'in stock',
          'brand' => 'Niky',
          'category' => 't-shirts',
          'currency' => 'USD',
          'description' => 'This is the product description.',
          'image_url' => 'http://www.images.example.com/t-shirts/1.png',
          'name' => 'My product name',
          'price' => '100',
          'url' => 'http://www.example.com/t-shirts/1.html',
        ),
    ),
);


$data = Api::instance()->call(
  '/'.<CATALOG_ID>.'/batch',
  RequestInterface::METHOD_POST,
  array('requests' => $requests))->getContent();
curl \
  -F 'requests=[ 
    { 
      "method": "CREATE", 
      "retailer_id": "retailer-product-id-123", 
      "data": { 
        "availability": "in stock", 
        "brand": "Niky", 
        "category": "t-shirts", 
        "currency": "USD", 
        "description": "This is the product description.", 
        "image_url": "http:\/\/www.images.example.com\/t-shirts\/1.png", 
        "name": "My product name", 
        "price": "100", 
        "url": "http:\/\/www.example.com\/t-shirts\/1.html" 
      } 
    } 
  ]' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.11/<CATALOG_ID>/batch

Cet appel renvoie un « handle » que vous pouvez utiliser pour vérifier le statut de la requête groupée. Consultez la page Obtenir le statut d’une requête :

{
  "handles": ["AczwaOW7j_EuQ5peV3kGq8X9qc7cDiv_kFrrHkdKuG7LkpkkqK5939wgdoduSQ45FGK5vKdVqOaSDJEun-fvbsR1kk8Rd53AZyD1WThSemo26I"]
}
Paramètre Type Description

requests

Object

Objet JSON contenant toutes les requêtes

requests.method

string

CREATE, UPDATE ou DELETE

requests.retailer_id

string

Paramètre id du produit fourni par un détaillant

requests.data

Object

Objet JSON contenant des champs et des valeurs pour le produit. Si method est égal à CREATE, cet objet doit contenir tous les champs obligatoires pour un produit. Si method est égal à UPDATE, il peut contenir les champs de votre choix. Facebook ne met à jour que les champs que vous fournissez.

Les valeurs acceptées pour le champ data pour appliquer les méthodes CREATE et UPDATE à des articles sont les suivantes :

  • additional_image_urls
  • availability
  • age_group
  • applinks
  • brand
  • category
  • color
  • condition
  • currency
  • custom_label_0
  • custom_label_1
  • custom_label_2
  • custom_label_3
  • custom_label_4
  • description
  • gender
  • gtin
  • image_url
  • manufacturer_part_number
  • name
  • pattern
  • price
  • product_type
  • sale_price
  • sale_price_end_date
  • sale_price_start_date
  • shipping
  • size
  • url

Vous pouvez utiliser applinks pour renseigner des liens profonds, sur le même principe que les liens profonds vers des produits. Le format est le suivant :

"applinks" : {
  "ios": [{
    "url":"example-ios://electronic",
    "app_store_id":42,
    "app_name":"Electronic Example iOS"
  }],
  "iphone": [{
    "url":"example-iphone://electronic",
     "app_store_id":43,
     "app_name":"Electronic Example iPhone"
  }],
  "ipad": [{
    "url":"example-ipad://electronic",
     "app_store_id":44,
     "app_name":"Electronic Example iPad"
  }],
  "android": [{
    "url":"example-android://electronic",
     "package":"com.electronic",
     "class":"com.electronic.Example",
     "app_name":"Electronic Example Android",
  }],
  "windows_phone": [{
    "url":"example-windows://electronic",
     "app_id":"64ec0d1b-5b3b-4c77-a86b-5e12d465edc0",
     "app_name":"Electronic Example Windows"
  }]
}

Consultez la page Création d’un catalogue produits : documentation de référence.

Obtenir le statut d’une requête

Pour obtenir le statut d’une requête groupée, utilisez le « handle » renvoyé par un appel à {product_catalog_id}/batch :

curl -G \
-d 'handle=AczwaOW7j_EuQ5peV3kGq8X9qc7cDiv_kFrrHkdKuG7LkpkkqK5939wgdoduSQ45FGK5vKdVqOaSDJEun-fvbsR1kk8Rd53AZyD1WThSemo26I'
-d 'access_token={ACCESS_TOKEN}'
https://graph.facebook.com/{API_VERSION}/{PRODUCT_CATALOG_ID}/check_batch_request_status

Réponse :

{
  "data": [
    {
      "handle": "AczwaOW7j_EuQ5peV3kGq8X9qc7cDiv_kFrrHkdKuG7LkpkkqK5939wgdoduSQ45FGK5vKdVqOaSDJEun-fvbsR1kk8Rd53AZyD1WThSemo26Q",
      "status": "finished",
      "errors_total_count": 1,
      "errors": [
        {
          "line": 0,
          "id": "retailer-4",
          "message": "Invalid value: Value passed at position 0 (id=retailer-199) is invalid: \"You cannot create a EntProductItem without required field Availability\""
        }
      ]
    }
  ]
}

Consultez la page Catalogue produits : documentation de référence, Vérifier le statut d’un lot.

Règles relatives aux fils de produits

Vous pouvez prévenir et corriger les erreurs récurrentes d’importation de fil grâce à des règles. Facebook les appliquera à chaque importation. Spécifiez vos règles à l’aide de l’attribut (colonne) auquel elles doivent s’appliquer, du type de règle et de paramètres. Pour le moment, l’API Batch n’accepte pas l’utilisation de règles. Vous pouvez fournir les types de règles suivants :

  • Règle de mise en correspondance – Met en correspondance les attributs (noms des colonnes) d’un fichier de fil avec des attributs que nous sommes en mesure de reconnaître.
  • Règle de mise en correspondance de valeurs – Met en correspondance les champs (valeurs des colonnes) d’un fichier de fil avec des champs que nous sommes en mesure de reconnaître.
  • Règle de casse – Modifie la casse des mots dans un champ. Par exemple, convertit en minuscules toutes les descriptions en majuscules.

Grâce aux règles de mise en correspondance, vous pouvez résoudre ces problèmes, entre autres :

  • Coquille dans les attributs (gavailability -> availability)
  • Énumération non reconnue (InStock -> in stock)
  • Format de prix (45$ -> 45.00 USD)
  • Traduction des conditions requises (Neu sous condition : New)

Les règles de casse vous permettent de corriger les types de problèmes suivants :

  • Description complète en majuscules (BRAND NEW WITH LEATHER DETAIL... -> Brand new with leather detail...)
  • Titre complet en majuscules (FACEBOOK T-SHIRT -> Facebook T-shirt)

Règles suggérées

Vous pouvez obtenir des suggestions de règles de la part de Facebook pour corriger les erreurs dans votre fil. Pour cela, suivez ces étapes.

  • Récupérez vos sessions d’importation :
https://graph.facebook.com/{API_VERSION}/{PRODUCT_FEED_ID}/uploads
  • Récupérez les erreurs dans vos sessions d’importation :
https://graph.facebook.com/{API_VERSION}/{UPLOAD_SESSION_ID}/errors
  • Récupérez des règles suggérées pour les erreurs d’importation :
curl -i -X GET 
 "https://graph.facebook.com/{API_VERSION}/{UPLOAD_ERROR_ID}/suggested_rules?access_token={ACCESS_TOKEN}

Exemple de réponse contenant une suggestion :

"data": [
  
    "attribute": "description",
    "type": "letter_case_rule",
    "params": [
      
        "key": "type",
        "value": "capitalize_first"
      
    ]
  
]

Pour en savoir plus, consultez la page API Suggested Rules : documentation de référence.

Points de terminaison

Ajout de règles aux fils

Vous devez associer la règle au fil. Envoyez un appel HTTP POST à :

https://graph.facebook.com/{API_VERSION}/{PRODUCT_FEED_ID}/rules?attribute={ATTRIBUTE}&amp;rule_type={RULE_TYPE}&amp;params={PARAMS}

Par exemple :

curl -i -X POST 
 -d "attribute=google_product_category" 
 -d "rule_type=mapping_rule" 
 -d "params=%7B'map_from'%3A%20'gcategory'%7D" 
 -d "access_token={ACCESS_TOKEN}" 
 "https://graph.facebook.com/v2.9/{PRODUCT_FEED_ID}/rules" 
 // sample response
 
  "id": "{RULE_ID}"

Utilisez les formats params suivants :

Type de règle Format Exemple Remarques

Règle de mise en correspondance

"map_from": <string>

"map_from": "gavailability"

Règle de mise en correspondance de valeurs

<string>: <string>

"InStock": "in stock"

Pour cette règle, le nombre de mises en correspondance est limité à 10 et la longueur des chaînes à 20.

Règle de casse

"type": "capitalize_first", "capitalize_all", "to_upper", "to_lower" (au choix)

"type": "capitalize_first"

Pour en savoir plus, consultez la page API Product Feed Rules : documentation de référence.

Obtenir les règles en vigueur

Pour obtenir la liste de toutes les règles associées à un fil, envoyez un appel HTTP GET à :

https://graph.facebook.com/{API_VERSION}/{PRODUCT_FEED_ID}/rules

Pour en savoir plus, consultez la page API Product Feed Rules : documentation de référence.

Mise à jour et suppression de règles

Pour modifier une règle associée à un fil, envoyez un appel HTTP POST pour mettre à jour les paramètres de votre choix ou un appel HTTP DELETE pour supprimer la règle. Vous ne pouvez mettre à jour que des paramètres. Si vous voulez modifier les valeurs attribute ou rule_type, vous devez supprimer la règle et la recréer.

https://graph.facebook.com/{API_VERSION}/{PRODUCT_FEED_RULE_ID}?params={PARAMS}

Pour en savoir plus, consultez la page API Product Feed Rule : documentation de référence.

Suivant : Collecter des signaux d’audience et créer des audiences produits

Créer des audiences produits