문서가 업데이트되었습니다.
한국어로 번역이 아직 완료되지 않았습니다.
영어 업데이트됨: 2025. 5. 28.

인사이트 API

광고 통계를 검색하기 위한 하나의 일관된 인터페이스를 제공합니다.

광고 성과 데이터를 가져오기 전에 먼저 관심 있는 지표를 추적하도록 광고를 설정해야 합니다. 광고를 설정하려면 URL 태그, Meta 픽셀, 전환 API를 사용할 수 있습니다.

시작하기 전에

다음과 같은 항목이 필요합니다.

캠페인 통계

최근 7일 동안의 캠페인 성과에 대한 통계를 가져오는 방법은 다음과 같습니다.

curl -G \
  -d "date_preset=last_7d" \
  -d "access_token=ACCESS_TOKEN" \
  "https://graph.facebook.com/API_VERSION/AD_CAMPAIGN_ID/insights"

자세한 내용은 광고 인사이트 참고 자료를 참조하세요.

호출하기

인사이트 API는 모든 광고 개체에서 에지로 사용할 수 있습니다.

요청

fields 매개변수에서 쉼표로 구분된 리스트를 사용하여 특정 필드를 요청할 수 있습니다. 예를 들면 다음과 같습니다.

curl -G \
-d "fields=impressions" \
-d "access_token=ACCESS_TOKEN" \
"https://graph.facebook.com/v25.0/<AD_ID>/insights"
    

응답

{
  "data": [
    {
      "impressions": "2466376",
      "date_start": "2009-03-28",
      "date_stop": "2016-04-01"
    }
  ],
  "paging": {
    "cursors": {
      "before": "MAZDZD",
      "after": "MAZDZD"
    }
  }
}

수준

정의된 개체 수준에서 결과를 집계하세요. 이렇게 하면 데이터가 자동으로 중복 제거됩니다.

요청

예를 들어, 광고 수준에서 캠페인의 인사이트를 확인할 수 있습니다.

curl -G \
-d "level=ad" \
-d "fields=impressions,ad_id" \
-d "access_token=ACCESS_TOKEN" \
"https://graph.facebook.com/v25.0/CAMPAIGN_ID/insights"

응답

{
  "data": [
    {
      "impressions": "9708",
      "ad_id": "6142546123068",
      "date_start": "2009-03-28",
      "date_stop": "2016-04-01"
    },
    {
      "impressions": "18841",
      "ad_id": "6142546117828",
      "date_start": "2009-03-28",
      "date_stop": "2016-04-01"
    }
  ],
  "paging": {
    "cursors": {
      "before": "MAZDZD",
      "after": "MQZDZD"
    }
  }
}

요청된 수준에서 모든 광고 개체에 대한 액세스 권한이 없으면 인사이트 호출에서 데이터가 반환되지 않습니다. 예를 들어, levelad로 설정하여 인사이트를 요청하는데 광고 계정에서 광고 개체 하나 이상에 대한 액세스 권한이 없는 경우 이 API 호출에서 권한 오류를 반환합니다.

기여 기간

전환 기여 기간은 이벤트가 Meta 앱의 광고로 인해 발생한 것으로 간주할 기간을 설정합니다. 배경 정보는 Meta 비즈니스 지원 센터, 기여 기간 정보를 참조하세요. Facebook은 전환 이벤트가 발생할 때 해당 행동을 측정한 후 1일 및 7일의 기간을 돌아봅니다. 다른 기여 기간에 발생한 행동을 보려면 /{ad-account-id}/insights에 요청하세요. action_attribution_windows를 제공하지 않은 경우 7d_click을 사용하여 value 아래에 제공합니다.

예를 들어 action_attribution_windows를 지정하면 '값'이 7d_click 기여 기간에 고정됩니다. act_10151816772662695/insights?action_attribution_windows=['1d_click','1d_view']에 요청하면 다음과 같은 결과가 표시됩니다.

