如何在Googleads API TargetingIdeaService中指定自定义日期范围?
解决Google Ads API自定义日期范围获取关键词数据的问题
嘿,我正好碰到过类似的需求!TargetingIdeaService确实没办法直接指定自定义日期范围来获取搜索量和预测数据——它的MonthlySearchVolumeAttribute本来就是设计用来返回过去12个月的滚动统计数据,没法锁定固定的起止日期。不过有两个靠谱的替代方案可以满足你的需求:
方案1:用HistoricalMetricsService获取自定义日期范围的历史数据
如果你主要需要的是指定时间段内的关键词搜索量、点击率这类历史表现数据,HistoricalMetricsService是专门干这个的。你可以构造查询请求,明确指定日期范围和目标关键词列表。
举个Python的示例片段:
from google.ads.googleads.client import GoogleAdsClient from google.ads.googleads.v15.services.types.historical_metrics_service import ( HistoricalMetricsQuery, GetHistoricalMetricsRequest, ) def get_historical_metrics(client, customer_id, keywords, start_date, end_date): historical_metrics_service = client.get_service("HistoricalMetricsService") queries = [ HistoricalMetricsQuery( keywords=[keyword], start_date=start_date, end_date=end_date, # 还可以根据需求添加地理位置、语言等过滤条件 ) for keyword in keywords ] request = GetHistoricalMetricsRequest( customer_id=customer_id, queries=queries ) response = historical_metrics_service.get_historical_metrics(request) for result in response.results: print(f"关键词: {result.query}") print(f"指定日期总搜索量: {result.metrics.total_search_volume}") # 还可获取点击量、平均排名、点击率等其他历史指标
方案2:用KeywordPlanService做预算规划和预测数据
如果你的核心需求是像关键词规划师那样做预算规划、获取预测的曝光/点击/转化数据,那KeywordPlanService才是正确的工具。它允许你创建包含自定义日期范围的关键词计划,然后生成对应的预测指标。
大致步骤是:
- 创建
KeywordPlan,设置自定义日期范围(date_range字段指定start和end日期) - 创建关联的
KeywordPlanCampaign,设置预算、出价策略等参数 - 添加
KeywordPlanAdGroup和KeywordPlanKeyword(导入你的目标关键词列表) - 调用
generate_forecast_metrics方法获取预测数据
示例代码片段:
from google.ads.googleads.client import GoogleAdsClient from google.ads.googleads.v15.services.types.keyword_plan_service import ( GenerateForecastMetricsRequest, ) def create_keyword_plan_and_forecast(client, customer_id, keywords, start_date, end_date): keyword_plan_service = client.get_service("KeywordPlanService") # 1. 创建带自定义日期范围的KeywordPlan keyword_plan_operation = client.get_type("KeywordPlanOperation") keyword_plan = keyword_plan_operation.create keyword_plan.name = f"自定义日期关键词计划_{start_date}_{end_date}" keyword_plan.date_range.start_date = start_date keyword_plan.date_range.end_date = end_date # 后续需补充创建KeywordPlanCampaign、KeywordPlanAdGroup、KeywordPlanKeyword的代码 # (包含预算、出价、关键词导入等逻辑,这里省略具体构造细节) # ... # 提交创建请求,获取生成的keyword_plan资源名 response = keyword_plan_service.mutate_keyword_plans(customer_id, [keyword_plan_operation]) keyword_plan_resource = response.results[0].resource_name # 2. 生成预测数据 forecast_request = GenerateForecastMetricsRequest( customer_id=customer_id, keyword_plan=keyword_plan_resource ) forecast_response = keyword_plan_service.generate_forecast_metrics(forecast_request) # 处理并输出预测结果 for forecast in forecast_response.forecasts: print(f"预测总点击量: {forecast.metrics.clicks}") print(f"预测总花费: {forecast.metrics.cost_micros / 1000000} 美元") # 还可获取预测曝光量、点击率、转化量等指标
关键提醒
- TargetingIdeaService的定位是关键词发现工具,不是历史数据查询或预测分析工具,所以没必要在它上面纠结自定义日期的问题
- 确保使用Google Ads API的最新版本(比如v15及以上),旧版本可能部分功能受限
- 调用这些服务需要对应的API权限,比如
KeywordPlanService需要KeywordPlan相关的操作权限
内容的提问来源于stack exchange,提问作者taralam
相关产品推荐
相关产品推荐

