Exemplo n.º 1
0
    private static void createSiteLinksFeedMapping(
        AdWordsUser user, SiteLinksDataHolder siteLinksData) {
      // Get the FeedItemService.
      FeedMappingService feedMappingService =
        (FeedMappingService) user.GetService(AdWordsService.v201406.FeedMappingService);

      // Map the FeedAttributeIds to the fieldId constants.
      AttributeFieldMapping linkTextFieldMapping = new AttributeFieldMapping();
      linkTextFieldMapping.feedAttributeId = siteLinksData.LinkTextFeedAttributeId;
      linkTextFieldMapping.fieldId = PLACEHOLDER_FIELD_SITELINK_LINK_TEXT;
      AttributeFieldMapping linkUrlFieldMapping = new AttributeFieldMapping();
      linkUrlFieldMapping.feedAttributeId = siteLinksData.LinkUrlFeedAttributeId;
      linkUrlFieldMapping.fieldId = PLACEHOLDER_FIELD_SITELINK_URL;

      // Create the FieldMapping and operation.
      FeedMapping feedMapping = new FeedMapping();
      feedMapping.placeholderType = PLACEHOLDER_SITELINKS;
      feedMapping.feedId = siteLinksData.SiteLinksFeedId;
      feedMapping.attributeFieldMappings =
          new AttributeFieldMapping[] {linkTextFieldMapping, linkUrlFieldMapping};
      FeedMappingOperation operation = new FeedMappingOperation();
      operation.operand = feedMapping;
      operation.@operator = Operator.ADD;

      // Save the field mapping.
      FeedMappingReturnValue result =
          feedMappingService.mutate(new FeedMappingOperation[] {operation});
      foreach (FeedMapping savedFeedMapping in result.value) {
        Console.WriteLine(
            "Feed mapping with ID {0} and placeholderType {1} was saved for feed with ID {2}.",
            savedFeedMapping.feedMappingId, savedFeedMapping.placeholderType,
            savedFeedMapping.feedId);
      }
    }
    /// <summary>
    /// Creates a new FeedMapping that indicates how the data holder's feed
    /// should be interpreted in the context of ad customizers.
    /// </summary>
    /// <param name="user">The AdWords user.</param>
    /// <param name="dataHolder">The data holder that contains metadata about
    /// the customizer Feed.</param>
    private static void CreateFeedMapping(AdWordsUser user, CustomizersDataHolder dataHolder) {
      // Get the FeedMappingService.
      FeedMappingService feedMappingService = (FeedMappingService) user.GetService(
          AdWordsService.v201406.FeedMappingService);

      FeedMapping feedMapping = new FeedMapping();
      feedMapping.feedId = dataHolder.FeedId;
      feedMapping.placeholderType = PLACEHOLDER_AD_CUSTOMIZER;

      List<AttributeFieldMapping> attributeFieldMappings = new List<AttributeFieldMapping>();
      AttributeFieldMapping attributeFieldMapping;

      attributeFieldMapping = new AttributeFieldMapping();
      attributeFieldMapping.feedAttributeId = dataHolder.NameFeedAttributeId;
      attributeFieldMapping.fieldId = PLACEHOLDER_FIELD_STRING;
      attributeFieldMappings.Add(attributeFieldMapping);

      attributeFieldMapping = new AttributeFieldMapping();
      attributeFieldMapping.feedAttributeId = dataHolder.PriceFeedAttributeId;
      attributeFieldMapping.fieldId = PLACEHOLDER_FIELD_PRICE;
      attributeFieldMappings.Add(attributeFieldMapping);

      attributeFieldMapping = new AttributeFieldMapping();
      attributeFieldMapping.feedAttributeId = dataHolder.DateFeedAttributeId;
      attributeFieldMapping.fieldId = PLACEHOLDER_FIELD_DATE;
      attributeFieldMappings.Add(attributeFieldMapping);

      feedMapping.attributeFieldMappings = attributeFieldMappings.ToArray();

      FeedMappingOperation feedMappingOperation = new FeedMappingOperation();
      feedMappingOperation.operand = feedMapping;
      feedMappingOperation.@operator = Operator.ADD;

      FeedMapping addedFeedMapping =
          feedMappingService.mutate(new FeedMappingOperation[] { feedMappingOperation }).value[0];

      Console.WriteLine("Feed mapping with ID {0} and placeholder type {1} was added for " +
          "feed with ID {2}.",
          addedFeedMapping.feedMappingId, addedFeedMapping.placeholderType,
          addedFeedMapping.feedId);
    }