/// <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.v201502.DataService); // Create the selector. Selector selector = new Selector(); selector.fields = new string[] {"AdGroupId", "CriterionId", "StartDate", "EndDate", "Bid", "LocalClicks", "LocalCost", "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}, impressions: {3}\n", bidLandscapePoint.bid.microAmount, bidLandscapePoint.clicks, bidLandscapePoint.cost.microAmount, bidLandscapePoint.impressions); } i++; } } offset += pageSize; } while (offset < page.totalNumEntries); Console.WriteLine("Number of keyword bid landscapes found: {0}", page.totalNumEntries); } catch (Exception e) { throw new System.ApplicationException("Failed to retrieve keyword bid landscapes.", e); } }
/// <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.v201502.DataService); // Create the selector. Selector selector = new Selector() { fields = new string[] { CriterionBidLandscape.Fields.AdGroupId, CriterionBidLandscape.Fields.CriterionId, CriterionBidLandscape.Fields.StartDate, CriterionBidLandscape.Fields.EndDate, BidLandscapeLandscapePoint.Fields.Bid, BidLandscapeLandscapePoint.Fields.LocalClicks, BidLandscapeLandscapePoint.Fields.LocalCost, BidLandscapeLandscapePoint.Fields.LocalImpressions }, predicates = new Predicate[] { Predicate.Equals(CriterionBidLandscape.Fields.AdGroupId, adGroupId), Predicate.Equals(CriterionBidLandscape.Fields.CriterionId, keywordId) }, paging = Paging.Default }; CriterionBidLandscapePage page = new CriterionBidLandscapePage(); int bidLandscapeCount = 0; int landscapePointsInLastResponse = 0; try { do { // Get bid landscape for keywords. page = dataService.getCriterionBidLandscape(selector); landscapePointsInLastResponse = 0; // Display bid landscapes. if (page != null && page.entries != null) { 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:", bidLandscapeCount + 1, bidLandscape.adGroupId, bidLandscape.criterionId, bidLandscape.startDate, bidLandscape.endDate); foreach (BidLandscapeLandscapePoint bidLandscapePoint in bidLandscape.landscapePoints) { Console.WriteLine("- bid: {0} => clicks: {1}, cost: {2}, impressions: {3}\n", bidLandscapePoint.bid.microAmount, bidLandscapePoint.clicks, bidLandscapePoint.cost.microAmount, bidLandscapePoint.impressions); landscapePointsInLastResponse++; } bidLandscapeCount++; } } // Offset by the number of landscape points, NOT the number // of entries (bid landscapes) in the last response. selector.paging.IncreaseOffsetBy(landscapePointsInLastResponse); } while (landscapePointsInLastResponse < selector.paging.numberResults); Console.WriteLine("Number of keyword bid landscapes found: {0}", bidLandscapeCount); } catch (Exception e) { throw new System.ApplicationException("Failed to retrieve keyword bid landscapes.", e); } }