시작하기

크리에이티브 자산 관리를 구현하는 방법을 알아보세요.

크리에이티브 자산 관리는 일부 파트너에게만 제공됩니다. 자세한 내용은 Meta 파트너에게 문의하세요.

요구 사항

이 API를 사용하려면 다음 항목이 필요합니다.

권한

앱에 로그인하고 나면 사용자에게 다음 권한을 요청해야 합니다.

  • business_creative_management - 비즈니스 크리에이티브 폴더 및 비즈니스 크리에이티브를 관리합니다. 모든 비즈니스 크리에이티브 자산 관리자 API 엔드포인트에 필수입니다.
  • business_creative_insights - 비즈니스 크리에이티브 자산 인사이트에 액세스합니다.
  • business_management - 비즈니스 사용자를 관리하고 파트너십 계약 요청을 수락합니다.

제한 사항

  • 앱 사용자(광고주)는 비즈니스 관리자 ID로 대표되는 비즈니스의 관리자여야 합니다.

1단계: 비즈니스 크리에이티브 폴더 만들기

{business-id}/creative_folders 엔드포인트로 POST 요청을 보내서 광고주 비즈니스 대신 비즈니스 크리에이티브 폴더를 만듭니다. 이 경우 {business-id}는 광고주 비즈니스 ID입니다.

이 작업에는 business_creative_management 권한이 필요합니다.

요청 예시

curl -X POST \
  -F 'name={folder-name}' \
  -F 'access_token={access-token}' \
  https://graph.facebook.com/<API_VERSION>/<BUSINESS_ID>/creative_folders

응답 예시

{ “id”: “{business-creative-folder-id}” }

하위 폴더를 만들 수도 있습니다

2단계: 폴더에 크리에이티브 추가

{business-id}/images 또는 {business-id}/videosPOST 요청을 보내서 폴더에 기존 크리에이티브 자산을 추가합니다. 이 작업에는 business_creative_management 권한이 필요합니다.

이미지 추가

— 이미지를 추가하는 방법은 다음과 같습니다.

curl -X POST \
  -F 'bytes={image-content-in-bytes-format}' \
  -F 'name={image-name}' \
  -F 'access_token={access-token}' \
  -F 'creative_folder_id={business-creative-folder-id}' \
  https://graph.facebook.com/{version}/{business-id}/images

응답

{
  "images":{
    "{image-name}":{
      "id":"{business-image-id}",
      "hash":"{hash}",
      "url":"{image-url}"
    }
  }
}

동영상 업로드하기

동영상이 몇 메가바이트 이내라면 하나의 요청으로 업로드하고 그렇지 않을 경우 청크로 업로드하세요. 동영상 업로드를 위한 API 호출은 graph.facebook.com 대신 graph-video.facebook.com에서 보냅니다.

{business-id}/videoPOST를 보내고 동영상 이름, 소스, 비즈니스 크리에이티브 폴더 ID를 포함합니다.

curl -X POST \
  -F 'name={video-name}' \
  -F 'source='@{video-path}'' \
  -F 'access_token={access-token}' \
  -F 'creative_folder_id={business-creative-folder-id}' \
  https://graph-video.facebook.com/{version}/{business-id}/videos

응답

{ 
    "success": true, 
    "business_video_id": "{business-video-id}" 
}

청크 동영상 업로드하기

대용량 동영상의 경우, start 요청 1개를 보내고, transfer 요청 1개 또는 여러 개를 보낸 다음 finish 요청 1개를 보내세요.

start 요청을 보내고 동영상 업로드 세션을 만들려면 /{business-id}/videosPOST 요청을 보내고, upload_phase 필드를 start로 설정하고, file_size를 바이트 단위로 지정합니다.

curl -X POST \
  -F 'title={video-name}' \
  -F 'creative_folder_id={business-creative-folder-id}' \
  -F 'access_token={access-token}' \
  -F 'upload_phase=start' \
  -F 'file_size={video_file_size_in_bytes}' \
  https://graph-video.facebook.com/<API_VERSION>/<BUSINESS_ID>/videos

응답 샘플

