/// <summary> /// Gets the total landscape points in the ad group bid landscape page. If the page has a null /// <code>entries</code> array, returns <code>0</code>. /// </summary> /// <param name="page">The ad group bid landscape page.</param> /// <returns>The total landscape points.</returns> private int GetTotalLandscapePointsInPage(AdGroupBidLandscapePage page) { if (page.entries == null) { return(0); } int totalLandscapePointsInPage = 0; foreach (AdGroupBidLandscape adGroupBidLandscape in page.entries) { totalLandscapePointsInPage += adGroupBidLandscape.landscapePoints.Length; } return(totalLandscapePointsInPage); }
/// <summary> /// Runs the code example. /// </summary> /// <param name="user">The AdWords user.</param> /// <param name="adGroupId">Id of the ad group for which bid simulations are /// retrieved.</param> public void Run(AdWordsUser user, long adGroupId) { using (DataService dataService = (DataService)user.GetService( AdWordsService.v201708.DataService)) { // Create the selector. Selector selector = new Selector() { fields = new string[] { AdGroupBidLandscape.Fields.AdGroupId, AdGroupBidLandscape.Fields.LandscapeType, AdGroupBidLandscape.Fields.LandscapeCurrent, AdGroupBidLandscape.Fields.StartDate, AdGroupBidLandscape.Fields.EndDate, BidLandscapeLandscapePoint.Fields.Bid, BidLandscapeLandscapePoint.Fields.LocalClicks, BidLandscapeLandscapePoint.Fields.LocalCost, BidLandscapeLandscapePoint.Fields.LocalImpressions }, predicates = new Predicate[] { Predicate.Equals(AdGroupBidLandscape.Fields.AdGroupId, adGroupId) } }; 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}, impressions: {3}", point.bid.microAmount, point.clicks, point.cost.microAmount, point.impressions); } } } else { Console.WriteLine("No ad group bid landscapes were found."); } } catch (Exception e) { throw new System.ApplicationException("Failed to get ad group bid landscapes.", e); } } }
/// <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.v201409.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); } }
public void TestHasNextPage() { SelectQueryBuilder queryBuilder = null; SelectQuery query = null; queryBuilder = new SelectQueryBuilder(); query = queryBuilder .Select("CampaignId", "Status", "Clicks", "Impressions") .Where("Clicks").Equals(20) .OrderByAscending("CampaignId") .OrderByDescending("Status") .Build(); // Tests for regular pages. CampaignPage campaignPage = new CampaignPage(); // Start index is less than total number of entries. query.Limit(1, 20); campaignPage.totalNumEntries = 15; Assert.IsTrue(query.HasNextPage(campaignPage)); // Start index is greater than total number of entries. query.Limit(18, 20); campaignPage.totalNumEntries = 15; Assert.IsFalse(query.HasNextPage(campaignPage)); // Tests for AdGroupBidLandscapePage. AdGroupBidLandscapePage adGroupBidLandscapePage = new AdGroupBidLandscapePage(); adGroupBidLandscapePage.entries = new AdGroupBidLandscape[] { new AdGroupBidLandscape() { campaignId = 123, adGroupId = 456, landscapePoints = new BidLandscapeLandscapePoint[] { new BidLandscapeLandscapePoint() { clicks = 10, impressions = 200 }, new BidLandscapeLandscapePoint() { clicks = 12, impressions = 232 }, } }, new AdGroupBidLandscape() { campaignId = 125, adGroupId = 454, landscapePoints = new BidLandscapeLandscapePoint[] { new BidLandscapeLandscapePoint() { clicks = 10, impressions = 200 }, new BidLandscapeLandscapePoint() { clicks = 5, impressions = 232 }, new BidLandscapeLandscapePoint() { clicks = 66, impressions = 550 }, } } }; // Start index is less than total number of landscape points (5). query.Limit(1, 20); Assert.IsTrue(query.HasNextPage(adGroupBidLandscapePage)); adGroupBidLandscapePage.entries = new AdGroupBidLandscape[] { new AdGroupBidLandscape() { campaignId = 123, adGroupId = 456, landscapePoints = new BidLandscapeLandscapePoint[] {} }, new AdGroupBidLandscape() { campaignId = 125, adGroupId = 454, landscapePoints = null } }; // Start index is less than total number of landscape points (0). query.Limit(1, 20); Assert.IsFalse(query.HasNextPage(adGroupBidLandscapePage)); // Tests for CriterionBidLandscapePage. CriterionBidLandscapePage criterionBidLandscapePage = new CriterionBidLandscapePage() { entries = new CriterionBidLandscape[] { new CriterionBidLandscape() { campaignId = 125, adGroupId = 454, landscapePoints = new BidLandscapeLandscapePoint[] { new BidLandscapeLandscapePoint() { clicks = 10, impressions = 200 }, new BidLandscapeLandscapePoint() { clicks = 5, impressions = 232 }, new BidLandscapeLandscapePoint() { clicks = 66, impressions = 550 }, } }, new CriterionBidLandscape() { campaignId = 125, adGroupId = 454, landscapePoints = new BidLandscapeLandscapePoint[] { new BidLandscapeLandscapePoint() { clicks = 10, impressions = 200 }, new BidLandscapeLandscapePoint() { clicks = 5, impressions = 232 }, new BidLandscapeLandscapePoint() { clicks = 66, impressions = 550 }, } } } }; // Start index is less than total number of landscape points (5). query.Limit(1, 20); Assert.IsTrue(query.HasNextPage(criterionBidLandscapePage)); // Start index is less than total number of landscape points (0). criterionBidLandscapePage.entries = new CriterionBidLandscape[] { new CriterionBidLandscape() { campaignId = 123, adGroupId = 456, landscapePoints = new BidLandscapeLandscapePoint[] {} }, new CriterionBidLandscape() { campaignId = 125, adGroupId = 454, landscapePoints = null } }; query.Limit(1, 20); Assert.IsFalse(query.HasNextPage(criterionBidLandscapePage)); }
public void TestNextPage() { SelectQueryBuilder queryBuilder = null; SelectQuery query = null; queryBuilder = new SelectQueryBuilder(); query = queryBuilder .Select("CampaignId", "Status", "Clicks", "Impressions") .Where("Clicks").Equals(20) .OrderByAscending("CampaignId") .OrderByDescending("Status") .Build(); // Test for regular pages. CampaignPage campaignPage = new CampaignPage(); // Query limits should increment by numberResults (20). query.Limit(1, 20); query.NextPage(campaignPage); Assert.IsTrue(query.ToString().Contains("LIMIT 21, 20")); // Test for AdGroupBidLandscapePage. AdGroupBidLandscapePage adGroupBidLandscapePage = new AdGroupBidLandscapePage(); adGroupBidLandscapePage.entries = new AdGroupBidLandscape[] { new AdGroupBidLandscape() { campaignId = 123, adGroupId = 456, landscapePoints = new BidLandscapeLandscapePoint[] { new BidLandscapeLandscapePoint() { clicks = 10, impressions = 200 }, new BidLandscapeLandscapePoint() { clicks = 12, impressions = 232 }, } }, new AdGroupBidLandscape() { campaignId = 125, adGroupId = 454, landscapePoints = new BidLandscapeLandscapePoint[] { new BidLandscapeLandscapePoint() { clicks = 10, impressions = 200 }, new BidLandscapeLandscapePoint() { clicks = 5, impressions = 232 }, new BidLandscapeLandscapePoint() { clicks = 66, impressions = 550 }, } } }; // Query limits should increment by total landscapePoints (5). query.Limit(1, 20); query.NextPage(adGroupBidLandscapePage); Assert.IsTrue(query.ToString().Contains("LIMIT 6, 20")); // Query limits should increment by total landscapePoints (0). adGroupBidLandscapePage.entries = new AdGroupBidLandscape[] { new AdGroupBidLandscape() { campaignId = 123, adGroupId = 456, landscapePoints = new BidLandscapeLandscapePoint[] {} }, new AdGroupBidLandscape() { campaignId = 125, adGroupId = 454, landscapePoints = null } }; query.Limit(1, 20); query.NextPage(adGroupBidLandscapePage); Assert.IsTrue(query.ToString().Contains("LIMIT 1, 20")); CriterionBidLandscapePage criterionBidLandscapePage = new CriterionBidLandscapePage() { entries = new CriterionBidLandscape[] { new CriterionBidLandscape() { campaignId = 125, adGroupId = 454, landscapePoints = new BidLandscapeLandscapePoint[] { new BidLandscapeLandscapePoint() { clicks = 10, impressions = 200 }, new BidLandscapeLandscapePoint() { clicks = 5, impressions = 232 }, new BidLandscapeLandscapePoint() { clicks = 66, impressions = 550 }, } }, new CriterionBidLandscape() { campaignId = 125, adGroupId = 454, landscapePoints = new BidLandscapeLandscapePoint[] { new BidLandscapeLandscapePoint() { clicks = 10, impressions = 200 }, new BidLandscapeLandscapePoint() { clicks = 5, impressions = 232 }, new BidLandscapeLandscapePoint() { clicks = 66, impressions = 550 }, } } } }; // Query limits should increment by total landscapePoints (6). query.Limit(1, 20); query.NextPage(criterionBidLandscapePage); Assert.IsTrue(query.ToString().Contains("LIMIT 7, 20")); // Query limits should increment by total landscapePoints (0). criterionBidLandscapePage.entries = new CriterionBidLandscape[] { new CriterionBidLandscape() { campaignId = 123, adGroupId = 456, landscapePoints = new BidLandscapeLandscapePoint[] {} }, new CriterionBidLandscape() { campaignId = 125, adGroupId = 454, landscapePoints = null } }; query.Limit(1, 20); query.NextPage(criterionBidLandscapePage); Assert.IsTrue(query.ToString().Contains("LIMIT 1, 20")); }