And this is the program using the API:
for (String[] keyWordsArray : keyWordsList) { new ArrayList<TargetingIdea>(); TargetingIdeaServiceInterface targetingIdeaService = adWordsServices.get(session, TargetingIdeaServiceInterface.class);
// Create selector. TargetingIdeaSelector selector = new TargetingIdeaSelector(); selector.setRequestType(RequestType.STATS); selector.setIdeaType(IdeaType.KEYWORD); selector.setRequestedAttributeTypes( new AttributeType[] { AttributeType.SEARCH_VOLUME, AttributeType.KEYWORD_TEXT });
// Set selector paging (required for targeting idea service). Paging paging = new Paging(); paging.setStartIndex(0); paging.setNumberResults(1000); selector.setPaging(paging);
// Create related to query search parameter. RelatedToQuerySearchParameter relatedToQuerySearchParameter = new RelatedToQuerySearchParameter(); relatedToQuerySearchParameter.setQueries(keyWordsArray);
// Language setting (optional). // The ID can be found in the documentation: // See the documentation for limits on the number of allowed // language // parameters: LanguageSearchParameter languageParameter = new LanguageSearchParameter(); Language german = new Language(); german.setId(1001L); languageParameter.setLanguages(new Language[] { german });
LocationSearchParameter locationParameter = new LocationSearchParameter(); Location germany = new Location(); germany.setId(2276L); locationParameter.setLocations(new Location[] { germany });
// Create network search parameter (optional). NetworkSetting networkSetting = new NetworkSetting(); networkSetting.setTargetGoogleSearch(true); networkSetting.setTargetSearchNetwork(false); networkSetting.setTargetContentNetwork(false); networkSetting.setTargetPartnerSearchNetwork(false);
NetworkSearchParameter networkSearchParameter = new NetworkSearchParameter(); networkSearchParameter.setNetworkSetting(networkSetting);
selector.setSearchParameters(new SearchParameter[] { relatedToQuerySearchParameter, languageParameter, networkSearchParameter, locationParameter });
// Get related keywords. TargetingIdeaPage page = targetingIdeaService.get(selector);
// Display related keywords. if (page.getEntries() != null && page.getEntries().length > 0) { System.out.println("The page size is: " + page.getTotalNumEntries()); ArrayList<String> betweenList = new ArrayList<String>(); for (TargetingIdea targetingIdea : page.getEntries()) { Map<AttributeType, Attribute> data = Maps.toMap(targetingIdea.getData()); data.get(AttributeType.KEYWORD_TEXT); data.get(AttributeType.CATEGORY_PRODUCTS_AND_SERVICES); Long averageMonthlySearches = ((LongAttribute) data.get(AttributeType.SEARCH_VOLUME)).getValue(); String keywordText = ((StringAttribute) data.get(AttributeType.KEYWORD_TEXT)).getValue(); betweenList.add(keywordText); betweenList.add(Long.toString(averageMonthlySearches)); System.out.println( "Keyword with text " + keywordText + " and Search volume: " + averageMonthlySearches); } keyWordsWithSV.add(betweenList); } else { System.out.println("No related keywords were found."); } }