java - TargetingIdeaSelector Google Adwords - INVALID_SEARCH_PARAMETERS
问题描述
目前,我正在使用 TargetingIdeaService 来提供 Keyword Planner 功能的子集,方法是向 TargetingIdeaService.get 提供位置列表、语言和 RelatedToQuerySearchParameter 查询,以获取关键字列表及其相关数据。
我的 API 版本:V201806
但是,我得到了例外。
例外:
com.google.api.ads.adwords.axis.v201806.cm.ApiException) ApiException{applicationExceptionType=ApiException, errors=[TargetingIdeaError{apiErrorType=TargetingIdeaError, errorString=TargetingIdeaError.INVALID_SEARCH_PARAMETERS, fieldPath=selector.searchParameters.searchParameters[0], fieldPathElements=[FieldPathElement{field=selector}, FieldPathElement{field=searchParameters}, FieldPathElement{field=searchParameters, index=0}], reason=INVALID_SEARCH_PARAMETERS, trigger=LanguageSearchParameter}, TargetingIdeaError{apiErrorType=TargetingIdeaError, errorString=TargetingIdeaError.INVALID_SEARCH_PARAMETERS, fieldPath=selector.searchParameters.searchParameters[1], fieldPathElements=[FieldPathElement{field=selector}, FieldPathElement{field=searchParameters}, FieldPathElement{field=searchParameters, index=1}], reason=INVALID_SEARCH_PARAMETERS, trigger=LocationSearchParameter}, TargetingIdeaError{apiErrorType=TargetingIdeaError, errorString=TargetingIdeaError.INVALID_SEARCH_PARAMETERS, fieldPath=selector.searchParameters.searchParameters[2], fieldPathElements=[FieldPathElement{field=selector}, FieldPathElement{field=searchParameters}, FieldPathElement{field=searchParameters, index=2}], reason=INVALID_SEARCH_PARAMETERS, trigger=RelatedToQuerySearchParameter}]}
爪哇:
public TargetingIdea[] getClusterCol(ClientAccounts campInfo, String phrase, AccountDetails accDetails) throws ApiException, RemoteException, OAuthException {
ClientAccounts keyCol = new ClientAccounts();
GleServices gleServices = new GleServices();
TargetingIdea[] targetingIdea = null;
GoogleTokenResponse tokenResp = new GoogleTokenResponse();
tokenResp.setAccessToken(accDetails.getAccessToken());
tokenResp.setRefreshToken(accDetails.getRefreshToken());
gleServices.setAccountDetails(accDetails);
TargetingIdeaPage page = new TargetingIdeaPage();
try {
adWordsSession = gleServices.createAdWordsSession(clientId, clientSecret, tokenResp.getRefreshToken(), developerToken, userAgent);
} catch (ValidationException ex) {
Logger.getLogger(TenMinCampaignService.class.getName()).log(Level.SEVERE, null, ex);
}
TargetingIdeaServiceInterface targetingIdeaService = (TargetingIdeaServiceInterface) gleServices.getService(gleServices.TARGETING_IDEA_SERVICE, adWordsSession);
TargetingIdeaSelector selector = new TargetingIdeaSelector();
try {
selector.setRequestType(RequestType.IDEAS);
selector.setIdeaType(IdeaType.KEYWORD);
selector.setRequestedAttributeTypes(new AttributeType[]{AttributeType.KEYWORD_TEXT});
Paging paging = new Paging();
paging.setStartIndex(0);
paging.setNumberResults(200);
selector.setPaging(paging);
Location loc = new Location();
loc.setId(Long.valueOf(2356));
LocationSearchParameter countryTargetSearchParameter = new LocationSearchParameter();
countryTargetSearchParameter.setLocations(new Location[]{loc});
Language lang = new Language();
lang.setId(Long.valueOf(1000));
LanguageSearchParameter langTargetSearchParameter = new LanguageSearchParameter();
langTargetSearchParameter.setLanguages(new Language[]{lang});
RelatedToQuerySearchParameter relatedToQuerySearchParameter
= new RelatedToQuerySearchParameter();
relatedToQuerySearchParameter.setQueries(new String[]{"bakery"});
selector.setSearchParameters(new SearchParameter[]{relatedToQuerySearchParameter, countryTargetSearchParameter, langTargetSearchParameter});
page = targetingIdeaService.get(selector);
targetingIdea = page.getEntries();
} catch (ApiException e) {
for (ApiError er : e.getErrors()) {
if (er instanceof RateExceededError) {
try {
Thread.sleep(((RateExceededError) er).getRetryAfterSeconds()); // 30seconds
page = targetingIdeaService.get(selector);
targetingIdea = page.getEntries();
} catch (Exception th) {
e.printStackTrace();
throw e;
}
}
}
e.printStackTrace();
}
return targetingIdea;
}
任何帮助都会被挪用。
解决方案
推荐阅读
- r - 如何在闪亮中使用 actionButton 刷新或覆盖绘图
- asp.net-core - 如何使用 FluentEmail 和 MailKit 发送电子邮件并为每个租户指定 SmtpClientOptions?
- fp-ts - 如何使用 io-ts 解析和验证 JsonRecord?
- java - 当我尝试打开活动时,android应用程序崩溃
- java - java swing中绘制矩形的错误
- python - 如何修复 pylint 错误“不必要地使用理解”
- python - Python:根据标题将文本文件分成列表列表
- django - 在 django rest 框架中为模型创建通用视图集和序列化器
- python - 使用鼠标移动 GUI 窗口时的警告消息
- php - Codeigniter 4 ajax发布到控制器方法不起作用