You must meet the following requirements to use Product Feed.
A feed is a set of items uploaded or fetched from a source at once. You can have a single feed to represent all of the items in your catalog, or you can have multiple feeds with each feed representing a single country or single division's products
The Product Feed consists of a series of items in either a Tab Separated file or XML. In XML, these should exist as an array of <item>
's. In a tab separated file, the header column is required.
Field | Description |
---|---|
id numeric string | ID number of the feed |
country string | An ISO 3166-1 Alpha 2 country code |
created_time datetime | The creation time of the feed |
default_currency string | Your default currency for items in a feed. If no currency is specified for items in the feed file, this value will be used |
deletion_enabled bool | This allows items to be deleted if a feed is updated and the items are not included in the new feed file |
delimiter enum {AUTODETECT, BAR, COMMA, TAB, TILDE, SEMICOLON} | The delimiter used in feed file |
encoding enum | The character encoding used by the provided feed |
file_name string | The file name of a feed. This will be overridden by |
ingestion_source_type enum {primary_feed, supplementary_feed} | Indicates the type of feed.
|
item_sub_type enum | The sub type of items to be uploaded by this feed |
latest_upload | The latest upload session of a feed |
migrated_from_feed_id numeric string | The previous product feed id where the catalog items migrated from |
name string | The name of a feed |
override_type enum | If it is a secondary feed, this is the type of the override (country or language) |
primary_feeds list<string> | Used in conjunction with |
product_count int32 | The total products in a product feed |
enum {AUTODETECT, ON, OFF} | This allows tabs and new lines within fields |
schedule | The configuration for fetching the full feed in a recurrent manner. The uploads as a result of this schedule would replace the entire feed. Items missing in consequent upload feed file would be deleted |
update_schedule | The configuration for fetching updates to a feed in a recurrent manner. The uploads as a result of this schedule would only update the items in the feed or create new ones with the information in the file. No items would be deleted. This is useful for sending |
Edge | Description |
---|---|
Edge<AutomotiveModel> | Automotive models in a feed |
Edge<Destination> | Destinations in a feed |
Edge<Flight> | Flights in a feed |
Edge<HomeListing> | Home listings in a feed |
Edge<Hotel> | Hotels in a feed |
Edge<MediaTitle> | Media titles in a feed |
Edge<ProductItem> | Products in a feed |
Edge<ProductFeedRule> | rules |
Edge<ProductFeedUpload> | Concrete upload attempts |
Edge<VehicleOffer> | Vehicle offers in a feed |
Edge<Vehicle> | Vehicles in a feed |
Error | Description |
---|---|
100 | Invalid parameter |
368 | The action attempted has been deemed abusive or is otherwise disallowed |
190 | Invalid OAuth 2.0 Access Token |
product_feeds
edge from the following paths: POST /v21.0/{product-catalog-id}/product_feeds HTTP/1.1
Host: graph.facebook.com
name=Test+Feed&schedule=%7B%22interval%22%3A%22DAILY%22%2C%22url%22%3A%22http%3A%2F%2Fwww.example.com%2Fsample_feed.tsv%22%2C%22hour%22%3A%2222%22%7D
/* PHP SDK v5.0.0 */
/* make the API call */
try {
// Returns a `Facebook\FacebookResponse` object
$response = $fb->post(
'/{product-catalog-id}/product_feeds',
array (
'name' => 'Test Feed',
'schedule' => '{"interval":"DAILY","url":"http://www.example.com/sample_feed.tsv","hour":"22"}',
),
'{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(
"/{product-catalog-id}/product_feeds",
"POST",
{
"name": "Test Feed",
"schedule": "{\"interval\":\"DAILY\",\"url\":\"http:\/\/www.example.com\/sample_feed.tsv\",\"hour\":\"22\"}"
},
function (response) {
if (response && !response.error) {
/* handle the result */
}
}
);
Bundle params = new Bundle();
params.putString("name", "Test Feed");
params.putString("schedule", "{\"interval\":\"DAILY\",\"url\":\"http://www.example.com/sample_feed.tsv\",\"hour\":\"22\"}");
/* make the API call */
new GraphRequest(
AccessToken.getCurrentAccessToken(),
"/{product-catalog-id}/product_feeds",
params,
HttpMethod.POST,
new GraphRequest.Callback() {
public void onCompleted(GraphResponse response) {
/* handle the result */
}
}
).executeAsync();
NSDictionary *params = @{
@"name": @"Test Feed",
@"schedule": @"{\"interval\":\"DAILY\",\"url\":\"http://www.example.com/sample_feed.tsv\",\"hour\":\"22\"}",
};
/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
initWithGraphPath:@"/{product-catalog-id}/product_feeds"
parameters:params
HTTPMethod:@"POST"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
id result,
NSError *error) {
// Handle the result
}];
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
Parameter | Description |
---|---|
country ISO 3166 Alpha Country Code | Default value: US Two letter country code where the products can be sold |
default_currency ISO 4217 Currency Code | Default value: USD The default currency used by provided feed if the currency is not specified in the feed file |
deletion_enabled boolean | Default value: true Default value: |
delimiter enum {AUTODETECT, BAR, COMMA, TAB, TILDE, SEMICOLON} | Default value: AUTODETECT Product feed delimiter |
encoding enum {AUTODETECT, LATIN1, UTF8, UTF16LE, UTF16BE, UTF32LE, UTF32BE} | Default value: AUTODETECT The character encoding used by provided feed |
feed_type enum {AUTOMOTIVE_MODEL, COLLECTION, DESTINATION, FLIGHT, HOME_LISTING, HOTEL, HOTEL_ROOM, LOCAL_INVENTORY, MEDIA_TITLE, OFFER, PRODUCTS, TRANSACTABLE_ITEMS, VEHICLE_OFFER, VEHICLES} | Type of the feed. Decides type of catalog item this feed will create |
file_name UTF-8 encoded string | The name of the product feed. .tsv, .xml or compressed files (zip, gzip and bz2) are supported |
ingestion_source_type enum {PRIMARY_FEED, SUPPLEMENTARY_FEED} | ingestion_source_type to decide type of feed i.e. primary or supplementary |
item_sub_type enum {APPLIANCES, BABY_FEEDING, BABY_TRANSPORT, BEAUTY, BEDDING, CAMERAS, CELL_PHONES_AND_SMART_WATCHES, CLEANING_SUPPLIES, CLOTHING, CLOTHING_ACCESSORIES, COMPUTERS_AND_TABLETS, DIAPERING_AND_POTTY_TRAINING, ELECTRONICS_ACCESSORIES, FURNITURE, HEALTH, HOME_GOODS, JEWELRY, NURSERY, PRINTERS_AND_SCANNERS, PROJECTORS, SHOES_AND_FOOTWEAR, SOFTWARE, TOYS, TVS_AND_MONITORS, VIDEO_GAME_CONSOLES_AND_VIDEO_GAMES, WATCHES} | The sub type of items to be uploaded by this feed |
migrated_from_feed_id numeric string | Used to split an original feed into multiple new feeds,
|
name UTF-8 encoded string | User specified name for the feed |
override_type enum {LANGUAGE, COUNTRY, VERSION, CATALOG_SEGMENT_CUSTOMIZE_DEFAULT, LANGUAGE_AND_COUNTRY, BATCH_API_LANGUAGE_OR_COUNTRY, SMART_PIXEL_LANGUAGE_OR_COUNTRY, LOCAL} | If this is a secondary feed, this specifies the override type of the feed |
override_value string | Override value of the feed dependent on the override type (country or language). |
primary_feed_ids list<numeric string> | primary_feed_ids to which a supplementary feed should be linked |
enum{autodetect, on, off} | Default value: autodetect Whether or not there will be quotes around each field, only for TSV feeds. If this field is provided, we use it instead of the parameter quoted_fields |
rules list<JSON-encoded string> | A list of rules applied to feed uploads |
schedule JSON-encoded string | A JSON-encoded string representing a recurrent schedule for fetching the feed. Default timezone is America/Los_Angeles. Learn more about feed schedules |
selected_override_fields array<string> | Selected Override Fields of the feed, written as a list of fields which should be processed from the feed file. From whiltelisted_properties |
update_schedule JSON-encoded string | The configuration for fetching updates to a feed in a recurrent manner. The uploads would only update the items in the feed or create new ones. No items would be deleted. This is useful for sending |
id
in the return type.id
: numeric string, Error | Description |
---|---|
100 | Invalid parameter |
200 | Permissions error |
Deleting a product feed effectively disables all ads using products that come from this feed.
You can create a new feed with the same product IDs to re-enable those ads.
curl -X DELETE \ -d "access_token=<ACCESS_TOKEN>" \ https://graph.facebook.com/<API_VERSION>/<PRODUCT_FEED_ID>
/{product_feed_id}
.success
: bool, Error | Description |
---|---|
100 | Invalid parameter |
3964 | You must be assigned as an admin of this product feed before you can delete it. |