/// <summary> /// Runs the code example. /// </summary> /// <param name="user">The AdWords user.</param> /// <param name="campaignId">Id of the campaign for which disapproved ads /// are retrieved.</param> public void Run(AdWordsUser user, long campaignId) { // Get the AdGroupAdService. AdGroupAdService service = (AdGroupAdService) user.GetService(AdWordsService.v201306.AdGroupAdService); // Create the selector. Selector selector = new Selector(); selector.fields = new string[] {"Id", "AdGroupCreativeApprovalStatus", "DisapprovalReasons"}; // Create the filter. Predicate campaignPredicate = new Predicate(); campaignPredicate.@operator = PredicateOperator.EQUALS; campaignPredicate.field = "CampaignId"; campaignPredicate.values = new string[] {campaignId.ToString()}; Predicate approvalPredicate = new Predicate(); approvalPredicate.@operator = PredicateOperator.EQUALS; approvalPredicate.field = "AdGroupCreativeApprovalStatus"; approvalPredicate.values = new string[] {AdGroupAdApprovalStatus.DISAPPROVED.ToString()}; selector.predicates = new Predicate[] {campaignPredicate, approvalPredicate}; // Set the selector paging. selector.paging = new Paging(); int offset = 0; int pageSize = 500; AdGroupAdPage page = new AdGroupAdPage(); try { do { selector.paging.startIndex = offset; selector.paging.numberResults = pageSize; // Get the disapproved ads. page = service.get(selector); // Display the results. if (page != null && page.entries != null) { int i = offset; foreach (AdGroupAd adGroupAd in page.entries) { Console.WriteLine("{0}) Ad id {1} has been disapproved for the following " + "reason(s):", i, adGroupAd.ad.id); foreach (string reason in adGroupAd.ad.disapprovalReasons) { Console.WriteLine(" {0}", reason); } i++; } } offset += pageSize; } while (offset < page.totalNumEntries); Console.WriteLine("Number of disapproved ads found: {0}", page.totalNumEntries); } catch (Exception ex) { throw new System.ApplicationException("Failed to get disapproved ads.", ex); } }
/// <summary> /// Runs the code example. /// </summary> /// <param name="user">The AdWords user.</param> public void Run(AdWordsUser user) { // Get the CampaignService. CampaignService campaignService = (CampaignService) user.GetService(AdWordsService.v201306.CampaignService); // Create the selector. Selector selector = new Selector(); selector.fields = new string[] {"Id", "Name", "Status", "Impressions", "Cost", "Ctr"}; // Create the predicates. Predicate predicate = new Predicate(); predicate.field = "Impressions"; predicate.@operator = PredicateOperator.GREATER_THAN; predicate.values = new string[] {"0"}; selector.predicates = new Predicate[] {predicate}; // Set the date range. DateRange dateRange = new DateRange(); dateRange.min = DateTime.Now.AddDays(-8).ToString("yyyyMMdd"); dateRange.max = DateTime.Now.AddDays(-1).ToString("yyyyMMdd"); selector.dateRange = dateRange; // Set the selector paging. selector.paging = new Paging(); int offset = 0; int pageSize = 500; CampaignPage page = new CampaignPage(); try { do { selector.paging.startIndex = offset; selector.paging.numberResults = pageSize; // Get the campaigns. page = campaignService.get(selector); // Display the results. if (page != null && page.entries != null) { int i = offset; foreach (Campaign campaign in page.entries) { Console.WriteLine("{0}) Campaign with id = '{1}', name = '{2}' had the following " + "stats last week", i + 1, campaign.id, campaign.name); Console.WriteLine(" Clicks: {0}, Impressions: {1}, Cost: {2} micros. Ctr: {3}", campaign.campaignStats.clicks, campaign.campaignStats.impressions, campaign.campaignStats.cost,campaign.campaignStats.ctr); i++; } } offset += pageSize; } while (offset < page.totalNumEntries); Console.WriteLine("Number of matching campaigns found: {0}", page.totalNumEntries); } catch (Exception ex) { throw new System.ApplicationException("Failed to retrieve matching campaigns", ex); } }
/// <summary> /// Runs the code example. /// </summary> /// <param name="user">The AdWords user.</param> public void Run(AdWordsUser user) { // Get the LocationCriterionService. LocationCriterionService locationCriterionService = (LocationCriterionService) user.GetService(AdWordsService.v201306. LocationCriterionService); string[] locationNames = new string[] {"Paris", "Quebec", "Spain", "Deutschland"}; Selector selector = new Selector(); selector.fields = new string[] {"Id", "LocationName", "CanonicalName", "DisplayType", "ParentLocations", "Reach", "TargetingStatus"}; // Location names must match exactly, only EQUALS and IN are supported. Predicate predicate1 = new Predicate(); predicate1.field = "LocationName"; predicate1.@operator = PredicateOperator.IN; predicate1.values = locationNames; // Set the locale of the returned location names. Predicate predicate2 = new Predicate(); predicate2.field = "Locale"; predicate2.@operator = PredicateOperator.EQUALS; predicate2.values = new string[] {"en"}; selector.predicates = new Predicate[] {predicate1, predicate2}; try { // Make the get request. LocationCriterion[] locationCriteria = locationCriterionService.get(selector); // Display the resulting location criteria. foreach (LocationCriterion locationCriterion in locationCriteria) { string parentLocations = ""; if (locationCriterion.location != null && locationCriterion.location.parentLocations != null) { foreach (Location location in locationCriterion.location.parentLocations) { parentLocations += GetLocationString(location) + ", "; } parentLocations.TrimEnd(',', ' '); } else { parentLocations = "N/A"; } Console.WriteLine("The search term '{0}' returned the location '{1}' of type '{2}' " + "with parent locations '{3}', reach '{4}' and targeting status '{5}.", locationCriterion.searchTerm, locationCriterion.location.locationName, locationCriterion.location.displayType, parentLocations, locationCriterion.reach, locationCriterion.location.targetingStatus); } } catch (Exception ex) { throw new System.ApplicationException("Failed to get location criteria.", ex); } }
/// <summary> /// Runs the code example. /// </summary> /// <param name="user">The AdWords user.</param> public void Run(AdWordsUser user) { // Get the AdGroupCriterionService. AdGroupCriterionService adGroupCriterionService = (AdGroupCriterionService) user.GetService(AdWordsService.v201306.AdGroupCriterionService); // Create a selector. Selector selector = new Selector(); selector.fields = new string[] {"Id", "AdGroupId", "KeywordText"}; // Select only keywords. Predicate predicate = new Predicate(); predicate.field = "CriteriaType"; predicate.@operator = PredicateOperator.EQUALS; predicate.values = new string[] {"KEYWORD"}; selector.predicates = new Predicate[] {predicate}; // Set the selector paging. selector.paging = new Paging(); int offset = 0; int pageSize = 500; AdGroupCriterionPage page = new AdGroupCriterionPage(); try { do { selector.paging.startIndex = offset; selector.paging.numberResults = pageSize; // Get the keywords. page = adGroupCriterionService.get(selector); // Display the results. if (page != null && page.entries != null) { int i = offset; foreach (AdGroupCriterion adGroupCriterion in page.entries) { bool isNegative = (adGroupCriterion is NegativeAdGroupCriterion); // If you are retrieving multiple type of criteria, then you may // need to check for // // if (adGroupCriterion is Keyword) { ... } // // to identify the criterion type. Keyword keyword = (Keyword) adGroupCriterion.criterion; if (isNegative) { Console.WriteLine("{0}) Negative keyword with ad group ID = '{1}', keyword ID " + "= '{2}', and text = '{3}' was found.", i + 1, adGroupCriterion.adGroupId, keyword.id, keyword.text); } else { Console.WriteLine("{0}) Keyword with ad group ID = '{1}', keyword ID = '{2}', " + "text = '{3}' and matchType = '{4} was found.", i + 1, adGroupCriterion.adGroupId, keyword.id, keyword.text, keyword.matchType); } i++; } } offset += pageSize; } while (offset < page.totalNumEntries); Console.WriteLine("Number of keywords found: {0}", page.totalNumEntries); } catch (Exception ex) { throw new System.ApplicationException("Failed to retrieve keywords.", ex); } }
/// <summary> /// Runs the code example. /// </summary> /// <param name="user">The AdWords user.</param> /// <param name="adGroupId">Id of the ad group for which keyword bid /// simulations are retrieved.</param> /// <param name="keywordId">Id of the keyword for which bid simulations are /// retrieved.</param> public void Run(AdWordsUser user, long adGroupId, long keywordId) { // Get the DataService. DataService dataService = (DataService) user.GetService(AdWordsService.v201306.DataService); // Create the selector. Selector selector = new Selector(); selector.fields = new string[] {"AdGroupId", "CriterionId", "StartDate", "EndDate", "Bid", "LocalClicks", "LocalCost", "MarginalCpc", "LocalImpressions"}; // Create the filters. Predicate adGroupPredicate = new Predicate(); adGroupPredicate.field = "AdGroupId"; adGroupPredicate.@operator = PredicateOperator.IN; adGroupPredicate.values = new string[] {adGroupId.ToString()}; Predicate keywordPredicate = new Predicate(); keywordPredicate.field = "CriterionId"; keywordPredicate.@operator = PredicateOperator.IN; keywordPredicate.values = new string[] {keywordId.ToString()}; selector.predicates = new Predicate[] {adGroupPredicate, keywordPredicate}; // Set selector paging. selector.paging = new Paging(); int offset = 0; int pageSize = 500; CriterionBidLandscapePage page = new CriterionBidLandscapePage(); try { do { selector.paging.startIndex = offset; selector.paging.numberResults = pageSize; // Get bid landscape for keywords. page = dataService.getCriterionBidLandscape(selector); // Display bid landscapes. if (page != null && page.entries != null) { int i = offset; foreach (CriterionBidLandscape bidLandscape in page.entries) { Console.WriteLine("{0}) Found criterion bid landscape with ad group id '{1}', " + "keyword id '{2}', start date '{3}', end date '{4}', and landscape points:", i, bidLandscape.adGroupId, bidLandscape.criterionId, bidLandscape.startDate, bidLandscape.endDate); foreach (BidLandscapeLandscapePoint bidLandscapePoint in bidLandscape.landscapePoints) { Console.WriteLine("- bid: {0} => clicks: {1}, cost: {2}, marginalCpc: {3}, " + "impressions: {4}\n", bidLandscapePoint.bid.microAmount, bidLandscapePoint.clicks, bidLandscapePoint.cost.microAmount, bidLandscapePoint.marginalCpc.microAmount, bidLandscapePoint.impressions); } i++; } } offset += pageSize; } while (offset < page.totalNumEntries); Console.WriteLine("Number of keyword bid landscapes found: {0}", page.totalNumEntries); } catch (Exception ex) { throw new System.ApplicationException("Failed to retrieve keyword bid landscapes.", ex); } }
/// <summary> /// Runs the code example. /// </summary> /// <param name="user">The AdWords user.</param> public void Run(AdWordsUser user) { // Get the MediaService. MediaService mediaService = (MediaService) user.GetService( AdWordsService.v201306.MediaService); // Create a selector. Selector selector = new Selector(); selector.fields = new string[] {"MediaId", "Width", "Height", "MimeType"}; // Set the filter. Predicate predicate = new Predicate(); predicate.@operator = PredicateOperator.IN; predicate.field = "Type"; predicate.values = new string[] {MediaMediaType.VIDEO.ToString(), MediaMediaType.IMAGE.ToString()}; selector.predicates = new Predicate[] {predicate}; // Set selector paging. selector.paging = new Paging(); int offset = 0; int pageSize = 500; MediaPage page = new MediaPage(); try { do { selector.paging.startIndex = offset; selector.paging.numberResults = pageSize; page = mediaService.get(selector); if (page != null && page.entries != null) { int i = offset; foreach (Media media in page.entries) { if (media is Video) { Video video = (Video) media; Console.WriteLine("{0}) Video with id \"{1}\" and name \"{2}\" was found.", i, video.mediaId, video.name); } else if (media is Image) { Image image = (Image) media; Dictionary<MediaSize, Dimensions> dimensions = CreateMediaDimensionMap(image.dimensions); Console.WriteLine("{0}) Image with id '{1}', dimensions '{2}x{3}', and MIME type " + "'{4}' was found.", i, image.mediaId, dimensions[MediaSize.FULL].width, dimensions[MediaSize.FULL].height, image.mimeType); } i++; } } offset += pageSize; } while (offset < page.totalNumEntries); Console.WriteLine("Number of images and videos found: {0}", page.totalNumEntries); } catch (Exception ex) { throw new System.ApplicationException("Failed to get images and videos.", ex); } }
/// <summary> /// Runs the code example. /// </summary> /// <param name="user">The AdWords user.</param> /// <param name="fileName">The file to which the report is downloaded. /// </param> public void Run(AdWordsUser user, string fileName) { ReportDefinition definition = new ReportDefinition(); definition.reportName = "Last 7 days CRITERIA_PERFORMANCE_REPORT"; definition.reportType = ReportDefinitionReportType.CRITERIA_PERFORMANCE_REPORT; definition.downloadFormat = DownloadFormat.GZIPPED_CSV; definition.dateRangeType = ReportDefinitionDateRangeType.LAST_7_DAYS; // Create selector. Selector selector = new Selector(); selector.fields = new string[] {"CampaignId", "AdGroupId", "Id", "CriteriaType", "Criteria", "CriteriaDestinationUrl", "Clicks", "Impressions", "Cost"}; Predicate predicate = new Predicate(); predicate.field = "Status"; predicate.@operator = PredicateOperator.IN; predicate.values = new string[] {"ACTIVE", "PAUSED"}; selector.predicates = new Predicate[] {predicate}; definition.selector = selector; definition.includeZeroImpressions = true; string filePath = ExampleUtilities.GetHomeDir() + Path.DirectorySeparatorChar + fileName; try { // If you know that your report is small enough to fit in memory, then // you can instead use // ReportUtilities utilities = new ReportUtilities(user); // utilities.ReportVersion = "v201306"; // ClientReport report = utilities.GetClientReport(definition); // // // Get the text report directly if you requested a text format // // (e.g. xml) // string reportText = report.Text; // // // Get the binary report if you requested a binary format // // (e.g. gzip) // byte[] reportBytes = report.Contents; // // // Deflate a zipped binary report for further processing. // string deflatedReportText = Encoding.UTF8.GetString( // MediaUtilities.DeflateGZipData(report.Contents)); ReportUtilities utilities = new ReportUtilities(user); utilities.ReportVersion = "v201306"; utilities.DownloadClientReport(definition, filePath); Console.WriteLine("Report was downloaded to '{0}'.", filePath); } catch (Exception ex) { throw new System.ApplicationException("Failed to download report.", ex); } }
/// <summary> /// Gets the legacy sitelinks for campaign. /// </summary> /// <param name="campaignExtensionService">The campaign extension service.</param> /// <param name="campaignId">The campaign id.</param> /// <returns>The CampaignAdExtension that contains the legacy sitelinks, or /// null if there are no legacy sitelinks in this campaign.</returns> private static CampaignAdExtension getLegacySitelinksForCampaign( CampaignAdExtensionService campaignExtensionService, long campaignId) { // Create the selector. Selector selector = new Selector(); selector.fields = new string[] {"CampaignId", "AdExtensionId", "Status", "DisplayText", "DestinationUrl"}; // Filter the results for specified campaign id. Predicate campaignPredicate = new Predicate(); campaignPredicate.@operator = PredicateOperator.EQUALS; campaignPredicate.field = "CampaignId"; campaignPredicate.values = new string[] {campaignId.ToString()}; // Filter the results for active campaign ad extensions. You may add // additional filtering conditions here as required. Predicate statusPredicate = new Predicate(); statusPredicate.@operator = PredicateOperator.EQUALS; statusPredicate.field = "Status"; statusPredicate.values = new string[] {CampaignAdExtensionStatus.ACTIVE.ToString()}; // Filter for sitelinks ad extension type. Predicate typePredicate = new Predicate(); typePredicate.@operator = PredicateOperator.EQUALS; typePredicate.field = "AdExtensionType"; typePredicate.values = new string[] {"SITELINKS_EXTENSION"}; selector.predicates = new Predicate[] {campaignPredicate, statusPredicate, typePredicate}; CampaignAdExtensionPage page = campaignExtensionService.get(selector); if (page.entries != null && page.entries.Length > 0) { return page.entries[0]; } else { return null; } }
/// <summary> /// Runs the specified user. /// </summary> /// <param name="user">The user.</param> /// <param name="adGroupId">Id of the ad group for which bid simulations are /// retrieved.</param> public void Run(AdWordsUser user, long adGroupId) { // Get the DataService. DataService dataService = (DataService) user.GetService(AdWordsService.v201306.DataService); // Create the selector. Selector selector = new Selector(); selector.fields = new string[] {"AdGroupId", "LandscapeType", "LandscapeCurrent", "StartDate", "EndDate", "Bid", "LocalClicks", "LocalCost", "MarginalCpc", "LocalImpressions"}; // Set the filters. Predicate adGroupPredicate = new Predicate(); adGroupPredicate.field = "AdGroupId"; adGroupPredicate.@operator = PredicateOperator.IN; adGroupPredicate.values = new string[] {adGroupId.ToString()}; selector.predicates = new Predicate[] {adGroupPredicate}; try { // Get bid landscape for ad group. AdGroupBidLandscapePage page = dataService.getAdGroupBidLandscape(selector); if (page != null && page.entries != null && page.entries.Length > 0) { foreach (AdGroupBidLandscape bidLandscape in page.entries) { Console.WriteLine("Found ad group bid landscape with ad group id '{0}', type '{1}', " + "current: '{2}', start date '{3}', end date '{4}', and landscape points", bidLandscape.adGroupId, bidLandscape.type, bidLandscape.landscapeCurrent, bidLandscape.startDate, bidLandscape.endDate); foreach (BidLandscapeLandscapePoint point in bidLandscape.landscapePoints) { Console.WriteLine("- bid: {0} => clicks: {1}, cost: {2}, marginalCpc: {3}, " + "impressions: {4}", point.bid.microAmount, point.bid.microAmount, point.clicks, point.cost.microAmount, point.marginalCpc.microAmount, point.impressions); } } } else { Console.WriteLine("No ad group bid landscapes were found."); } } catch (Exception ex) { throw new System.ApplicationException("Failed to get ad group bid landscapes.", ex); } }
/// <summary> /// Runs the code example. /// </summary> /// <param name="user">The AdWords user.</param> /// <param name="campaignId">Id of the campaign from which targeting /// criteria are retrieved.</param> public void Run(AdWordsUser user, long campaignId) { // Get the CampaignCriterionService. CampaignCriterionService campaignCriterionService = (CampaignCriterionService) user.GetService( AdWordsService.v201306.CampaignCriterionService); // Create the selector. Selector selector = new Selector(); selector.fields = new string[] {"Id", "CriteriaType", "CampaignId"}; // Set the filters. Predicate predicate = new Predicate(); predicate.field = "CampaignId"; predicate.@operator = PredicateOperator.EQUALS; predicate.values = new string[] {campaignId.ToString()}; selector.predicates = new Predicate[] {predicate}; // Set the selector paging. selector.paging = new Paging(); int offset = 0; int pageSize = 500; CampaignCriterionPage page = new CampaignCriterionPage(); try { do { selector.paging.startIndex = offset; selector.paging.numberResults = pageSize; // Get all campaign targets. page = campaignCriterionService.get(selector); // Display the results. if (page != null && page.entries != null) { int i = offset; foreach (CampaignCriterion campaignCriterion in page.entries) { string negative = (campaignCriterion is NegativeCampaignCriterion) ? "Negative " : ""; Console.WriteLine("{0}) {1}Campaign criterion with id = '{2}' and Type = {3} was " + " found for campaign id '{4}'", i, negative, campaignCriterion.criterion.id, campaignCriterion.criterion.type, campaignCriterion.campaignId); i++; } } offset += pageSize; } while (offset < page.totalNumEntries); Console.WriteLine("Number of campaign targeting criteria found: {0}", page.totalNumEntries); } catch (Exception ex) { throw new System.ApplicationException("Failed to get campaign targeting criteria.", ex); } }
/// <summary> /// Runs the code example. /// </summary> /// <param name="user">The AdWords user.</param> public void Run(AdWordsUser user) { // Get the UserListService. AdwordsUserListService userListService = (AdwordsUserListService) user.GetService(AdWordsService.v201306.AdwordsUserListService); // Get the ConversionTrackerService. ConversionTrackerService conversionTrackerService = (ConversionTrackerService)user.GetService(AdWordsService.v201306. ConversionTrackerService); BasicUserList userList = new BasicUserList(); userList.name = "Mars cruise customers #" + ExampleUtilities.GetRandomString(); userList.description = "A list of mars cruise customers in the last year."; userList.status = UserListMembershipStatus.OPEN; userList.membershipLifeSpan = 365; UserListConversionType conversionType = new UserListConversionType(); conversionType.name = userList.name; userList.conversionTypes = new UserListConversionType[] {conversionType}; // Optional: Set the user list status. userList.status = UserListMembershipStatus.OPEN; // Create the operation. UserListOperation operation = new UserListOperation(); operation.operand = userList; operation.@operator = Operator.ADD; try { // Add the user list. UserListReturnValue retval = userListService.mutate(new UserListOperation[] {operation}); UserList[] userLists = null; if (retval != null && retval.value != null) { userLists = retval.value; // Get all conversion snippets List<string> conversionIds = new List<string>(); foreach (BasicUserList newUserList in userLists) { if (newUserList.conversionTypes != null) { foreach (UserListConversionType newConversionType in newUserList.conversionTypes) { conversionIds.Add(newConversionType.id.ToString()); } } } Dictionary<long, ConversionTracker> conversionsMap = new Dictionary<long, ConversionTracker>(); if (conversionIds.Count > 0) { // Create the selector. Selector selector = new Selector(); selector.fields = new string[] {"Id"}; Predicate conversionTypePredicate = new Predicate(); conversionTypePredicate.field = "Id"; conversionTypePredicate.@operator = PredicateOperator.IN; conversionTypePredicate.values = conversionIds.ToArray(); selector.predicates = new Predicate[] {conversionTypePredicate}; // Get all conversion trackers. ConversionTrackerPage page = conversionTrackerService.get(selector); if (page != null && page.entries != null) { foreach (ConversionTracker tracker in page.entries) { conversionsMap[tracker.id] = tracker; } } } // Display the results. foreach (BasicUserList newUserList in userLists) { Console.WriteLine("User list with name '{0}' and id '{1}' was added.", newUserList.name, newUserList.id); // Display user list associated conversion code snippets. if (newUserList.conversionTypes != null) { foreach (UserListConversionType userListConversionType in newUserList.conversionTypes) { if (conversionsMap.ContainsKey(userListConversionType.id)) { AdWordsConversionTracker conversionTracker = (AdWordsConversionTracker) conversionsMap[userListConversionType.id]; Console.WriteLine("Conversion type code snippet associated to the list:\n{0}\n", conversionTracker.snippet); } else { throw new Exception("Failed to associate conversion type code snippet."); } } } } } else { Console.WriteLine("No user lists (a.k.a. audiences) were added."); } } catch (Exception ex) { throw new System.ApplicationException("Failed to add user lists (a.k.a. audiences).", ex); } }
/// <summary> /// Runs the code example. /// </summary> /// <param name="user">The AdWords user.</param> /// <param name="campaignId">Id of the campaign from which targeting /// criteria are retrieved.</param> public void Run(AdWordsUser user, long campaignId) { // Get the CampaignCriterionService. CampaignCriterionService campaignCriterionService = (CampaignCriterionService) user.GetService( AdWordsService.v201306.CampaignCriterionService); // Create the selector. Selector selector = new Selector(); selector.fields = new string[] {"Id", "CriteriaType", "PlacementUrl"}; // Set the filters. Predicate campaignPredicate = new Predicate(); campaignPredicate.field = "CampaignId"; campaignPredicate.@operator = PredicateOperator.EQUALS; campaignPredicate.values = new string[] {campaignId.ToString()}; Predicate placementPredicate = new Predicate(); placementPredicate.field = "CriteriaType"; placementPredicate.@operator = PredicateOperator.EQUALS; placementPredicate.values = new string[] {"PLACEMENT"}; selector.predicates = new Predicate[] {campaignPredicate, placementPredicate}; // Set the selector paging. selector.paging = new Paging(); int offset = 0; int pageSize = 500; CampaignCriterionPage page = new CampaignCriterionPage(); try { do { selector.paging.startIndex = offset; selector.paging.numberResults = pageSize; // Get all campaign targets. page = campaignCriterionService.get(selector); // Display the results. if (page != null && page.entries != null) { int i = offset; foreach (CampaignCriterion campaignCriterion in page.entries) { Placement placement = campaignCriterion.criterion as Placement; Console.WriteLine("{0}) Placement with ID {1} and url {2} was found.", i, placement.id, placement.url); i++; } } offset += pageSize; } while (offset < page.totalNumEntries); Console.WriteLine("Number of placements found: {0}", page.totalNumEntries); } catch (Exception ex) { throw new System.ApplicationException("Failed to get campaign targeting criteria.", ex); } }
/// <summary> /// Runs the code example. /// </summary> /// <param name="user">The AdWords user.</param> /// <param name="adGroupId">Id of the ad group to which ads are added. /// </param> public void Run(AdWordsUser user, long campaignId) { // Get the AdGroupAdService. AdGroupBidModifierService adGroupBidModifierService = (AdGroupBidModifierService) user.GetService( AdWordsService.v201306.AdGroupBidModifierService); const int PAGE_SIZE = 500; // Get all ad group bid modifiers for the campaign. Selector selector = new Selector(); selector.fields = new String[] {"CampaignId", "AdGroupId", "BidModifier", "BidModifierSource", "CriteriaType", "Id"}; Predicate predicate = new Predicate(); predicate.field = "CampaignId"; predicate.@operator = PredicateOperator.EQUALS; predicate.values = new string[] {campaignId.ToString()}; selector.predicates = new Predicate[] {predicate}; // Set the selector paging. selector.paging = new Paging(); int offset = 0; int pageSize = PAGE_SIZE; AdGroupBidModifierPage page = new AdGroupBidModifierPage(); try { do { selector.paging.startIndex = offset; selector.paging.numberResults = pageSize; // Get the campaigns. page = adGroupBidModifierService.get(selector); // Display the results. if (page != null && page.entries != null) { int i = offset; foreach (AdGroupBidModifier adGroupBidModifier in page.entries) { string bidModifier = (adGroupBidModifier.bidModifierSpecified)? adGroupBidModifier.bidModifier.ToString() : "UNSET"; Console.WriteLine("{0}) Campaign ID {1}, AdGroup ID {2}, Criterion ID {3} has " + "ad group level modifier: {4} and source = {5}.", i + 1, adGroupBidModifier.campaignId, adGroupBidModifier.adGroupId, adGroupBidModifier.criterion.id, bidModifier, adGroupBidModifier.bidModifierSource); i++; } } offset += pageSize; } while (offset < page.totalNumEntries); Console.WriteLine("Number of adgroup bid modifiers found: {0}", page.totalNumEntries); } catch (Exception ex) { throw new System.ApplicationException("Failed to retrieve adgroup bid modifiers.", ex); } }
/// <summary> /// Runs the code example. /// </summary> /// <param name="user">The AdWords user.</param> /// <param name="adGroupId">Id of the ad group from which text ads are /// retrieved.</param> public void Run(AdWordsUser user, long adGroupId) { // Get the AdGroupAdService. AdGroupAdService service = (AdGroupAdService) user.GetService(AdWordsService.v201306.AdGroupAdService); // Create a selector. Selector selector = new Selector(); selector.fields = new string[] {"Id", "Status", "Headline", "Description1", "Description2", "DisplayUrl"}; // Set the sort order. OrderBy orderBy = new OrderBy(); orderBy.field = "Id"; orderBy.sortOrder = SortOrder.ASCENDING; selector.ordering = new OrderBy[] {orderBy}; // Restrict the fetch to only the selected ad group id. Predicate adGroupPredicate = new Predicate(); adGroupPredicate.field = "AdGroupId"; adGroupPredicate.@operator = PredicateOperator.EQUALS; adGroupPredicate.values = new string[] {adGroupId.ToString()}; // Retrieve only text ads. Predicate typePredicate = new Predicate(); typePredicate.field = "AdType"; typePredicate.@operator = PredicateOperator.EQUALS; typePredicate.values = new string[] {"TEXT_AD"}; // By default disabled ads aren't returned by the selector. To return // them include the DISABLED status in the statuses field. Predicate statusPredicate = new Predicate(); statusPredicate.field = "Status"; statusPredicate.@operator = PredicateOperator.IN; statusPredicate.values = new string[] {AdGroupAdStatus.ENABLED.ToString(), AdGroupAdStatus.PAUSED.ToString(), AdGroupAdStatus.DISABLED.ToString()}; selector.predicates = new Predicate[] {adGroupPredicate, statusPredicate, typePredicate}; // Select the selector paging. selector.paging = new Paging(); int offset = 0; int pageSize = 500; AdGroupAdPage page = new AdGroupAdPage(); try { do { selector.paging.startIndex = offset; selector.paging.numberResults = pageSize; // Get the text ads. page = service.get(selector); // Display the results. if (page != null && page.entries != null) { int i = offset; foreach (AdGroupAd adGroupAd in page.entries) { TextAd textAd = (TextAd) adGroupAd.ad; Console.WriteLine("{0}) Ad id is {1} and status is {2}", i + 1, textAd.id, adGroupAd.status); Console.WriteLine(" {0}\n {1}\n {2}\n {3}", textAd.headline, textAd.description1, textAd.description2, textAd.displayUrl); i++; } } offset += pageSize; } while (offset < page.totalNumEntries); Console.WriteLine("Number of text ads found: {0}", page.totalNumEntries); } catch (Exception ex) { throw new System.ApplicationException("Failed to get text ads", ex); } }
/// <summary> /// Retrieve an existing feed that is mapped to hold sitelinks. The first /// active sitelinks feed is retrieved by this method. /// </summary> /// <param name="feedMappingService">The feed mapping service.</param> /// <returns>A SiteLinksFeed if a feed is found, or null otherwise.</returns> private static SiteLinksFeed getExistingFeed(FeedMappingService feedMappingService) { Selector selector = new Selector(); selector.fields = new string[] {"FeedId", "FeedMappingId", "PlaceholderType", "Status", "AttributeFieldMappings"}; Predicate placeHolderPredicate = new Predicate(); placeHolderPredicate.field = "PlaceholderType"; placeHolderPredicate.@operator = PredicateOperator.EQUALS; placeHolderPredicate.values = new string[] {PLACEHOLDER_SITELINKS.ToString()}; Predicate statusPredicate = new Predicate(); statusPredicate.field = "Status"; statusPredicate.@operator = PredicateOperator.EQUALS; statusPredicate.values = new string[] {"ACTIVE"}; selector.predicates = new Predicate[] {placeHolderPredicate, statusPredicate}; FeedMappingPage page = feedMappingService.get(selector); if (page != null && page.entries != null && page.entries.Length > 0) { foreach (FeedMapping feedMapping in page.entries) { long? feedId = feedMapping.feedId; long? textAttributeId = null; long? urlAttributeId = null; foreach (AttributeFieldMapping attributeMapping in feedMapping.attributeFieldMappings) { if (attributeMapping.fieldId == PLACEHOLDER_FIELD_SITELINK_LINK_TEXT) { textAttributeId = attributeMapping.feedAttributeId; } else if (attributeMapping.fieldId == PLACEHOLDER_FIELD_SITELINK_URL) { urlAttributeId = attributeMapping.feedAttributeId; } } if (feedId != null && textAttributeId != null && urlAttributeId != null) { SiteLinksFeed siteLinksFeed = new SiteLinksFeed(); siteLinksFeed.SiteLinksFeedId = feedId.Value; siteLinksFeed.LinkTextFeedAttributeId = textAttributeId.Value; siteLinksFeed.LinkUrlFeedAttributeId = urlAttributeId.Value; return siteLinksFeed; } } } return null; }
/// <summary> /// Runs the code example. /// </summary> /// <param name="user">The AdWords user.</param> /// <param name="campaignId">Id of the campaign for which ad groups are /// retrieved.</param> public void Run(AdWordsUser user, long campaignId) { // Get the AdGroupService. AdGroupService adGroupService = (AdGroupService) user.GetService(AdWordsService.v201306.AdGroupService); // Create the selector. Selector selector = new Selector(); selector.fields = new string[] {"Id", "Name"}; // Create the filters. Predicate predicate = new Predicate(); predicate.field = "CampaignId"; predicate.@operator = PredicateOperator.EQUALS; predicate.values = new string[] {campaignId.ToString()}; selector.predicates = new Predicate[] {predicate}; // Set the selector paging. selector.paging = new Paging(); int offset = 0; int pageSize = 500; AdGroupPage page = new AdGroupPage(); try { do { selector.paging.startIndex = offset; selector.paging.numberResults = pageSize; // Get the ad groups. page = adGroupService.get(selector); // Display the results. if (page != null && page.entries != null) { int i = offset; foreach (AdGroup adGroup in page.entries) { Console.WriteLine("{0}) Ad group name is '{1}' and id is {2}.", i + 1, adGroup.name, adGroup.id); i++; } } offset += pageSize; } while (offset < page.totalNumEntries); Console.WriteLine("Number of ad groups found: {0}", page.totalNumEntries); } catch (Exception ex) { throw new System.ApplicationException("Failed to retrieve ad groups.", ex); } }
/// <summary> /// Runs the code example. /// </summary> /// <param name="user">The AdWords user.</param> /// <param name="campaignId">Id of the campaign from which sitelinks are /// deleted.</param> public void Run(AdWordsUser user, long campaignId) { // Get the CampaignAdExtensionService. CampaignAdExtensionService campaignExtensionService = (CampaignAdExtensionService)user.GetService(AdWordsService.v201306. CampaignAdExtensionService); long siteLinkExtensionId = -1; // Create the selector. Selector selector = new Selector(); selector.fields = new string[] {"AdExtensionId", "Status"}; // Filter the results for specified campaign id. Predicate campaignPredicate = new Predicate(); campaignPredicate.@operator = PredicateOperator.EQUALS; campaignPredicate.field = "CampaignId"; campaignPredicate.values = new string[] {campaignId.ToString()}; // Filter the results for active campaign ad extensions. Predicate statusPredicate = new Predicate(); statusPredicate.@operator = PredicateOperator.EQUALS; statusPredicate.field = "Status"; statusPredicate.values = new string[] {CampaignAdExtensionStatus.ACTIVE.ToString()}; // Filter for sitelinks ad extension type. Predicate typePredicate = new Predicate(); typePredicate.@operator = PredicateOperator.EQUALS; typePredicate.field = "AdExtensionType"; typePredicate.values = new string[] {"SITELINKS_EXTENSION"}; selector.predicates = new Predicate[] {campaignPredicate, statusPredicate, typePredicate}; // Get the campaign ad extension containing sitelinks. CampaignAdExtensionPage page = campaignExtensionService.get(selector); if (page != null && page.entries != null && page.entries.Length > 0) { siteLinkExtensionId = page.entries[0].adExtension.id; } // There are no site link extensions in this campaign. if (siteLinkExtensionId == -1) { return; } CampaignAdExtension campaignAdExtension = new CampaignAdExtension(); campaignAdExtension.campaignId = campaignId; campaignAdExtension.adExtension = new AdExtension(); campaignAdExtension.adExtension.id = siteLinkExtensionId; CampaignAdExtensionOperation operation = new CampaignAdExtensionOperation(); operation.@operator = Operator.REMOVE; operation.operand = campaignAdExtension; try { CampaignAdExtensionReturnValue retVal = campaignExtensionService.mutate(new CampaignAdExtensionOperation[] {operation}); if (retVal != null && retVal.value != null && retVal.value.Length > 0) { CampaignAdExtension campaignExtension = retVal.value[0]; Console.WriteLine("Deleted a campaign ad extension with id = \"{0}\" and " + "status = \"{1}\"", campaignExtension.adExtension.id, campaignExtension.status); foreach (Sitelink siteLink in (campaignExtension.adExtension as SitelinksExtension).sitelinks) { Console.WriteLine("-- Site link text is \"{0}\" and destination url is {1}", siteLink.displayText, siteLink.destinationUrl); } } else { Console.WriteLine("No site links were deleted."); } } catch (Exception ex) { throw new System.ApplicationException("Failed to delete site links.", ex); } }