Skip to main content

Meta 광고 영상 업로드

공개 URL의 영상을 광고 계정 미디어 라이브러리에 올리고 영상 ID를 돌려주는 노드입니다.


설명

광고 소재에는 영상 URL이 아니라 영상 ID(video_id) 가 들어갑니다. 이 노드가 URL을 ID로 바꿔줍니다.

① 노드 → Meta      POST /act_xxx/advideos   file_url=https://cdn.../9x16.mp4
② Meta → CDN 그 주소로 직접 접속해 파일 다운로드 ← 우리 워커를 거치지 않습니다
③ Meta → 노드 {"id": "1736616490585566"}
④ 노드 → Meta 인코딩이 끝날 때까지 상태 확인

②가 핵심입니다. 영상 파일은 워커 메모리를 통과하지 않습니다. 500MB 영상을 여러 개 넣어도 워커가 버팁니다.

올린 영상은 광고 관리자의 미디어 라이브러리 → 동영상 탭에 그대로 뜹니다. 별도 업로드 API가 아니라 같은 곳입니다.

URL은 인증 없이 열려야 합니다

Meta 서버가 직접 접속하므로 아래는 실패합니다.

  • 쿠키·헤더·토큰이 필요한 주소
  • 리다이렉트를 거치는 주소 — 구글 드라이브 공유 링크가 여기 해당합니다 (HTML 확인 페이지로 넘깁니다)
  • 사내망·VPN 뒤의 주소
  • 이미 만료된 서명 URL

포트 구성

입력 포트

  • 데이터셋 (필수): 올릴 영상 URL 목록

출력 포트

  • 데이터셋: 입력 행에 _meta_video_id 컬럼이 추가된 결과

속성

액세스 토큰과 광고 계정 두 가지뿐입니다. 발급 절차는 Meta 광고 문서와 같습니다. 업로드에는 ads_management 권한이 필요합니다.


입력 컬럼

컬럼필수설명
video_url올릴 영상의 공개 URL
name미디어 라이브러리에 남길 이름

URL이 빈 행은 그냥 통과합니다. 일부 행만 영상을 바꾸는 것이 정상 사용이라 오류로 만들지 않습니다.


결과 컬럼과 재실행

컬럼내용
_meta_video_id업로드된 영상 ID
같은 URL은 한 번만 올립니다

배치 여러 개가 같은 영상을 공유하는 것이 정상입니다. 같은 URL이 여러 행에 있으면 한 번만 업로드하고 모든 행에 같은 ID를 채웁니다. 12행에 URL 3종이면 업로드도 3번, 인코딩 대기도 3번입니다.

업로드는 멱등하지 않습니다

다시 돌리면 라이브러리에 같은 영상이 하나 더 생깁니다.

그래서 _meta_video_id 가 이미 채워진 행은 건너뜁니다. 실패한 행을 결과 컬럼째 다시 실행하면 남은 것만 올립니다.

인코딩을 기다립니다

업로드 직후에는 아직 인코딩 중이라 그 영상으로 소재를 만들면 Meta가 거부합니다. 노드가 ready 상태가 될 때까지 기다렸다가 ID를 돌려주므로, 행당 수십 초가 걸립니다.

시간 안에 안 끝나면 오류로 알립니다. 그 행을 다시 실행하면 이미 올린 영상은 건너뛰고 이어서 진행합니다.


예제

[
{ "video_url": "https://cdn.example.co.kr/1x1.mp4", "name": "고민하지마리쥬_1x1" },
{ "video_url": "https://cdn.example.co.kr/4x5.mp4", "name": "고민하지마리쥬_4x5" },
{ "video_url": "https://cdn.example.co.kr/9x16.mp4", "name": "고민하지마리쥬_9x16" }
]

실행하면 _meta_video_id 가 붙습니다.

video_url                              name                  _meta_video_id
https://cdn.example.co.kr/1x1.mp4 고민하지마리쥬_1x1 1010145345131490
https://cdn.example.co.kr/4x5.mp4 고민하지마리쥬_4x5 27259310917074158
https://cdn.example.co.kr/9x16.mp4 고민하지마리쥬_9x16 1736616490585566

이 ID를 Meta 광고 복제copies.creative_parameters 소재 스펙에 끼워 사용합니다.


주의사항

한 번에 20행까지

행당 인코딩 대기(수십 초)가 붙어 워커를 오래 잡습니다. 복제(100행)보다 상한이 낮습니다.

이미지는 이 노드로 올리지 않습니다

Meta의 이미지 업로드(/adimages)는 URL 방식이 없어 파일 바이트를 직접 실어 보내야 합니다.

썸네일은 대신 URL을 소재에 그대로 넣을 수 있습니다asset_feed_spec.videos[]thumbnail_url, 단일 영상(video_data)은 image_url 이 그 용도입니다. 이미 라이브러리에 있는 이미지를 쓰려면 thumbnail_hash(또는 image_hash)를 쓰세요.

Meta가 돌려주는 URL을 파일 호스팅으로 쓰지 마세요

조회하면 scontent-*.fbcdn.net 주소가 오지만 서명이 붙은 만료되는 링크입니다. 재사용할 값은 URL이 아니라 video_id 입니다 — 이건 만료되지 않습니다.