실무 가이드

메타 광고 성과를 구글 시트로 자동화하는 법: 내보내기부터 API까지

페이스북·인스타그램 광고 성과를 구글 시트로 매일 받는 세 가지 방법과 Marketing API 호출 예시, 토큰 만료·늦게 잡히는 전환·클릭 수 차이 같은 함정을 정리합니다.

2026년 11월 12일Team Perport6분 소요
메타 광고 성과를 구글 시트로 자동화하는 법: 내보내기부터 API까지
목차

메타(페이스북·인스타그램) 광고는 광고 관리자에서 보는 숫자와 내보낸 파일의 숫자가 미묘하게 다를 때가 많습니다. 기여 설정, 조회 기간, 지난 날짜 전환의 변동 때문입니다. 그래서 메타 광고 데이터를 시트로 자동화할 때는 "어떻게 가져오나"만큼 **"언제 어떤 기준으로 가져오나"**가 중요합니다.

이 글은 메타 광고 성과를 구글 시트로 받는 세 가지 방법을 비교하고, 직접 만들 때 필요한 API 호출 예시와 자주 틀리는 지점을 정리합니다.

방법 비교

방법 자동화 범위 준비 주의점
광고 관리자 보고서 내보내기·예약 메일로 파일 수신까지 저장된 보고서 시트로 옮기는 일은 수작업
Marketing API + Apps Script 시트에 직접 쓰기까지 메타 앱·액세스 토큰 토큰 만료·API 버전·전환 정리
연동형 리포트 도구 수집·계산·시트 갱신 메타 로그인으로 계정 연결 지원 열·단위 확인

주 1회 캠페인 합계만 본다면 내보내기로 충분합니다. 매일 보거나 소재 단위까지 보거나 다른 매체와 한 시트에 합쳐야 한다면 API 쪽이 낫습니다.

방법 1. 광고 관리자 보고서 내보내기와 예약

광고 관리자의 광고 보고서에서 필요한 열과 분류 기준(캠페인·광고 세트·광고, 일별 등)으로 보고서를 만들어 저장하고, 파일로 내보내거나 정기적으로 메일로 받도록 예약할 수 있습니다.

파일을 시트에 붙여넣을 때는 원본 탭을 통째로 바꾸고 요약은 다른 탭에서 참조하세요. 보고서의 기여 설정을 열에 함께 넣어 두면, 다음 달에 숫자가 달라졌을 때 원인을 찾기 쉽습니다.

방법 2. Marketing API + Apps Script

광고 계정의 인사이트(Insights) 주소를 호출하면 날짜별·캠페인별 성과를 받을 수 있습니다. 구글 시트의 확장 프로그램 → Apps Script에 아래처럼 작성하고 시간 기반 트리거로 매일 실행합니다.

const VERSION = 'vXX.0'; // 메타 개발자 문서의 현재 지원 버전으로 바꾸세요
const ACCOUNT = 'act_광고계정ID';

function fetchMetaInsights() {
  const token = PropertiesService.getScriptProperties().getProperty('META_TOKEN');
  const params = {
    level: 'campaign',
    time_increment: '1',        // 일별로 나눔
    date_preset: 'last_7d',     // 최근 7일을 매일 다시 받음
    fields: 'date_start,campaign_id,campaign_name,impressions,inline_link_clicks,spend,actions',
    limit: '500',
    access_token: token,
  };
  const query = Object.keys(params)
    .map((k) => k + '=' + encodeURIComponent(params[k]))
    .join('&');
  let url = 'https://graph.facebook.com/' + VERSION + '/' + ACCOUNT + '/insights?' + query;

  const rows = [];
  while (url) {
    const res = JSON.parse(UrlFetchApp.fetch(url).getContentText());
    res.data.forEach((r) => {
      const purchase = (r.actions || []).find((a) => a.action_type === 'purchase');
      rows.push([
        r.date_start,
        r.campaign_id,
        r.campaign_name,
        Number(r.impressions),
        Number(r.inline_link_clicks || 0),
        Number(r.spend),
        purchase ? Number(purchase.value) : 0,
      ]);
    });
    url = res.paging && res.paging.next ? res.paging.next : null; // 다음 페이지
  }
  return rows; // 같은 날짜·캠페인 행을 지운 뒤 시트에 다시 씁니다
}

토큰은 시트 셀이 아니라 스크립트 속성에 넣습니다. 시트를 공유받은 사람이 토큰을 볼 수 있기 때문입니다.

