정말 모두 가져와야하는 데이터인지 고민해보기.

2024년 7월 3일 수요일

Today I Learned

날짜

2024년 7월 3일 수요일

내용

데이터륿 받아오는 시점

아임 리포트 개발을 진행중 예상치 못한 부분이 나타났다. 유저가 네이버 검색광고 계정을 등록하면 필요한 데이터를 가져오도록 개발했다. 순서대로

관리자 계정 → 관리자 계정에서 관리하는 모든 계정들 → 각 계정들 내에 존재하는 모든 캠페인 → 각 캠페인 내에 존재하는 모든 광고그룹 → 각 광고그룹 내에 존재하는 모든 키워드

를 가져오도록 해놨다. 필요한 데이터를 조회할 떄, 키워드별도 존재하고 광고그룹 별도 존재하고 여러가지가 있는데 매번 필요한걸 네이버 API에서 가져오는게 불필요하다고 생각했다. 어차피 매일 쓸건데 가지고 있는게 낫지 않을까?

테스트를 할수 있는 계정으로 데이터들을 가져왔는데, 관리하는 계정이 70개였다. 이 계정들에 포함된 캠페인은 총 415개였고, 광고그룹은 3160개가 존재했다. 키워드를 다 가져와보니 417231개였다. 단 하나의 관리자 계정에서..! 태웅님께 여쭤보니 더 큰 광고대행사는 관리하는 계정이 더 많다고 하신다. 이 요청만 처리하는데 15분이 걸렸는데.. 그럼 150개의 브랜드를 관리하는 광고대행사는 로그인 후 계정 등록에만 30분을 기다려야한다.

알고보니 70개 중 사용하게 될 계정은 10개 이하쯤이라고 한다. 각 계정 별로 필요할 때 데이터를 가져오도록 바꾸었다. 로우데이터를 만들 때, 가져온 적이 없는 계정이라면 그 계정의 캠페인, 광고그룹, 키워드를 가져오면 된다. 큰일날뻔…

네이버 검색광고 API

필요한 데이터륿 불러오기 위해, 열심히 네이버 검색광고 Docs 를 보면서 작업중이다. 깃헙 페이지로 구현한, 아주 오래된 흔적이 가득한 공간이다. 근데 갑자기 3시쯤 부터 고장났다. 페이지가 안켜진다. 나도 블로그를 깃헙페이지로 관리하느라 당황하지 않고 상황을 파악했다. 네이버 검색광고 팀에서 페이지 Repository에 jekyll-gh-pages.yml 을 생성하여 배포하자마자 고장났다는 걸 발견했다. 빠르게 팀에게 알렸다.

1.webp

따봉받았다.

그나저나 기기별(PC와 모바일)로 필요한 데이터를 받아와야 하는데, 파라미터가 작동을 안한다. 요청이 안가지면 뭔가 잘못됬겠거니 싶은데 해당 파라미터가 없는것처럼 작동한다.

1
2
3
4
5
6
7
8
9
10
11
12
campaign = "cmp-id"
fields = ["salesAmt", "impCnt", "clkCnt", "ccnt", "convAmt"]
params = {
    "id": campaign,
    "fields": json.dumps(fields),
    "timeRange": json.dumps(time_range),
    "timeIncrement": 1,
    "breakdown": "도대체왜안되냐고",
}
res = requests.get(url=NAVER_URL + uri, headers=headers, params=params)
res = res.json()
return res

이런식으로 보내도, 저 breakdown 이 없는것처럼 응답이온다. 저 파라미터는 도대체 왜 작동을 안하는건가!

회고

다시 한번 네이버쪽에 질문을 올렸다. 친절하게 따봉도 주고받은 사이니까 답변해주겠지?