"spend": 2352.45,
"actions": [
{
"action_type": "link_click",
"value": 6608,
"1d_view": 86,
"1d_click": 6510
},
"cost_per_action_type": [
{
"action_type": "link_click",
"value": 0.35600030266344,
"1d_view": 27.354069767442,
"1d_click": 0.36135944700461
},

// if attribution window is _not_ specified in query. And note that the number under 'value' key is the same even if attribution window is specified.
// act_10151816772662695/insights
"spend": 2352.45,
"actions": [
{
"action_type": "link_click",
"value": 6608
},
"cost_per_action_type": [
{
"action_type": "link_click",
"value": 0.35600030266344
},

필드 확장

노드 수준에서 필드 확장에 지정된 필드를 기준으로 필드를 요청하세요.

요청

curl -G \
-d "fields=insights{impressions}" \
-d "access_token=ACCESS_TOKEN" \
"https://graph.facebook.com/v25.0/AD_ID"

응답

{
  "id": "6042542123268",
  "name": "My Website Clicks Ad",
  "insights": {
    "data": [
      {
        "impressions": "9708",
        "date_start": "2016-03-06",
        "date_stop": "2016-04-01"
      }
    ],
    "paging": {
      "cursors": {
        "before": "MAZDZD",
        "after": "MAZDZD"
      }
    }
  }
}

정렬

sort 매개변수에 {fieldname}_descending 또는 {fieldname}_ascending을 제공하여 결과를 정렬하세요.

요청

curl -G \
-d "sort=reach_descending" \
-d "level=ad" \
-d "fields=reach" \
-d "access_token=ACCESS_TOKEN" \
"https://graph.facebook.com/v25.0/AD_SET_ID/insights"

응답


{
  "data": [
    {
      "reach": 10742,
      "date_start": "2009-03-28",
      "date_stop": "2016-04-01"
    },
    {
      "reach": 5630,
      "date_start": "2009-03-28",
      "date_stop": "2016-04-03"
    },
    {
      "reach": 3231,
      "date_start": "2009-03-28",
      "date_stop": "2016-04-02"
    },
    {
      "reach": 936,
      "date_start": "2009-03-29",
      "date_stop": "2016-04-02"
    }
  ],
  "paging": {
    "cursors": {
      "before": "MAZDZD",
      "after": "MQZDZD"
    }
  }
}

광고 레이블

이름이 동일한 모든 레이블에 대한 통계입니다. 광고 개체 수준에서 단일 값으로 집계됩니다. 자세한 내용은 광고 레이블 참고 자료를 참조하세요.

요청

curl -G \  
-d "fields=id,name,insights{unique_clicks,cpm,total_actions}" \
-d "level=ad" \
-d 'filtering=[{"field":"ad.adlabels","operator":"ANY", "value":["Label Name"]}]'  \
-d 'time_range={"since":"2015-03-01","until":"2015-03-31"}' \
-d "access_token=ACCESS_TOKEN" \
"https://graph.facebook.com/v25.0/AD_OBJECT_ID/insights"

응답

{
  "data": [
    {
      "unique_clicks": 74,
      "cpm": 0.81081081081081,
      "total_actions": 49,
      "date_start": "2015-03-01",
      "date_stop": "2015-03-31",
    },
  ], 
  "paging": {
    "cursors": {
      "before": "MA==",
      "after": "MA==",
    }
  }
}

클릭 정의

현재 Meta에서 제공하는 클릭 지표를 더 잘 이해하려면 아래에서 각각에 대한 정의 및 사용법을 읽어보세요.

  • 링크 클릭, actions:link_click - Meta에서 소유한 자산 안팎의 특정 랜딩 페이지나 환경으로 연결되는 광고 링크를 클릭한 횟수입니다. 광고주 지원 센터, 링크 클릭을 참조하세요.

  • 클릭(전체), clicks - 광고 컨테이너와의 특정 상호 작용 유형, 다른 랜딩 페이지 링크, 확장된 광고 환경 링크를 포함하여 여러 유형의 광고 클릭을 집계합니다. 광고주 지원 센터, 클릭(전체)을 참조하세요.

삭제 및 보관된 개체

광고 유닛은 DELETED 또는 ARCHIVED 상태일 수 있습니다. 삭제되거나 보관된 개체의 통계는 상위 개체를 쿼리할 때 표시됩니다. 즉, 광고 세트 수준에서 impressions를 쿼리하면 광고가 삭제 또는 보관된 상태에 있는지와 관계없이 세트 내 모든 광고의 impressions가 결과에 포함됩니다. 광고 개체 저장 및 검색 모범 사례도 참조하세요.

그러나 필터링을 사용하여 쿼리할 경우 상태 필터링이 기본적으로 적용되어 활성 개체만 반환합니다. 따라서 상위 노드의 모든 통계가 하위 노드의 통계보다 클 수 있습니다.

추가 filtering 매개변수를 제공하여 상위 노드에서 ARCHIVED 개체의 통계를 가져올 수 있습니다.

요청

나열된 광고 계정의 모든 ARCHIVED 광고에 대한 통계를 차례로 가져오는 방법은 다음과 같습니다.

curl -G \
  -d "level=ad" \
  -d "filtering=[{'field':'ad.effective_status','operator':'IN','value':['ARCHIVED']}]" \
  -d "access_token=<ACCESS_TOKEN>" \
  "https://graph.facebook.com/v25.0/act_<AD_ACCOUNT_ID>/insights/"

응답

이 응답에는 보관된 개체만 반환됩니다.

{
  "data": [
    {
      "impressions": "1741",
      "date_start": "2016-03-11",
      "date_stop": "2016-03-12"
    }
  ],
  "paging": {
    "cursors": {
      "before": "MAZDZD",
      "after": "MAZDZD"
    }
  }
}

삭제된 개체 인사이트

해당 개체의 ID나 ad.effective_status 필터를 사용하는 경우 삭제된 개체에 대한 인사이트를 쿼리할 수 있습니다.

요청

예를 들어 광고 세트 ID가 있는 경우 다음 예시를 참조하세요.

curl -G \
-d "fields=id,name,status,insights{impressions}" \
-d "access_token=ACCESS_TOKEN" \
"https://graph.facebook.com/v25.0/AD_SET_ID"
    

아래는 ad.effective_status를 사용하여 쿼리하는 방법의 예시입니다.

POST https://graph.facebook.com/<VERSION>/act_ID/insights?access_token=token&appsecret_proof=proof&fields=ad_id,impressions&date_preset=lifetime&level=ad&filtering=[{"field":"ad.effective_status","operator":"IN","value":["DELETED"]}]

응답

{
  "id": "6042147342661",
  "name": "My Like Campaign",
  "status": "DELETED",
  "insights": {
    "data": [
      {
        "impressions": "1741",
        "date_start": "2016-03-11",
        "date_stop": "2016-03-12"
      }
    ],
    "paging": {
      "cursors": {
        "before": "MAZDZD",
        "after": "MAZDZD"
      }
    }
  }
}

문제 해결

시간 초과

이 엔드포인트에서 오류의 원인이 되는 가장 일반적인 문제는 과도한 요청과 시간 초과입니다.

  • /GET 또는 동기식 요청에서 메모리 부족 또는 시간 초과 오류가 발생할 수 있습니다.
  • /POST 또는 비동기 요청에서 시간 초과 오류가 발생할 수 있습니다. 비동기식 요청의 경우 재시도를 포함하여 요청을 완료하는 데 최대 1시간이 걸릴 수 있습니다. 예를 들어, 여러 광고 수준 개체에 대해 과도한 양의 데이터를 가져오려고 쿼리하는 경우가 이에 해당합니다.

권장 사항

  • 쿼리가 실패하는 경우에 대한 명시적인 한도는 없습니다. 쿼리 시간을 초과하면 기간 등의 필터에 추가하여 쿼리를 더 세분화해보세요.
  • 고유한 지표는 계산하는 데 많은 시간이 걸립니다. 고유하지 않은 지표의 성과를 개선하려면 별도의 호출로 고유한 지표를 쿼리해보세요.

사용 제한

Meta 인사이트 API는 모든 파트너에게 최적의 보고 환경을 제공하기 위해 사용 제한을 활용합니다. 자세한 내용 및 권장 사항은 Meta 인사이트 API 제한 및 모범 사례를 참조하세요.

광고 관리자와의 차이

2025년 6월 10일부터 Meta 광고 관리자와의 차이를 줄이기 위해 use_unified_attribution_settingaction_report_time parameters를 무시하고 API 응답이 광고 관리자 설정을 모방하게 됩니다.

  • 기여된 value는 광고 세트 수준 기여 설정(use_unified_attribution_setting=true와 유사)에 기반하고 인라인/광고 내 행동은 1d_click 또는 1d_view 기여 기간 데이터에 포함됩니다. 이 변경이 적용된 이후에는 독립실행형 inline 기여 기간 데이터가 더 이상 반환되지 않습니다.
  • 행동은 action_report_time=mixed를 사용하여 보고됩니다. Meta 내 행동(예: 링크 클릭)은 노출 기반 보고 시간을 사용합니다. Meta 외에서의 행동(예: 웹 구매)은 전환 기반 보고 시간을 활용합니다.

API의 기본 동작은 광고 관리자에서의 기본 동작과는 차이가 있습니다. 광고 관리자에서 동일한 동작을 보고 싶은 경우 use_unified_attribution_setting 필드를 true로 설정하세요.

더 알아보기

위의 리스트에 없는 엔드포인트는 이 API에서 다루지 않습니다. 솔루션에 Meta에서 얻은 보고서를 포함하려는 경우 Meta 플랫폼 약관마케팅 API의 개발자 정책을 참조하세요.