3겪은 일
성과를 끌어오는 스크립트

7월 26일 집계 스크립트를 만들었어요. 발행 기록에 있는 게시물마다 메타 그래프 API의 미디어 인사이트를 불러, 표지안별 평균을 표로 찍어요. 핵심은 아래 부분이에요.
import requests
METRICS = ["views", "reach", "likes", "comments", "saved", "shares", "total_interactions"]
def fetch(media_id, token, ver):
base = f"https://graph.facebook.com/{ver}/{media_id}/insights"
r = requests.get(base, params={"metric": ",".join(METRICS), "access_token": token}, timeout=30)
if r.status_code == 200:
return {d["name"]: d["values"][0]["value"] for d in r.json().get("data", [])}
out = {}
for m in METRICS: # 한꺼번에 거부되면 지표를 하나씩 다시 요청
rr = requests.get(base, params={"metric": m, "access_token": token}, timeout=30)
if rr.status_code == 200:
for d in rr.json().get("data", []):
out[d["name"]] = d["values"][0]["value"]
return out
지표를 한꺼번에 요청했다가 거부되면 하나씩 다시 묻는 것은 API 버전과 계정에 따라 나오지 않는 지표가 있어서예요. 결과 표 끝에는 «표본이 적으면(각 3건 미만) 우열을 단정하지 말 것. 최소 5건씩 쌓고 판단.»이라는 경고가 찍혀요.
메타 공식 문서를 보면 이 숫자들은 바로 나오지 않아요. 지표 계산에 쓰는 데이터는 최대 48시간 늦을 수 있고, 2년까지 보관돼요. 2024년 7월 2일 이후 올린 게시물은 노출 수(impressions) 지표가 중단됐어요. 이 스크립트는 조회수(views)를 써요.
이 글을 쓰며 이 스크립트를 실행해 보지는 않았어요. 운영 계정의 토큰이 필요해서예요.