{
  "upload_session_id": "{session-id}",
  "business_video_id": "{business-video-id}",
  "video_id": "{video-id}",
  "start_offset": "0",
  "end_offset": "52428800"
}

동영상에서 [0, 52428800]을 업로드하려면 시작 및 종료 오프셋에 따라 파일을 청크로 나눈 다음, 해당 청크를 transfer 요청과 함께 전송합니다. Meta에서 각 청크에 대해 새로운 오프셋을 전송합니다. 이 새로운 오프셋을 사용하여 각 청크를 업로드합니다.

: 첫 번째 청크 보내기

curl -X POST \
  -F 'title={video-name}' \
  -F 'access_token={access-token}' \
  -F 'creative_folder_id={business-creative-folder-id}' \
  -F 'upload_phase=transfer' \
  -F 'upload_session_id={session-id}' \
  -F 'start_offset=0' \
  -F 'video_file_chunk=@{binary-chunk-filename}' \
  https://graph-video.facebook.com/<API_VERSION>/<BUSINESS_ID>/videos

요청이 성공하면 다음 청크에 대한 오프셋이 반환됩니다.

{
 "start_offset": "52428800",    //Start byte position of the next file chunk.
 "end_offset": "104857601"      //End byte position of the next file chunk.
}

파일에서 [52428800, 104857601] 범위로 두 번째 청크를 잘라서 업로드하고 전송합니다.

curl -X POST \
  -F 'title={video-name}' \
  -F 'access_token={access-token}' \
  -F 'creative_folder_id={business-creative-folder-id}' \
  -F 'upload_phase=transfer' \
  -F 'start_offset=52428801' \
  -F 'upload_session_id={your-upload-sesson-id}' \
  -F 'video_file_chunk={binary-chunk-filename}' \
  https://graph-video.facebook.com/<API_VERSION>/<BUSINESS_ID>/videos

start_offsetend_offset과 같아질 때까지 모든 추가 청크를 보냅니다.

{
  "start_offset": "152043520",
  "end_offset": "152043520"
}

즉, 파일 전체가 업로드되었다는 것을 의미합니다. 이 동영상을 게시하고 업로드 세션을 종료하면 됩니다.

curl -X POST \
  -F 'title={video-name}' \
  -F 'access_token={access-token}' \
  -F 'creative_folder_id={business-creative-folder-id}' \
  -F 'upload_phase=finish' \
  -F 'upload_session_id={session-id}' \
  https://graph-video.facebook.com/<API_VERSION>/<BUSINESS_ID>/videos

업로드 도중 오류가 발생하면 해당 청크의 업로드를 다시 시도할 수 있습니다. 일반적으로 응답 문제로 인해 오류가 발생합니다. 실패한 청크는 다시 업로드를 시도하세요. 오류에 대한 자세한 내용은 다음을 참조하세요.

폴더에 크리에이티브를 업로드하고 나면 폴더에 액세스할 수 있는 광고주는 광고 관리자 또는 마케팅 API를 사용하여 광고를 만들 수 있습니다.

모든 업로드된 크리에이티브는 광고 관리자 > 미디어 선택 UI에 표시됩니다. 이 크리에이티브는 광고 만들기광고 수정에 사용할 수 있습니다. 또한 폴더와 크리에이티브 자산은 비즈니스 관리자 > 미디어 라이브러리의 비즈니스 관리자 미디어 라이브러리 도구에서 사용할 수 있습니다.

3단계: 자산에 딥 링크 URL을 제공하고 광고 또는 게시물 만들기

특정 자산에 대한 딥 링크 URL을 가져오려면 업로드된 이미지 또는 동영상 자산의 media_library_url 필드를 쿼리합니다.

curl -X GET \  
  -F 'access_token={partner-access-token}' \
https://graph.facebook.com/v<API_VERSION>/<asset_id>?fields=media_library_url

딥 링크를 사용하여 광고 또는 페이지 게시물을 만들려면 링크 끝에 &action=CREATE_AD 또는 &action=CREATE_POST를 첨부합니다.

https://business.facebook.com/asset_library/business_creatives/?object_id=<OBJECT_ID>&action=CREATE_AD