Google Ads API V13中LanguageConstantService替代方案及语言设置方法
Google Ads API V13 中 LanguageConstantService 的替代方案及语言设置方法
问题背景
原代码通过LanguageConstantService获取语言资源名的方式在V13版本已被移除,运行时会触发报错:
ValueError: Specified service LanguageConstantService does not exist in Google Ads API v13.
替代方案
在Google Ads API V13及后续版本中,语言参数的设置不再依赖废弃的LanguageConstantService,可通过以下两种方式实现:
直接构造语言资源名
语言常量的资源名格式固定为 languageConstants/{language_id},比如英文(语言ID为1000)的资源名就是 languageConstants/1000。无需调用废弃服务,直接构造字符串即可替换原代码片段:
# 直接构造语言资源名,替代原LanguageConstantService调用逻辑 language_rn = f"languageConstants/{language_id}"
动态查询语言常量(可选)
如果需要根据语言编码(如en、zh-CN)动态获取资源名,可通过GoogleAdsService执行查询:
from google.ads.googleads.client import GoogleAdsClient def get_language_resource_name(client, language_code): query = f""" SELECT language_constant.resource_name, language_constant.id FROM language_constant WHERE language_constant.code = '{language_code}' """ ga_service = client.get_service("GoogleAdsService") # 替换为你的客户ID response = ga_service.search(customer_id="YOUR_CUSTOMER_ID", query=query) for row in response: return row.language_constant.resource_name return None # 使用示例:获取中文(简体)的资源名 language_rn = get_language_resource_name(client, "zh-CN")
在关键词规划请求中配置语言
构造好语言资源名后,将其传入关键词规划请求的language_constants字段即可,示例如下:
keyword_plan_service = client.get_service("KeywordPlanService") request = client.get_type("GenerateKeywordIdeasRequest") request.customer_id = "YOUR_CUSTOMER_ID" # 添加语言资源名 request.language_constants.append(language_rn) # 配置其他参数(如地域、关键词种子等) # ... response = keyword_plan_service.generate_keyword_ideas(request=request)
内容的提问来源于stack exchange,提问作者Ali Esmaeili
相关产品推荐
相关产品推荐

