Search in sources :

Example 1 with AdCustomizerFeed

use of com.google.api.ads.adwords.axis.v201809.cm.AdCustomizerFeed in project googleads-java-lib by googleads.

the class AddAdCustomizer method createCustomizerFeedItems.

/**
 * Creates FeedItems with the values to use in ad customizations for each ad group in
 * <code>adGroupIds</code>.
 */
private static void createCustomizerFeedItems(AdWordsServicesInterface adWordsServices, AdWordsSession session, List<Long> adGroupIds, AdCustomizerFeed adCustomizerFeed) throws RemoteException {
    // Get the FeedItemService.
    FeedItemServiceInterface feedItemService = adWordsServices.get(session, FeedItemServiceInterface.class);
    List<FeedItemOperation> feedItemOperations = new ArrayList<>();
    DateTime now = DateTime.now();
    DateTime marsDate = new DateTime(now.getYear(), now.getMonthOfYear(), 1, 0, 0);
    feedItemOperations.add(createFeedItemAddOperation("Mars", "$1234.56", marsDate.toString("yyyyMMdd HHmmss"), adCustomizerFeed));
    DateTime venusDate = new DateTime(now.getYear(), now.getMonthOfYear(), 15, 0, 0);
    feedItemOperations.add(createFeedItemAddOperation("Venus", "$1450.00", venusDate.toString("yyyyMMdd HHmmss"), adCustomizerFeed));
    FeedItemReturnValue feedItemReturnValue = feedItemService.mutate(feedItemOperations.toArray(new FeedItemOperation[feedItemOperations.size()]));
    for (FeedItem addedFeedItem : feedItemReturnValue.getValue()) {
        System.out.printf("Added feed item with ID %d.%n", addedFeedItem.getFeedItemId());
    }
    // Add feed item targeting to restrict the feed item to specific ad groups.
    restrictFeedItemToAdGroup(adWordsServices, session, feedItemReturnValue.getValue(0), adGroupIds.get(0));
    restrictFeedItemToAdGroup(adWordsServices, session, feedItemReturnValue.getValue(1), adGroupIds.get(1));
}
Also used : FeedItem(com.google.api.ads.adwords.axis.v201809.cm.FeedItem) FeedItemServiceInterface(com.google.api.ads.adwords.axis.v201809.cm.FeedItemServiceInterface) FeedItemReturnValue(com.google.api.ads.adwords.axis.v201809.cm.FeedItemReturnValue) ArrayList(java.util.ArrayList) FeedItemOperation(com.google.api.ads.adwords.axis.v201809.cm.FeedItemOperation) DateTime(org.joda.time.DateTime)

Example 2 with AdCustomizerFeed

use of com.google.api.ads.adwords.axis.v201809.cm.AdCustomizerFeed in project googleads-java-lib by googleads.

the class AddAdCustomizer method runExample.

/**
 * Runs the example.
 *
 * @param adWordsServices the services factory.
 * @param session the session.
 * @param adGroupIds IDs of the ad groups for which ad customizers will be created.
 * @param feedName the name of the ad customizer feed to create.
 * @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, List<Long> adGroupIds, String feedName) throws RemoteException {
    // Create a customizer feed. One feed per account can be used for all ads.
    AdCustomizerFeed adCustomizerFeed = createCustomizerFeed(adWordsServices, session, feedName);
    // Add feed items containing the values we'd like to place in ads.
    createCustomizerFeedItems(adWordsServices, session, adGroupIds, adCustomizerFeed);
    // All set! We can now create ads with customizations.
    createAdsWithCustomizations(adWordsServices, session, adGroupIds, feedName);
}
Also used : AdCustomizerFeed(com.google.api.ads.adwords.axis.v201809.cm.AdCustomizerFeed)

Example 3 with AdCustomizerFeed

use of com.google.api.ads.adwords.axis.v201809.cm.AdCustomizerFeed in project googleads-java-lib by googleads.

the class AddAdCustomizer method createCustomizerFeed.

/**
 * Creates a new AdCustomizerFeed.
 *
 * @param feedName the name of the new AdCustomizerFeed
 * @return The new AdCustomizerFeed
 */