직접 만들 때 틀리기 쉬운 지점

  1. clicks 는 링크 클릭이 아닙니다. clicks 에는 좋아요·댓글·프로필 클릭까지 들어갑니다. 랜딩으로 이동한 클릭은 inline_link_clicks 입니다. 다른 매체의 클릭과 비교하려면 링크 클릭을 써야 CPC가 맞습니다.
  2. 전환은 actions 배열에 이벤트별로 옵니다. 구매 하나가 purchase, omni_purchase, offsite_conversion.fb_pixel_purchase 처럼 여러 이름으로 함께 들어오기도 합니다. 전부 더하면 중복입니다. 쓸 이벤트 이름 하나를 정해 그것만 읽으세요.
  3. 지난 날짜의 전환이 나중에 늘어납니다. 클릭 며칠 뒤에 일어난 구매는 클릭한 날짜의 전환으로 뒤늦게 반영됩니다. 어제 하루만 받아 덧붙이면 시트의 전환이 계속 모자랍니다. 위 예시처럼 최근 7일을 매일 다시 받아 덮어쓰세요.
  4. 토큰이 만료됩니다. 개인 사용자 토큰은 만료 기간이 있습니다. 매일 자동 실행하려면 비즈니스 설정의 시스템 사용자 토큰처럼 만료를 관리할 수 있는 방식을 쓰세요. 토큰이 끊기면 스크립트는 조용히 실패하고 시트는 어제 상태로 남습니다.
  5. 결과가 여러 페이지로 나뉩니다. 응답의 paging.next 를 따라가지 않으면 앞부분만 받습니다. 소재 단위(level: 'ad')로 내려가면 거의 항상 여러 페이지입니다.
  6. API 버전이 종료됩니다. 주소의 버전은 일정 기간 뒤 지원이 끝납니다. 버전을 한 곳(위의 VERSION)에 두고 주기적으로 올리세요.
  7. 소재 이미지 주소는 만료됩니다. API가 주는 썸네일 주소에는 서명이 붙어 있어 시간이 지나면 시트의 IMAGE() 가 깨집니다.

방법 3. 연동형 리포트 도구

메타 로그인으로 광고 계정을 연결하면 도구가 토큰·이벤트 정리·재수집을 맡습니다. 고를 때 확인할 것:

  • 전환을 이벤트별로 나눠 고를 수 있는가(구매·잠재 고객·맞춤 전환)
  • 최근 며칠을 다시 받아 덮어쓰는가
  • 소재 이미지가 시트에서 깨지지 않게 처리되는가
  • 네이버·구글과 같은 열 구조로 합쳐지는가

메타 전환을 다른 매체와 합칠 때

메타의 전환과 ROAS는 메타의 기여 기준으로 잡은 값이고, 기본 설정에서는 광고를 보기만 하고 전환한 경우도 포함됩니다. 같은 구매를 Google Ads나 네이버도 자신의 전환으로 잡을 수 있으므로 매체별 전환을 더해 "전체 전환"이라고 쓰면 과대 집계가 됩니다. 기준을 맞추는 방법은 네이버 검색광고 vs 메타 광고: 성과를 한 표로 비교하는 기준에, 지표 계산식은 광고 성과 지표 계산식 총정리에 정리했습니다.

메디트랙으로 연결하면

메디트랙은 메타 로그인으로 광고 계정을 연결하면 캠페인·광고 세트·광고 단위 성과와 이벤트별 전환을 매일 새벽 수집하고, 최근 며칠을 다시 받아 늦게 잡힌 전환을 맞춥니다. 소재 이미지는 만료되지 않는 주소로 바꿔 시트에서도 보이게 합니다. 리포트 빌더에서 열을 고르고 시트로 저장하면 매일 아침 같은 구글 시트가 갱신됩니다. 메타 연결은 14일 무료 체험 후 유료 플랜(Connect부터)에서 이어집니다.

여러 매체를 한 시트로 합치는 전체 흐름은 광고 리포트 자동화를 참고하세요.

자주 묻는 질문

광고 관리자 숫자와 시트 숫자가 다릅니다.

대부분 세 가지 중 하나입니다. 기여 설정이 다르거나, 시트가 지난 날짜의 늦은 전환을 다시 받지 않았거나, 클릭 열이 전체 클릭과 링크 클릭으로 서로 다릅니다. 같은 기간·같은 기여 설정·같은 열로 다시 조회해 비교하세요.

인스타그램 광고도 같이 받아지나요?

인스타그램 광고는 같은 메타 광고 계정에서 집행되므로 함께 받아집니다. 지면별로 나눠 보려면 분류 기준에 게재 위치(publisher_platform)를 추가합니다.

오늘 데이터는 언제 넣어야 하나요?

오늘 숫자는 계속 바뀌고 전환은 며칠 뒤까지 늘어납니다. 보고서에는 어제까지를 넣고, 최근 며칠은 매일 다시 받아 덮어쓰는 방식이 가장 안전합니다.

앱 검수를 받아야 하나요?

자기 광고 계정의 데이터를 자기 앱으로 읽는 용도라면 대개 기본 권한으로 시작할 수 있지만, 다른 사람의 광고 계정을 읽는 서비스로 만들려면 권한 검수가 필요합니다. 조건은 바뀔 수 있으니 메타 개발자 문서를 확인하세요.

#메타 광고 구글 시트#페이스북 광고 데이터 자동화#메타 광고 리포트 자동화#인스타그램 광고 성과 시트#Meta Marketing API 인사이트

광고 리포트, 매일 아침 구글 시트로 받아보세요

광고 계정만 연결하면 전날까지의 성과가 매일 같은 시트에 갱신됩니다. Google Ads·네이버 검색광고는 카드 등록 없이 계속 무료, 메타·카카오·틱톡 등 전 매체는 14일 무료 체험.

함께 읽어보세요

전체 글 보기 →