Here is the example:
package loader;
import java.io.IOException;
import java.util.Map;
import javax.xml.rpc.ServiceException;
import common.Constants;
import com.google.api.adwords.lib.AdWordsService;
import com.google.api.adwords.lib.AdWordsUser;
import com.google.api.adwords.lib.AuthToken;
import com.google.api.adwords.lib.AuthTokenException;
import com.google.api.adwords.lib.utils.MapUtils;
import com.google.api.adwords.v201209.cm.Language;
import com.google.api.adwords.v201209.cm.Location;
import com.google.api.adwords.v201209.cm.Paging;
import com.google.api.adwords.v201209.o.Attribute;
import com.google.api.adwords.v201209.o.AttributeType;
import com.google.api.adwords.v201209.o.IdeaType;
import com.google.api.adwords.v201209.o.LanguageSearchParameter;
import com.google.api.adwords.v201209.o.LocationSearchParameter;
import com.google.api.adwords.v201209.o.LongAttribute;
import com.google.api.adwords.v201209.o.RelatedToQuerySearchParameter;
import com.google.api.adwords.v201209.o.RequestType;
import com.google.api.adwords.v201209.o.SearchParameter;
import com.google.api.adwords.v201209.o.StringAttribute;
import com.google.api.adwords.v201209.o.TargetingIdea;
import com.google.api.adwords.v201209.o.TargetingIdeaPage;
import com.google.api.adwords.v201209.o.TargetingIdeaSelector;
import com.google.api.adwords.v201209.o.TargetingIdeaServiceInterface;
public class GoogleAdwordsClient {
private static AdWordsUser getAdWordsUser() {
try {
AdWordsUser user = new AdWordsUser(Constants.ADWORDS_USER, Constants.ADWORDS_PASSWORD, null, null,
LoaderConstants.ADWORDS_DEVELOPER_TOKEN, false);
if (user.getRegisteredAuthToken() == null) {
user.setAuthToken(new AuthToken(user.getEmail(), user.getPassword()).getAuthToken());
}
return user;
} catch (AuthTokenException e) {
throw new RuntimeException(e);
}
}
private static String[] getKeywords() {
//some logic to return array of keywords
}
public static void main(String[] args) throws ServiceException, IOException {
String[] keywords = getKeywords();
AdWordsUser user = getAdWordsUser();
TargetingIdeaServiceInterface targetingIdeaService = user
.getService(AdWordsService.V201209.TARGETING_IDEA_SERVICE);
TargetingIdeaSelector selector = new TargetingIdeaSelector();
selector.setRequestType(RequestType.STATS);
selector.setIdeaType(IdeaType.KEYWORD);
selector.setRequestedAttributeTypes(new AttributeType[] {
AttributeType.KEYWORD_TEXT,
AttributeType.SEARCH_VOLUME,
});
Language language = new Language();
language.setId(1000L);
// Countrycodes
// http://code.google.com/apis/adwords/docs/appendix/countrycodes.html
Location location = new Location();
location.setId(2840L);
RelatedToQuerySearchParameter relatedToQuerySearchParameter = new RelatedToQuerySearchParameter();
relatedToQuerySearchParameter.setQueries(keywords);
LocationSearchParameter locationSearchParameter = new LocationSearchParameter();
locationSearchParameter.setLocations(new Location[]{location});
LanguageSearchParameter languageSearchParameter = new LanguageSearchParameter();
languageSearchParameter.setLanguages(new Language[]{language});
selector.setSearchParameters(new SearchParameter[] { relatedToQuerySearchParameter
, locationSearchParameter, languageSearchParameter //if not provided locationSearchParameter, languageSearchParameter then result is global
});
selector.setLocaleCode("US");
Paging paging = new Paging();
paging.setStartIndex(0);
paging.setNumberResults(keywords.length);
selector.setPaging(paging);
TargetingIdeaPage page = targetingIdeaService.get(selector);
if (page.getEntries() != null && page.getEntries().length > 0) {
for (TargetingIdea targetingIdea : page.getEntries()) {
Map<AttributeType, Attribute> data = MapUtils.toMap(targetingIdea.getData());
String kwd = ((StringAttribute) data.get(AttributeType.KEYWORD_TEXT)).getValue();
Long monthlySearches = ((LongAttribute) data.get(AttributeType.SEARCH_VOLUME)).getValue();
System.out.println(kwd + ": " + monthlySearches);
}
}
}
}