GoogleAdsAPI使用指南
Google Ads 是 Google 的一个广告投放工具,本指南提供 Google Ads API 的使用与集成解决方案。
pip install google-ads3.1. OAuth2.0
Section titled “3.1. OAuth2.0”-
在 GCP 项目中创建 OAuth2.0 Client 授权信息(可以使用 desktop 类型):

-
在 Ads 经理账户(需要正式账户)中创建 Developer Token:

-
获取对应的 Ads 账户 ID 信息:

一般需获取 Manager Account ID、Account ID。
-
授权并且初始化客户端:
import osfrom google.ads.googleads.client import GoogleAdsClientfrom google.oauth2.credentials import Credentialsfrom google_auth_oauthlib.flow import InstalledAppFlowfrom google.auth.transport.requests import Request
client_account_path = "client_account.json" # GCP 生成的授权文件client_accountbat_path = "client_account.bat" # 授权缓存路径scope = ["https://www.googleapis.com/auth/adwords"] # 授权范围
manager_account_id = "" # 经理账户 IDdeveloper_token = "" # Ads 生成的 developer token 信息
if os.path.exists(client_accountbat_path): credentials = Credentials.from_authorized_user_file(client_accountbat_path, scope) if not credentials or not credentials.valid: if credentials and credentials.expired and credentials.refresh_token: credentials.refresh(Request()) else: flow = InstalledAppFlow.from_client_secrets_file(client_account_path, scope) credentials = flow.run_local_server(port=0) with open(client_accountbat_path, 'w') as token: token.write(credentials.to_json())
client = GoogleAdsClient(credentials=credentials, developer_token=developer_token, login_customer_id=manager_account_id)-
授权效果展示:

3.2. Server Account
Section titled “3.2. Server Account”-
在 GCP 项目中创建 Server Account 授权信息:

-
注册 Google Workspace:

-
取消 Workspace 服务订阅:

-
验证 Workspace 网域:

-
Google Workspace 添加对应服务账户:

-
将 Email 分配到对应的 Google Ads 账户:

-
在 Ads 经理账户(需要正式账户)中创建 Developer Token:

-
获取对应的 Ads 账户 ID 信息:

一般需获取 Manager Account ID、Account ID。
-
授权并且初始化客户端:
from google.ads.googleads.client import GoogleAdsClient
server_account_path = "server_account.json" # GCP 生成的授权文件scope = ["https://www.googleapis.com/auth/adwords"] # 授权范围
manager_account_id = "" # 经理账户 IDdeveloper_token = "" # Ads 生成的 developer token 信息workspace_email = ""
credentials = { "developer_token": developer_token, "json_key_file_path": server_account_path, "impersonated_email": workspace_email, "login_customer_id": manager_account_id, "use_proto_plus": False}client = GoogleAdsClient.load_from_dict(credentials)- 获取对应服务类型:
ga_service = client.get_service("GoogleAdsService")- 调取 API:
account_id = "" # ads 账户 IDstream = ga_service.search_stream(customer_id=account_id, query="select campaign.name from campaign")for batch in stream: for row in batch.results: print( f"Campaign with ID {row.campaign.id} and name " f'"{row.campaign.name}" was found.' )5. 拓展信息
Section titled “5. 拓展信息”- 账户分类
- 账户结构
- 经理账户:可以创建多个客户账户;并且只有经理账户可以创建 Developer Token。
- 客户账户:用于真实的广告投放。
- 账户类型
- 正式账户:可以投放广告;并且 Developer Token 只有基础类型与标准类型可以调取该账户类型 API,测试类型不可以调取。
- 测试账户:不可以投放广告;并且 Developer Token 基础类型、标准类型和测试类型都可以调取该账户类型 API。
- 账户结构
- Developer Token
-
分类
- 测试:只可以调取测试账户。
- 基础:可以调取所有类型账户,有额度限制。
- 标准:可以调取所有类型账户,没有额度限制。
-
限制
- 每个 Token 会在第一个请求中与 GCP 授权项目(生成 OAuth2.0 或者 Server Account 的项目)进行绑定,并且该绑定是永久的。如果重新生成了 Token,则该 GCP 必须重新创建(一个 Token 可以对应多个 GCP 项目)。
-