안녕하세요 개발자 정씨입니다.
거두절미하고 바로 기능 부분 살펴보도록 하겠습니다
1. adgroup id 획득
- CUSTOMER_ID에 등록된 campaign 리스트를 획득한 뒤, setting.py에서 설정한 campaign의 id값을 색출합니다.
- 획득한 campaign id를 이용하여, adgroup 리스트를 획득한 뒤, setting.py에서 설정한 adgroup의 id값을 색출합니다.
def get_adgroup_id() :
uri = '/ncc/campaigns'
method = 'GET'
r = requests.get(setting.BASE_URL + uri, headers=get_header(method, uri, setting.API_KEY, setting.SECRET_KEY, setting.CUSTOMER_ID))
for i in r.json():
if(i['name'] == setting.campaign_name) :
campaign_id = i['nccCampaignId']
uri = '/ncc/adgroups'
method = 'GET'
r = requests.get(setting.BASE_URL + uri, params={'nccCampaignId': campaign_id} ,headers=get_header(method, uri, setting.API_KEY, setting.SECRET_KEY, setting.CUSTOMER_ID))
for i in r.json():
if(i['name'] == setting.adgroup_name) :
adgroup_id = i['nccAdgroupId']
return adgroup_id
2. keyword id 획득
- setting.py에서 설정한 keyword값을 기반으로 id값을 획득합니다. (파워링크에서 사용)
def get_keyword_id() :
uri = '/ncc/keywords'
method = 'GET'
r = requests.get(setting.BASE_URL + uri, params={'nccAdgroupId': get_adgroup_id()} ,headers=get_header(method, uri, setting.API_KEY, setting.SECRET_KEY, setting.CUSTOMER_ID))
for i in r.json():
if(i['keyword'] == setting.modify_word) :
keyword_id = i['nccKeywordId']
return keyword_id
3. ad id 획득
- setting.py에서 설정한 ad값을 기반으로 id값을 획득합니다. (쇼핑검색에서 사용)
def get_ad_id() :
uri = '/ncc/ads'
method = 'GET'
r = requests.get(setting.BASE_URL + uri, params={'nccAdgroupId': get_adgroup_id()} ,headers=get_header(method, uri, setting.API_KEY, setting.SECRET_KEY, setting.CUSTOMER_ID))
for i in r.json():
if(i['referenceData']['id'] == setting.modify_word) :
ad_id = i['nccAdId']
return ad_id
4. 금액 값 획득
- 2,3번에서 알아낸 keyword id와 ad id로 현재 금액 설정을 확인함
def get_amount_by_keyword_id() :
uri = '/ncc/keywords'
method = 'GET'
r = requests.get(setting.BASE_URL + uri, params={'nccAdgroupId': get_adgroup_id()} ,headers=get_header(method, uri, setting.API_KEY, setting.SECRET_KEY, setting.CUSTOMER_ID)
for i in r.json():
if(i['keyword'] == setting.modify_word) :
amount = i['bidAmt']
return amount
def get_amount_by_ad_id() :
uri = '/ncc/ads'
method = 'GET'
r = requests.get(setting.BASE_URL + uri, params={'nccAdgroupId': get_adgroup_id()} ,headers=get_header(method, uri, setting.API_KEY, setting.SECRET_KEY, setting.CUSTOMER_ID))
for i in r.json():
if(i['referenceData']['id'] == setting.modify_word) :
amount = i['adAttr']['bidAmt']
return amount
- 위의 함수들을 토대로 크롤링으로 서치한 등수와 setting.py에서 세팅한 등수를 비교하여 금액을 변경하는 함수는 아래와 같습니다.
def change_amount(cmd) :
if(cmd == "up") :
if(setting.adtype == '쇼핑검색') :
print("초기금액: " + str(get_amount_by_ad_id()) + "원")
uri = '/ncc/ads/' + get_ad_id()
method = 'GET'
r = requests.get(setting.BASE_URL + uri, headers=get_header(method, uri, setting.API_KEY, setting.SECRET_KEY, setting.CUSTOMER_ID))
retrieved_adkeyword = r.json()
uri = '/ncc/ads'
method = 'PUT'
retrieved_adkeyword['adAttr']['bidAmt'] = get_amount_by_ad_id() + setting.amount_unit
r = requests.put(setting.BASE_URL + uri, params={'fields': 'adAttr'}, json=[retrieved_adkeyword], headers=get_header(method, uri, setting.API_KEY, setting.SECRET_KEY, setting.CUSTOMER_ID))
print("변경된 금액: " + str(get_amount_by_ad_id()) + "원")
elif(setting.adtype == '파워링크') :
print("초기금액: " + str(get_amount_by_keyword_id()) + "원")
uri = '/ncc/keywords/' + get_keyword_id()
method = 'GET'
r = requests.get(setting.BASE_URL + uri, headers=get_header(method, uri, setting.API_KEY, setting.SECRET_KEY, setting.CUSTOMER_ID))
retrieved_adkeyword = r.json()
uri = '/ncc/keywords'
method = 'PUT'
retrieved_adkeyword['bidAmt'] = get_amount_by_keyword_id() + setting.amount_unit
retrieved_adkeyword['useGroupBidAmt'] = 0
r = requests.put(setting.BASE_URL + uri, params={'fields': 'bidAmt'}, json=[retrieved_adkeyword], headers=get_header(method, uri, setting.API_KEY, setting.SECRET_KEY, setting.CUSTOMER_ID))
print("변경된 금액: " + str(get_amount_by_keyword_id()) + "원")
if(cmd == "down") :
if(setting.adtype == '쇼핑검색') :
print("초기금액: " + str(get_amount_by_ad_id()) + "원")
uri = '/ncc/ads/' + get_ad_id()
method = 'GET'
r = requests.get(setting.BASE_URL + uri, headers=get_header(method, uri, setting.API_KEY, setting.SECRET_KEY, setting.CUSTOMER_ID))
retrieved_adkeyword = r.json()
uri = '/ncc/ads'
method = 'PUT'
retrieved_adkeyword['adAttr']['bidAmt'] = get_amount_by_ad_id() - setting.amount_unit
r = requests.put(setting.BASE_URL + uri, params={'fields': 'adAttr'}, json=[retrieved_adkeyword], headers=get_header(method, uri, setting.API_KEY, setting.SECRET_KEY, setting.CUSTOMER_ID))
print("변경된 금액: " + str(get_amount_by_ad_id()) + "원")
elif(setting.adtype == '파워링크') :
print("초기금액: " + str(get_amount_by_keyword_id()) + "원")
uri = '/ncc/keywords/' + get_keyword_id()
method = 'GET'
r = requests.get(setting.BASE_URL + uri, headers=get_header(method, uri, setting.API_KEY, setting.SECRET_KEY, setting.CUSTOMER_ID))
retrieved_adkeyword = r.json()
uri = '/ncc/keywords'
method = 'PUT'
retrieved_adkeyword['bidAmt'] = get_amount_by_keyword_id() - setting.amount_unit
retrieved_adkeyword['useGroupBidAmt'] = 0
r = requests.put(setting.BASE_URL + uri, params={'fields': 'bidAmt'}, json=[retrieved_adkeyword], headers=get_header(method, uri, setting.API_KEY, setting.SECRET_KEY, setting.CUSTOMER_ID))
print("변경된 금액: " + str(get_amount_by_keyword_id()) + "원")
이상으로 모든 기능 구현을 마쳤습니다.
질문은 언제나 환영입니다. 감사합니다.
'Naver Search AD' 카테고리의 다른 글
Chapter5 - Naver SearchAD API 분석 (0) | 2019.12.16 |
---|---|
Chapter4 - 데이터 크롤링 (4) | 2019.12.16 |
Chapter3 - 알고리즘 & NaverAD 분석 (0) | 2019.12.16 |
Chapter2 - Github 프로젝트 생성 (0) | 2019.09.10 |
Chapter1 - 프로젝트 개요 및 계획 (0) | 2019.06.29 |