네이버 검색광고 API 다루기 (2)

하나의 폴더에 위 사진과 같이 ad_management_sample.py 파일과 signaturehelper.py 파일을 모두 위치시킵니다. 저는 주피터노트북 환경에서 코딩을 진행하므로 파이썬 파일(ad_management_sample.py)의 샘플 코드들을 주피터노트북 파일 (ad_management_sample.ipynb)에 복사-붙여넣기하고, 주피터노트북 상에서 진행하도록 하겠습니다.

샘플코드(ad_management_sample.py) 살펴보기

샘플코드의 최상단을 살펴보면 위와 같습니다. import 키워드로 time, random, requests모듈을 불러오며, 이 때 signaturehelper모듈도 함께 불러오게 되는데 이 모듈은 같은 폴더에 위치시켰던 signaturehelper.py파일입니다. 이 파일이 코드가 실행되는 폴더(Working directory)에 위치되어 있다면 정상적으로 불러오게 됩니다.

get_header함수가 정의되어 있습니다. 샘플 코드에서 서버에 응답을 요청할 때마다 헤더를 생성해주는 역할을 합니다. 전체 샘플 코드의 중하단부를 살펴보면, 각각의 서비스를 요청할 때 사용되는 requests모듈에 headers매개변수의 값으로 사용된 것을 확인할 수 있습니다.

서비스 요청URL과 사용자 인증정보를 할당하는 코드입니다. 첫 번째 변수로 각 서비스의 URI와 합쳐 요청URL을 만드는 BASE_URL이 있습니다. 그리고 네이버 검색광고 API 다루기 1편에서 검색광고 API 사용관리화면에서 확인할 수 있었던 액세스라이선스를 API_KEY에, 비밀키를 SECRET_KEY에, CUSTOMER_ID를 CUSTMER_ID에 붙여넣기 합니다.

Adgroup 서비스 요청하기

인증정보를 입력하는 코드 아래부터는 위 코드와 같이 API가 제공하는 서비스와 서비스 요청코드가 작성되어 있습니다. 위 코드는 Adgroup 서비스 요청코드인데요, 실행하면 현재 네이버 광고 콘솔에 등록되어 있는 광고그룹을 출력해 줍니다. 이 포스팅의 과정을 순서대로 따라오셨다면 간단하게 출력할 수 있습니다(출력 결과가 길어 일부만 출력하였습니다).

Stat 서비스 요청하기

광고 지표를 확인하기 위해서는 Stat 서비스를 사용해야 합니다. 위 코드에서는 실제 샘플코드의 stat_ids 변수를 주석처리하고 변수의 값을 다르게 할당하였는데요, Stat 서비스를 요청할 때에는 위와 같이 요청할 campaign id(혹은 Ad group id, Ad keyword id, Ad id)를 입력해야 합니다.

위 코드의 마지막 줄에 있는 r.json()이 서버에서 보내준 json 포맷의 데이터를 파이썬의 딕셔너리 형태로 파싱해주므로 광고지표를 파이썬에서 가공,처리하고 싶다면 r.json()을 변수에 담아서 pandas 라이브러리와 openpyxl모듈을 사용하여 데이터를 처리하면 됩니다.

campaign id확인 방법

Stat 서비스를 사용하기 위해서는 campaign id 정보(혹은 Ad group id, Ad keyword id, Ad id)를 stat_ids 변수에 할당해야 합니다.

광고 콘솔에서 campaign id를 확인하기 위해서는 왼쪽의 모든 캠페인을 누른 후, 오른쪽 사용자 설정버튼을 누르면 나타나는 사용자 설정 창에서 캠페인 ID를 체크하면 확인할 수 있습니다. 이와 같은 방법으로 Ad group id는 캠페인 내의 사용자 설정 창에서, Ad keyword id는 광고그룹 내의 사용자 설정창에서, Ad id는 소재 탭의 사용자 설청 창에서 확인할 수 있습니다.

4 thoughts on “네이버 검색광고 API 다루기 (2)”

  1. 안녕하세요 선생님, 잘보고 배우고있습니다.
    코드자체에는 이상이 없으나 한가지 궁금한게 있는데 혹시
    signaturehelper모듈은 꼭 signaturehelper.py 파일을 깔고 써야하는걸까요?
    검색광고 관련 exe파일을 만들려고하는데 signaturehelper 모듈이 파일이 하나 더 필요하다보니 안담기네요 ㅠㅠㅠ 혹시 방법을 아시는지..여쭤봅니당..

    응답
    • 안녕하세요, 제가 잠깐 살펴봤는데요!

      ad_management_sample을 살펴보시면 signaturehelper 모듈의 역할이 get_header를 정의할 때 사용되는데
      signaturehelper 모듈이 그리 복잡하지 않기 때문에
      굳이 ad_management_sample의 코드처럼 signaturehelper 모듈을 import하는 것이 아니라
      검색광고 데이터를 request하는 모듈 내에서 작동되도록 변형할 수 있지 않을까 합니다.

      위 방법이 진행되지 않는다면 아니라면 깔고 써야할 듯합니다.
      참고 부탁드립니다.

      감사합니다^^

      응답

Leave a Comment