use of com.google.api.ads.adwords.axis.v201809.cm.Paging in project googleads-java-lib by googleads.
the class SelectorBuilderTest method testUniqueInternalPagingState.
/**
* Tests that the built selectors don't share internal Paging state.
*/
@Test
public void testUniqueInternalPagingState() {
SelectorBuilder builder = new SelectorBuilder();
Selector selectorOne = builder.fields("Id").offset(10).build();
Selector selectorTwo = builder.fields(CampaignField.Status).offset(345).build();
assertEquals(10, selectorOne.getPaging().getStartIndex().intValue());
assertEquals(345, selectorTwo.getPaging().getStartIndex().intValue());
checkUtilitiesState(true);
}
use of com.google.api.ads.adwords.axis.v201809.cm.Paging in project googleads-java-lib by googleads.
the class SelectorBuilderTest method testPagingAndLimits.
/**
* Tests the offset, limit and paging logic of the builder.
*/
@Test
public void testPagingAndLimits() {
SelectorBuilder builder = new SelectorBuilder();
builder = builder.offset(10);
Selector selector = builder.build();
assertNotNull(selector.getPaging());
assertNotNull(selector.getPaging().getStartIndex());
assertNull(selector.getPaging().getNumberResults());
assertEquals(10, selector.getPaging().getStartIndex().intValue());
selector = builder.offset(10).limit(20).build();
assertNotNull(selector.getPaging());
assertNotNull(selector.getPaging().getStartIndex());
assertNotNull(selector.getPaging().getNumberResults());
assertEquals(10, selector.getPaging().getStartIndex().intValue());
assertEquals(20, selector.getPaging().getNumberResults().intValue());
selector = builder.offset(10).limit(20).increaseOffsetBy(5).build();
assertNotNull(selector.getPaging());
assertNotNull(selector.getPaging().getStartIndex());
assertNotNull(selector.getPaging().getNumberResults());
assertEquals(15, selector.getPaging().getStartIndex().intValue());
assertEquals(20, selector.getPaging().getNumberResults().intValue());
selector = builder.offset(10).limit(20).increaseOffsetBy(5).removeLimitAndOffset().build();
assertNull(selector.getPaging());
selector = builder.offset(10).limit(20).increaseOffsetBy(5).removeLimitAndOffset().offset(55).limit(4).build();
assertNotNull(selector.getPaging());
assertNotNull(selector.getPaging().getStartIndex());
assertNotNull(selector.getPaging().getNumberResults());
assertEquals(55, selector.getPaging().getStartIndex().intValue());
assertEquals(4, selector.getPaging().getNumberResults().intValue());
checkUtilitiesState(false);
}
use of com.google.api.ads.adwords.axis.v201809.cm.Paging in project googleads-java-lib by googleads.
the class SelectorBuilderImpl method build.
@Override
public Selector build() {
Selector selectorCopy = new Selector();
Set<OrderBy> orderingCopy = this.copyOrderingSet();
Set<Predicate> predicatesCopy = this.copyPredicatesSet();
selectorCopy.setFields(this.fields.toArray(new String[this.fields.size()]));
selectorCopy.setOrdering(orderingCopy.toArray(new OrderBy[this.ordering.size()]));
selectorCopy.setPredicates(predicatesCopy.toArray(new Predicate[this.predicates.size()]));
if (this.dateRange != null) {
selectorCopy.setDateRange(new DateRange(this.dateRange.getMin(), this.dateRange.getMax()));
}
if (this.paging != null) {
selectorCopy.setPaging(new Paging(this.paging.getStartIndex(), this.paging.getNumberResults()));
}
return selectorCopy;
}
use of com.google.api.ads.adwords.axis.v201809.cm.Paging in project googleads-java-lib by googleads.
the class GetKeywordIdeas method runExample.
/**
* Runs the example.
*
* @param adWordsServices the services factory.
* @param session the session.
* @param adGroupId the optional ID of the seed ad group.
* @throws ApiException if the API request failed with one or more service errors.
* @throws RemoteException if the API request failed due to other errors.
*/
public static void runExample(AdWordsServicesInterface adWordsServices, AdWordsSession session, @Nullable Long adGroupId) throws RemoteException {
// Get the TargetingIdeaService.
TargetingIdeaServiceInterface targetingIdeaService = adWordsServices.get(session, TargetingIdeaServiceInterface.class);
// Create selector.
TargetingIdeaSelector selector = new TargetingIdeaSelector();
selector.setRequestType(RequestType.IDEAS);
selector.setIdeaType(IdeaType.KEYWORD);
selector.setRequestedAttributeTypes(new AttributeType[] { AttributeType.KEYWORD_TEXT, AttributeType.SEARCH_VOLUME, AttributeType.AVERAGE_CPC, AttributeType.COMPETITION, AttributeType.CATEGORY_PRODUCTS_AND_SERVICES });
// Set selector paging (required for targeting idea service).
Paging paging = new Paging();
paging.setStartIndex(0);
paging.setNumberResults(10);
selector.setPaging(paging);
List<SearchParameter> searchParameters = new ArrayList<>();
// Create related to query search parameter.
RelatedToQuerySearchParameter relatedToQuerySearchParameter = new RelatedToQuerySearchParameter();
relatedToQuerySearchParameter.setQueries(new String[] { "bakery", "pastries", "birthday cake" });
searchParameters.add(relatedToQuerySearchParameter);
// Language setting (optional).
// The ID can be found in the documentation:
// https://developers.google.com/adwords/api/docs/appendix/languagecodes
// See the documentation for limits on the number of allowed language parameters:
// https://developers.google.com/adwords/api/docs/reference/latest/TargetingIdeaService.LanguageSearchParameter
LanguageSearchParameter languageParameter = new LanguageSearchParameter();
Language english = new Language();
english.setId(1000L);
languageParameter.setLanguages(new Language[] { english });
searchParameters.add(languageParameter);
// 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);
searchParameters.add(networkSearchParameter);
// Optional: Use an existing ad group to generate ideas.
if (adGroupId != null) {
SeedAdGroupIdSearchParameter seedAdGroupIdSearchParameter = new SeedAdGroupIdSearchParameter();
seedAdGroupIdSearchParameter.setAdGroupId(adGroupId);
searchParameters.add(seedAdGroupIdSearchParameter);
}
selector.setSearchParameters(searchParameters.toArray(new SearchParameter[searchParameters.size()]));
// Get keyword ideas.
TargetingIdeaPage page = targetingIdeaService.get(selector);
// Display keyword ideas.
for (TargetingIdea targetingIdea : page.getEntries()) {
Map<AttributeType, Attribute> data = Maps.toMap(targetingIdea.getData());
StringAttribute keyword = (StringAttribute) data.get(AttributeType.KEYWORD_TEXT);
IntegerSetAttribute categories = (IntegerSetAttribute) data.get(AttributeType.CATEGORY_PRODUCTS_AND_SERVICES);
String categoriesString = "(none)";
if (categories != null && categories.getValue() != null) {
categoriesString = Joiner.on(", ").join(Ints.asList(categories.getValue()));
}
Long averageMonthlySearches = ((LongAttribute) data.get(AttributeType.SEARCH_VOLUME)).getValue();
Money averageCpc = ((MoneyAttribute) data.get(AttributeType.AVERAGE_CPC)).getValue();
Double competition = ((DoubleAttribute) data.get(AttributeType.COMPETITION)).getValue();
System.out.printf("Keyword with text '%s', average monthly search volume %d, " + "average CPC %d, and competition %.2f " + "was found with categories: %s%n", keyword.getValue(), averageMonthlySearches, averageCpc.getMicroAmount(), competition, categoriesString);
}
if (page.getEntries() == null) {
System.out.println("No related keywords were found.");
}
}
use of com.google.api.ads.adwords.axis.v201809.cm.Paging in project googleads-java-lib by googleads.
the class SelectorBuilderImpl method increaseOffsetBy.
@Override
public SelectorBuilderImpl increaseOffsetBy(int additionalOffset) {
if (this.paging == null) {
this.paging = new Paging();
}
Integer startIndex = paging.getStartIndex();
if (startIndex == null) {
startIndex = 0;
}
this.paging.setStartIndex(startIndex + additionalOffset);
return this;
}
Aggregations