約莫經營流量變現三年多,大部分的工作都是靠 adsense/admob 網站就夠用了,但如果要整合到其他儀表板的話,就必須靠 AdMob/AdSense API 來撈點資料。
原先一直只靠 AdSense API 做事,但是舊版 AdSense API 在 2021-10-12 下線了,接著新版 AdSense API 就不在有 AdMob 數據,因此需要分開存取。
筆記瑣事:
- 使用 Python3 開發,並安裝套件相關套件
- google-api-python-client
- google-auth-oauthlib
- AdSense 跟 AdMob 授權的 Scope 是分開的
- 'https://www.googleapis.com/auth/admob.readonly'
- 'https://www.googleapis.com/auth/adsense.readonly'
- Google 專案必須分別啟用 AdSense Management api 跟 AdMob api 使用權
- Google 專案的憑證,只需使用 "OAuth 2.0 用戶端 ID" ,並採用 "電腦版應用程式" 即可
- AdSense 跟 AdMob API 輸出的 DATE 欄位的格式不同
- "2021-10-26"
- "20211026"
因此,若要符合之前舊版 Adsense 的輸出,需要分別使用 AdSense api v2 跟 AdMob API v1 來整理數據,例如先將 AdMob 收益用日期作為關鍵字紀錄,接著輸出 AdSense 來源時,在計算當日營收時,再順便查表累計 AdMob 收益。
完整程式碼:
- github.com/changyy/helper-study/tree/master/python3/admob-api
- github.com/changyy/helper-study/tree/master/python3/adsense-management-api
AdSense API片段程式碼:
result = service.accounts().reports().generate(account=account_id,dateRange='CUSTOM',startDate_year=startDate['year'],startDate_month=startDate['month'],startDate_day=startDate['day'],endDate_year=endDate['year'],endDate_month=endDate['month'],endDate_day=endDate['day'],metrics=output['data']['metrics'],dimensions=output['data']['dimensions'],currencyCode="USD",reportingTimeZone="ACCOUNT_TIME_ZONE",).execute()
AdMob API 片段程式碼:
result = service.accounts().networkReport().generate(parent=account_id,body= {'reportSpec': {'dateRange' : {'startDate': output['data']['startDate'],'endDate': output['data']['endDate'],},'dimensions': output['data']['dimensions'],'metrics': output['data']['metrics'],'localizationSettings': {'currencyCode': 'USD','languageCode': 'en-US',},},},).execute()
沒有留言:
張貼留言