private static AdCustomizerFeed createCustomizerFeed(AdWordsServicesInterface adWordsServices, AdWordsSession session, String feedName) throws RemoteException {
    // Get the AdCustomizerFeedService.
    AdCustomizerFeedServiceInterface adCustomizerFeedService = adWordsServices.get(session, AdCustomizerFeedServiceInterface.class);
    AdCustomizerFeed customizerFeed = new AdCustomizerFeed();
    customizerFeed.setFeedName(feedName);
    AdCustomizerFeedAttribute nameAttribute = new AdCustomizerFeedAttribute();
    nameAttribute.setName("Name");
    nameAttribute.setType(AdCustomizerFeedAttributeType.STRING);
    AdCustomizerFeedAttribute priceAttribute = new AdCustomizerFeedAttribute();
    priceAttribute.setName("Price");
    priceAttribute.setType(AdCustomizerFeedAttributeType.STRING);
    AdCustomizerFeedAttribute dateAttribute = new AdCustomizerFeedAttribute();
    dateAttribute.setName("Date");
    dateAttribute.setType(AdCustomizerFeedAttributeType.DATE_TIME);
    customizerFeed.setFeedAttributes(new AdCustomizerFeedAttribute[] { nameAttribute, priceAttribute, dateAttribute });
    AdCustomizerFeedOperation feedOperation = new AdCustomizerFeedOperation();
    feedOperation.setOperand(customizerFeed);
    feedOperation.setOperator(Operator.ADD);
    AdCustomizerFeed addedFeed = adCustomizerFeedService.mutate(new AdCustomizerFeedOperation[] { feedOperation }).getValue()[0];
    System.out.printf("Created ad customizer feed with ID %d, name '%s' and attributes:%n", addedFeed.getFeedId(), addedFeed.getFeedName());
    for (AdCustomizerFeedAttribute feedAttribute : addedFeed.getFeedAttributes()) {
        System.out.printf("  ID: %d, name: '%s', type: %s%n", feedAttribute.getId(), feedAttribute.getName(), feedAttribute.getType());
    }
    return addedFeed;
}
Also used : AdCustomizerFeedAttribute(com.google.api.ads.adwords.axis.v201809.cm.AdCustomizerFeedAttribute) AdCustomizerFeedServiceInterface(com.google.api.ads.adwords.axis.v201809.cm.AdCustomizerFeedServiceInterface) AdCustomizerFeed(com.google.api.ads.adwords.axis.v201809.cm.AdCustomizerFeed) AdCustomizerFeedOperation(com.google.api.ads.adwords.axis.v201809.cm.AdCustomizerFeedOperation)

Example 4 with AdCustomizerFeed

use of com.google.api.ads.adwords.axis.v201809.cm.AdCustomizerFeed in project googleads-java-lib by googleads.

the class AddAdCustomizer method createFeedItemAddOperation.

/**
 * Creates a FeedItemOperation that will create a FeedItem with the specified values and ad group
 * target when sent to FeedItemService.mutate.
 *
 * @param name the value for the name attribute of the FeedItem
 * @param price the value for the price attribute of the FeedItem
 * @param date the value for the date attribute of the FeedItem
 * @param adCustomizerFeed the customizer feed
 * @return a new FeedItemOperation for adding a FeedItem
 */
private static FeedItemOperation createFeedItemAddOperation(String name, String price, String date, AdCustomizerFeed adCustomizerFeed) {
    FeedItem feedItem = new FeedItem();
    feedItem.setFeedId(adCustomizerFeed.getFeedId());
    List<FeedItemAttributeValue> attributeValues = new ArrayList<>();
    // FeedAttributes appear in the same order as they were created - Name, Price, Date.
    // See the createCustomizerFeed method for details.
    FeedItemAttributeValue nameAttributeValue = new FeedItemAttributeValue();
    nameAttributeValue.setFeedAttributeId(adCustomizerFeed.getFeedAttributes(0).getId());
    nameAttributeValue.setStringValue(name);
    attributeValues.add(nameAttributeValue);
    FeedItemAttributeValue priceAttributeValue = new FeedItemAttributeValue();
    priceAttributeValue.setFeedAttributeId(adCustomizerFeed.getFeedAttributes(1).getId());
    priceAttributeValue.setStringValue(price);
    attributeValues.add(priceAttributeValue);
    FeedItemAttributeValue dateAttributeValue = new FeedItemAttributeValue();
    dateAttributeValue.setFeedAttributeId(adCustomizerFeed.getFeedAttributes(2).getId());
    dateAttributeValue.setStringValue(date);
    attributeValues.add(dateAttributeValue);
    feedItem.setAttributeValues(attributeValues.toArray(new FeedItemAttributeValue[attributeValues.size()]));
    FeedItemOperation feedItemOperation = new FeedItemOperation();
    feedItemOperation.setOperand(feedItem);
    feedItemOperation.setOperator(Operator.ADD);
    return feedItemOperation;
}
Also used : FeedItem(com.google.api.ads.adwords.axis.v201809.cm.FeedItem) FeedItemAttributeValue(com.google.api.ads.adwords.axis.v201809.cm.FeedItemAttributeValue) ArrayList(java.util.ArrayList) FeedItemOperation(com.google.api.ads.adwords.axis.v201809.cm.FeedItemOperation)

Aggregations

AdCustomizerFeed (com.google.api.ads.adwords.axis.v201809.cm.AdCustomizerFeed)2 FeedItem (com.google.api.ads.adwords.axis.v201809.cm.FeedItem)2 FeedItemOperation (com.google.api.ads.adwords.axis.v201809.cm.FeedItemOperation)2 ArrayList (java.util.ArrayList)2 AdCustomizerFeedAttribute (com.google.api.ads.adwords.axis.v201809.cm.AdCustomizerFeedAttribute)1 AdCustomizerFeedOperation (com.google.api.ads.adwords.axis.v201809.cm.AdCustomizerFeedOperation)1 AdCustomizerFeedServiceInterface (com.google.api.ads.adwords.axis.v201809.cm.AdCustomizerFeedServiceInterface)1 FeedItemAttributeValue (com.google.api.ads.adwords.axis.v201809.cm.FeedItemAttributeValue)1 FeedItemReturnValue (com.google.api.ads.adwords.axis.v201809.cm.FeedItemReturnValue)1 FeedItemServiceInterface (com.google.api.ads.adwords.axis.v201809.cm.FeedItemServiceInterface)1 DateTime (org.joda.time.DateTime)1