Facebook Business 확장 기능(FBE)은 카탈로그를 사용하여 비즈니스 인벤토리를 가져옵니다. 이는 다이내믹 광고, 페이지 Shops, 주요 서비스 카드와 같은 여러 가지 기능을 지원하는 데 사용됩니다. 통합에서는 선택 가능한 부분이지만 특정 기능에 대해서는 필수입니다.
Facebook 카탈로그에 자체 API 세트가 있지만 FBE는 그중 일부와 직접 통합되어 있으므로 Facebook 플랫폼에서 비즈니스의 인벤토리를 쉽게 업데이트할 수 있습니다(개발자가 Facebook 카탈로그 ID를 추적할 필요 없음).
다이내믹 광고와 커머스 사용 사례(페이지 Shops, Instagram 쇼핑, Marketplace)에서 모든 필수 필드가 카탈로그에 올바르게 채워지도록 하려면 지원 필드를 확인하세요.
인벤토리가 즉시 업데이트되고 양쪽의 서버 로드 횟수가 줄어들기 때문에 푸시 방식 중 하나(배치 API 또는 일회성 피드 업로드 API)를 사용하는 것을 적극 권장합니다. 여기에 사용되는 access_token
은 비즈니스 로그인과 Webhooks에서 반환된 것과 동일합니다.
새로운 설치 Webhooks를 수신하는 즉시 비즈니스의 전체 인벤토리를 Facebook으로 보내야 합니다. 비즈니스가 웹사이트에서 인벤토리를 변경할 때마다 업데이트를 보내야 합니다.
대부분 이커머스 비즈니스에 권장합니다. 배치 API는 표준 Facebook 카탈로그 API로, 대량의 인벤토리(품목 100개 이상)를 보유하고 있고/거나 수시로 품목을 업데이트하는 비즈니스에 유용합니다.
예약 (서비스) 비즈니스에서 사용 가능합니다.일회성 피드 업로드 API는 표준 Facebook 카탈로그 API로, 소량의 인벤토리(품목 100개 이하)를 보유하고 있는 비즈니스에 유용합니다.
이 방식을 사용하면 업데이트할 때마다 전체 인벤토리를 보내고 Facebook 카탈로그에서 인벤토리가 완전히 교체됩니다.
1단계: (Webhooks 알림 또는 FBE 설치 API 엔드포인트에서) 연결된 카탈로그 ID를 전송하여 FBE를 설치하는 동안 생성된 피드 ID를 가져옵니다.
curl -G \ -d "access_token=<ACCESS_TOKEN>" \ https://graph.facebook.com/<API_VERSION>/<CATALOG_ID>/product_feeds
제품 피드 API에 대해 자세히 알아보세요.
2단계: 피드에 일회성 업로드를 수행합니다.
예시 — 공개 위치에서 호스팅된 피드 파일.
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 */
}
}
);
예시 — 로컬 컴퓨터에서 직접 피드 파일 업로드. 사용 사례에 따라 파일 경로를 변경해야 합니다.
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 */
}
}
);
그 외에 모든 요청과 응답 형식은 원래 엔드포인트에 대해 기록된 것과 동일합니다.
업종 | CSV 피드 예시 | TSV 피드 예시 | XML 피드 예시 |
---|---|---|---|
이커머스 | |||
예약 |
예약 (서비스) 카탈로그 지원 필드를 참조하세요.
이 방식은 다음번에 풀을 실행할 때까지 오래된 인벤토리로 유지되므로 권장하지 않지만, 공개적으로 액세스할 수 있는 인벤토리 파일이 있는 소규모의 셀프 호스팅 비즈니스에는 유용합니다. 비즈니스에 이 방식을 사용하려면 비즈니스 로그인을 통해 전달된 비즈니스 구성에서 catalog_feed_scheduled
기능을 지정해야 합니다. 이 기능이 정의되면 업데이트 여부와 관계없이 지정된 공개 URL에서 비즈니스의 인벤토리를 정기적으로 가져옵니다.
예약된 피드 풀에 대해 자세히 알아보세요.