페이스북 계정과 광고 계정, 앱, 액세스 토큰 모두 준비되면 마케팅 API를 사용할 수 있다. 여기서는 마지막 단계로 마케팅 API를 설정하고 Python을 통해 인사이트 API를 호출한다.
1. 앱에 제품 추가하기
마케팅 API 제품의 '설정'을 클릭한다.

이제 비로소 마케팅 API 사용이 가능하다.
아래 대시보드 메뉴에서 API 할당량을 확인할 수 있다. 자세한 사항은 '상세 정보 보기'를 클릭해 확인한다.

- 샌드박스 광고 계정 만들기
샌드박스 광고 계정이 있으면 development_access 버전의 앱을 별도의 비용 없이 Facebook 마케팅 API를 이용해 광고를 만들고 수정할 수 있다. 최대 1개까지 생성할 수 있다. 필요에 따라 계정을 만들면 된다.
Meta for Developers > 내 앱 메뉴에서 앱을 선택한 다음 '제품' 영역에서 '마케팅 API' > '도구'를 선택한다. 그 후 '샌드박스 광고 계정' 버튼을 클릭한다.

아래와 같은 팝업이 뜨면 원하는 광고 계정 이름과 통화, 시간대를 선택하고 '만들기' 버튼을 클릭한다. 필요에 따라 페이지를 연결한다.

샌드박스 광고 계정을 만들면 그에 따른 액세스 토큰이 필요하다.
왼쪽 표시 영역은 광고 계정 ID로 따로 저장해 둔다. 그 후 오른쪽 표시 영역 버튼을 클릭해 액세스 토큰을 생성한다.

아래와 같은 팝업이 뜨면 '만들기'를 누르면 아래 빈 영역에 토큰이 생성된다. 액세스 토큰은 API 사용에 필요하므로 따로 저장해 둔다.

2. Python으로 마케팅 API 사용하기
이제 Python으로 마케팅 API 연결하는 소스를 작성한다. Meta for Developers > 제품 > 마케팅 API > 시작하기 메뉴를 클릭해 Facebook SDK와 샘플 소스를 받을 수 있다. 사용자 별로 API 사용에 필요한 앱 ID와 액세스 토큰 등을 포함한 소스를 주기 때문에 편하게 시작할 수 있다.
나는 처음에 샘플 소스를 받아서 연결하려 했는데 에러가 발생해 소스의 일부를 수정했다. 아래는 수정한 소스이며 라이브러리를 설치하고 Python으로 실행하면 API를 사용할 수 있다. 터미널에 아래 문구를 입력해 라이브러리를 설치한다.
pip install facebook-business
액세스 토큰, 앱 id, 앱 secret, 광고 계정 id, 샌드박스 광고 계정 확인하는 법
액세스 토큰
이전 포스트에서 발급한 영구 토큰 값을 사용합니다.
마케팅 API를 사용하기 위해서는 페이지 액세스 토큰이면서 필요한 권한이 설정된 액세스 토큰이어야 합니다.
앱 id 및 secret
https://developers.facebook.com/ > 내 앱 > 앱 선택 > 앱 설정 > 기본 설정
위 단계를 거치면 앱 id와 앱 시크릿 코드를 확인할 수 있습니다.
광고 계정 id
https://adsmanager.facebook.com/adsmanager/manage/accounts에서 확인 가능합니다. 우측 프로필 이름 밑에 광고 게정 id가 표시됩니다. 소스에서는 'act_광고계정ID' 형태로 작성해서 사용해야 합니다.
샌드박스 광고 계정 id 및 액세스 토큰
페이스북 광고 계정이 아닌 샌드박스 광고 계정 id를 사용하기 위해서는 그래프 API 탐색기에서 발급한 액세스 토큰을 사용할 수 없습니다.
https://developers.facebook.com/ > 내 앱 > 앱 선택 > 제품 > 마케팅 API > 도구에서 샌드박스 광고 계정 ID와 액세스 토큰 확인이 가능합니다. 계정 ID는 있지만 액세스 토큰이 없는 경우 위의 접은 글을 참고해 생성하면 된다. 샌드박스 광고 계정 ID 역시 소스에서는 'act_광고계정ID' 형태로 작성해서 사용해야 합니다.
이제 진짜 최종으로 Python 소스를 작성한다.
상세 fields와 params에 대한 설정은 페이스북 Campaign Insights를 확인해 필요한 값을 지정하면 된다.
일 별 데이터 가져오는 방법이 페이스북에서 준 방법과 달랐다. 자세한 사항은 위 링크를 통해 확인하면 된다.
from facebook_business.adobjects.adaccount import AdAccount
from facebook_business.adobjects.adsinsights import AdsInsights
from facebook_business.api import FacebookAdsApi
access_token = 'access_token'
app_secret = 'app_secret'
app_id = 'app_id'
ad_account_id = 'ad_account_id' # 'act_광고계정ID'
FacebookAdsApi.init(app_id=app_id, app_secret=app_secret, access_token=access_token)
fields=[
'impressions',
'spend',
'cpc',
'clicks',
]
params={
'time_range': {'since':'2023-11-19','until':'2023-12-19'},
'filtering': [],
'level': 'campaign',
# 'breakdowns': ['hourly_stats_aggregated_by_audience_time_zone'], # 시간 별
'time_increment': 1, # 1일 단위로 데이터 가져오기
}
print(AdAccount(ad_account_id).get_insights(
fields=fields,
params=params,
))
여기까지 페이스북의 마케팅 API 중 인사이트 API를 사용하는 방법이었다.
페이스북 API를 사용하는 방법은 여기서 크게 벗어나지 않는다. API 별로 앱 권한이나 액세스 토큰 범위가 다를 수는 있지만 앞의 과정을 참고해 필요한 권한을 설정하면 쉽게 이용 가능하다. 페이스북 API 문서가 자세히 작성되어 있기 때문에 적힌 순서대로 진행하면 큰 어려움 없이 활용할 수 있을 것이다.
출처
페이스북 인사이트 API : https://developers.facebook.com/docs/marketing-api/insights
캠페인 인사이트 : https://developers.facebook.com/docs/marketing-api/reference/ad-campaign-group/insights
'백엔드 > API' 카테고리의 다른 글
| Python으로 페이스북 마케팅 API 사용하기 - 2) 액세스 토큰 발급 받기 (1) | 2023.12.26 |
|---|---|
| Python으로 페이스북 마케팅 API 사용하기 - 1) 계정 생성 및 앱 만들기 (0) | 2023.12.22 |