サービスアカウント作成と連携
Google Ad Manager APIを利用するためにはOAuth2認証が必要。
いくつか方法があるけど今回はサービスアカウントを作成して認証されるようにします。
サービスアカウント作成
- Google Cloud Platformのコンソールからサービスアカウントを作成します
- 作成したサービスアカウントでjsonキーを作成します
- このjsonは後にプログラムからAPIに疎通する際に利用します
Google Ad Managerとサービスアカウントの連携
- Google Ad Manager側で管理者 > 全般設定からAPIアクセスを有効にします
- APIアクセスを有効にするとサービスアカウントユーザーを追加というボタンが現れます
- 先に作成したサービスアカウントを追加します
- 役割はAPIで利用したい機能に応じて設定する
Google Ad Manager APIを利用する
Python用ライブラリを読み込む
googleads/googleads-python-lib
- pipを推奨されてますがPoetryでも問題なく導入できました。
$ poetry add googleads
- 先の手順で取得したjsonを
credential.json
として保存して参照しています。
from googleads import ad_manager from googleads import oauth2 import os # 認証ファイルのpathを取得 script_dir = os.path.dirname(__file__) KEY_FILE = os.path.join(script_dir, 'credential.json') # 任意のアプリケーション名 APPLICATION_NAME = 'sample' def main(key_file, application_name): oauth2_client = oauth2.GoogleServiceAccountClient( key_file, oauth2.GetAPIScope('ad_manager')) ad_manager_client = ad_manager.AdManagerClient( oauth2_client, application_name) networks = ad_manager_client.GetService('NetworkService').getAllNetworks() for network in networks: print('Network with network code "%s" and display name "%s" was found.' % (network['networkCode'], network['displayName'])) if __name__ == '__main__': main(KEY_FILE, APPLICATION_NAME)
上記のコードを実行して
Network with network code "対象のネットワークコード" and display name "ネットワークの名称" was found.
が出力されれば疎通は成功です。
お疲れ様でした。