/** * 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 adGroupId the ID of the ad group to target with 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, Long adGroupId, AdCustomizerFeed adCustomizerFeed) { FeedItem feedItem = new FeedItem(); feedItem.setFeedId(adCustomizerFeed.getFeedId()); List<FeedItemAttributeValue> attributeValues = Lists.newArrayList(); // 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()])); feedItem.setAdGroupTargeting(new FeedItemAdGroupTargeting(adGroupId)); FeedItemOperation feedItemOperation = new FeedItemOperation(); feedItemOperation.setOperand(feedItem); feedItemOperation.setOperator(Operator.ADD); return feedItemOperation; }
/** * Creates a new AdCustomizerFeed. * * @param feedName the name of the new AdCustomizerFeed * @return The new AdCustomizerFeed */ private static AdCustomizerFeed createCustomizerFeed( AdWordsServices adWordsServices, AdWordsSession session, String feedName) throws Exception { // 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 and name '%s'.%n", addedFeed.getFeedId(), addedFeed.getFeedName()); return addedFeed; }