/// <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.v201502.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 e) { throw new System.ApplicationException("Failed to get images and videos.", e); } }
/// <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", "FinalUrls", "Clicks", "Impressions", "Cost"}; Predicate predicate = new Predicate(); predicate.field = "Status"; predicate.@operator = PredicateOperator.IN; predicate.values = new string[] {"ENABLED", "PAUSED"}; selector.predicates = new Predicate[] {predicate}; definition.selector = selector; definition.includeZeroImpressions = true; string filePath = ExampleUtilities.GetHomeDir() + Path.DirectorySeparatorChar + fileName; try { ReportUtilities utilities = new ReportUtilities(user, "v201502", definition); using (ReportResponse response = utilities.GetResponse()) { response.Save(filePath); } Console.WriteLine("Report was downloaded to '{0}'.", filePath); } catch (Exception ex) { throw new System.ApplicationException("Failed to download report.", ex); } }
/// <summary> /// Runs the code example. /// </summary> /// <param name="user">The AdWords user.</param> public void Run(AdWordsUser user) { // Get the ManagedCustomerService. ManagedCustomerService managedCustomerService = (ManagedCustomerService) user.GetService( AdWordsService.v201502.ManagedCustomerService); // Create selector. Selector selector = new Selector(); selector.fields = new String[] {"CustomerId", "Name"}; try { // Get results. ManagedCustomerPage page = managedCustomerService.get(selector); // Display serviced account graph. if (page.entries != null) { // Create map from customerId to customer node. Dictionary<long, ManagedCustomerTreeNode> customerIdToCustomerNode = new Dictionary<long, ManagedCustomerTreeNode>(); // Create account tree nodes for each customer. foreach (ManagedCustomer customer in page.entries) { ManagedCustomerTreeNode node = new ManagedCustomerTreeNode(); node.Account = customer; customerIdToCustomerNode.Add(customer.customerId, node); } // For each link, connect nodes in tree. if (page.links != null) { foreach (ManagedCustomerLink link in page.links) { ManagedCustomerTreeNode managerNode = customerIdToCustomerNode[link.managerCustomerId]; ManagedCustomerTreeNode childNode = customerIdToCustomerNode[link.clientCustomerId]; childNode.ParentNode = managerNode; if (managerNode != null) { managerNode.ChildAccounts.Add(childNode); } } } // Find the root account node in the tree. ManagedCustomerTreeNode rootNode = null; foreach (ManagedCustomer account in page.entries) { if (customerIdToCustomerNode[account.customerId].ParentNode == null) { rootNode = customerIdToCustomerNode[account.customerId]; break; } } // Display account tree. Console.WriteLine("CustomerId, Name"); Console.WriteLine(rootNode.ToTreeString(0, new StringBuilder())); } else { Console.WriteLine("No serviced accounts were found."); } } catch (Exception e) { throw new System.ApplicationException("Failed to create ad groups.", e); } }
/// <summary> /// The main method. /// </summary> /// <param name="args">Command line arguments.</param> static void Main(string[] args) { AdWordsUser user = new AdWordsUser(); // This code example shows how to run an AdWords API web application // while incorporating the OAuth2 installed application flow into your // application. If your application uses a single MCC login to make calls // to all your accounts, you shouldn't use this code example. Instead, you // should run OAuthTokenGenerator.exe to generate a refresh // token and use that configuration in your application's App.config. AdWordsAppConfig config = user.Config as AdWordsAppConfig; if (user.Config.OAuth2Mode == OAuth2Flow.APPLICATION && string.IsNullOrEmpty(config.OAuth2RefreshToken)) { DoAuth2Authorization(user); } Console.Write("Enter the customer id: "); string customerId = Console.ReadLine(); config.ClientCustomerId = customerId; // Get the CampaignService. CampaignService campaignService = (CampaignService) user.GetService(AdWordsService.v201502.CampaignService); // Create the selector. Selector selector = new Selector(); selector.fields = new string[] {"Id", "Name", "Status"}; // 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}' and status = '{3}'" + " was found.", i + 1, campaign.id, campaign.name, campaign.status); i++; } } offset += pageSize; } while (offset < page.totalNumEntries); Console.WriteLine("Number of campaigns found: {0}", page.totalNumEntries); } catch (Exception ex) { throw new System.ApplicationException("Failed to retrieve campaigns", ex); } }
/// <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.v201502.AdGroupAdService); // Create the selector. Selector selector = new Selector(); selector.fields = new string[] {"Id", "AdGroupCreativeApprovalStatus", "AdGroupAdDisapprovalReasons"}; // 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.disapprovalReasons) { Console.WriteLine(" {0}", reason); } i++; } } offset += pageSize; } while (offset < page.totalNumEntries); Console.WriteLine("Number of disapproved ads found: {0}", page.totalNumEntries); } catch (Exception e) { throw new System.ApplicationException("Failed to get disapproved ads.", e); } }
/// <summary> /// Runs the code example. /// </summary> /// <param name="user">The AdWords user.</param> /// <param name="labelName">ID of the label.</param> public void Run(AdWordsUser user, long labelId) { // Get the CampaignService. CampaignService campaignService = (CampaignService) user.GetService(AdWordsService.v201502.CampaignService); // Create the selector. Selector selector = new Selector(); selector.fields = new string[] { "Id", "Name", "Labels" }; // Labels filtering is performed by ID. You can use CONTAINS_ANY to // select campaigns with any of the label IDs, CONTAINS_ALL to select // campaigns with all of the label IDs, or CONTAINS_NONE to select // campaigns with none of the label IDs. Predicate predicate = new Predicate(); predicate.@operator = PredicateOperator.CONTAINS_ANY; predicate.field = "Labels"; predicate.values = new string[] { labelId.ToString() }; selector.predicates = new Predicate[] { predicate }; // 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) { List<string> labelNames = new List<string>(); foreach (Label label in campaign.labels) { labelNames.Add(label.name); } Console.WriteLine("{0}) Campaign with id = '{1}', name = '{2}' and labels = '{3}'" + " was found.", i + 1, campaign.id, campaign.name, string.Join(", ", labelNames.ToArray())); i++; } } offset += pageSize; } while (offset < page.totalNumEntries); Console.WriteLine("Number of campaigns found: {0}", page.totalNumEntries); } catch (Exception e) { throw new System.ApplicationException("Failed to retrieve campaigns by label", e); } }
/// <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.v201502.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.v201502.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 e) { throw new System.ApplicationException("Failed to retrieve adgroup bid modifiers.", e); } }
/// <summary> /// Runs the code example. /// </summary> /// <param name="user">The AdWords user.</param> public void Run(AdWordsUser user) { // Get the ExpressBusinessService. ExpressBusinessService businessService = (ExpressBusinessService) user.GetService(AdWordsService.v201502.ExpressBusinessService); Selector selector = new Selector(); selector.fields = new String[] { "Id", "Name", "Website", "Address", "GeoPoint", "Status" }; // To get all express businesses owned by the current customer, // simply skip the call to selector.setPredicates below. Predicate predicate = new Predicate(); predicate.field = "Status"; predicate.@operator = PredicateOperator.EQUALS; predicate.values = new string[] { "ACTIVE" }; selector.predicates = new Predicate[] { predicate }; // Set the selector paging. selector.paging = new Paging(); int offset = 0; int pageSize = 500; ExpressBusinessPage page = null; try { do { selector.paging.startIndex = offset; selector.paging.numberResults = pageSize; // Get all businesses. page = businessService.get(selector); // Display the results. if (page != null && page.entries != null) { int i = offset; foreach (ExpressBusiness business in page.entries) { Console.WriteLine("{0}) Express business found with name '{1}', id = {2}, " + "website = {3} and status = {4}.\n", i + 1, business.name, business.id, business.website, business.status); Console.WriteLine("Address"); Console.WriteLine("======="); Console.WriteLine(FormatAddress(business.address)); Console.WriteLine("Co-ordinates: {0}\n", FormatGeopoint(business.geoPoint)); i++; } } offset += pageSize; } while (offset < page.totalNumEntries); Console.WriteLine("Number of businesses found: {0}", page.totalNumEntries); } catch (Exception e) { throw new System.ApplicationException("Failed to retrieve express business.", e); } }
/// <summary> /// Runs the code example. /// </summary> /// <param name="user">The AdWords user.</param> public void Run(AdWordsUser user) { // Get the ConstantDataService. ConstantDataService constantDataService = (ConstantDataService) user.GetService( AdWordsService.v201502.ConstantDataService); Selector selector = new Selector(); Predicate predicate = new Predicate(); predicate.field = "Country"; predicate.@operator = PredicateOperator.IN; predicate.values = new string[] { "US" }; try { ProductBiddingCategoryData[] results = constantDataService.getProductBiddingCategoryData(selector); Dictionary<long, ProductCategory> biddingCategories = new Dictionary<long, ProductCategory>(); List<ProductCategory> rootCategories = new List<ProductCategory>(); foreach (ProductBiddingCategoryData productBiddingCategory in results) { long id = productBiddingCategory.dimensionValue.value; long parentId = 0; string name = productBiddingCategory.displayValue[0].value; if (productBiddingCategory.parentDimensionValue != null) { parentId = productBiddingCategory.parentDimensionValue.value; } if (biddingCategories.ContainsKey(id)) { biddingCategories.Add(id, new ProductCategory()); } ProductCategory category = biddingCategories[id]; if (parentId != 0) { if (biddingCategories.ContainsKey(parentId)) { biddingCategories.Add(parentId, new ProductCategory()); } ProductCategory parent = biddingCategories[parentId]; parent.Children.Add(category); } else { rootCategories.Add(category); } category.Id = id; category.Name = name; } DisplayProductCategories(rootCategories, ""); } catch (Exception e) { throw new System.ApplicationException("Failed to set shopping product category.", e); } }
/// <summary> /// Runs the code example. /// </summary> /// <param name="user">The AdWords user.</param> /// <param name="productServiceSuggestion">The product/service suggestion. /// </param> /// <param name="localeText">The locale text.</param> public void Run(AdWordsUser user, string productServiceSuggestion, string localeText) { // Get the service, which loads the required classes. ProductServiceService productServiceService = (ProductServiceService) user.GetService( AdWordsService.v201502.ProductServiceService); // Create selector. Selector selector = new Selector(); selector.fields = new string[] {"ProductServiceText"}; // Create predicates. Predicate textPredicate = new Predicate(); textPredicate.field = "ProductServiceText"; textPredicate.@operator = PredicateOperator.EQUALS; textPredicate.values = new string[] {productServiceSuggestion}; Predicate localePredicate = new Predicate(); localePredicate.field = "Locale"; localePredicate.@operator = PredicateOperator.EQUALS; localePredicate.values = new string[]{localeText}; selector.predicates = new Predicate[] {textPredicate, localePredicate}; // Set the selector paging. selector.paging = new Paging(); int offset = 0; int pageSize = 500; ProductServicePage page = null; try { do { selector.paging.startIndex = offset; selector.paging.numberResults = pageSize; // Make the get request. page = productServiceService.get(selector); // Display the results. if (page != null && page.entries != null) { int i = offset; foreach (ProductService productService in page.entries) { Console.WriteLine("Product/service with text '{0}' found", productService.text); i++; } } offset += pageSize; } while (offset < page.totalNumEntries); Console.WriteLine("Number of products/services found: {0}", page.totalNumEntries); } catch (Exception e) { throw new System.ApplicationException("Failed to retrieve products/services.", e); } }
/// <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.v201502.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 e) { throw new System.ApplicationException("Failed to get campaign targeting criteria.", e); } }
/// <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.v201502. 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> /// <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.v201502.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 e) { throw new System.ApplicationException("Failed to retrieve ad groups.", e); } }
/// <summary> /// Runs the code example. /// </summary> /// <param name="user">The AdWords user.</param> /// <param name="businessId">The AdWords Express business id.</param> public void Run(AdWordsUser user, long businessId) { // Get the PromotionService. PromotionService promotionService = (PromotionService) user.GetService(AdWordsService.v201502.PromotionService); // Set the business ID to the service. promotionService.RequestHeader.expressBusinessId = businessId; Selector selector = new Selector(); selector.fields = new String[] {"PromotionId", "Name", "Status", "DestinationUrl", "StreetAddressVisible", "CallTrackingEnabled", "ContentNetworkOptedOut", "Budget", "PromotionCriteria", "RemainingBudget", "Creatives", "CampaignIds" }; // Set the selector paging. selector.paging = new Paging(); int offset = 0; int pageSize = 500; PromotionPage page = null; try { do { selector.paging.startIndex = offset; selector.paging.numberResults = pageSize; // Get all promotions for the business. page = promotionService.get(selector); // Display the results. if (page != null && page.entries != null) { int i = offset; foreach (Promotion promotion in page.entries) { // Summary. Console.WriteLine("0) Express promotion with name = {1} and id = {2} was found.", i + 1, promotion.id, promotion.name); i++; } } offset += pageSize; } while (offset < page.totalNumEntries); Console.WriteLine("Number of promotions found: {0}", page.totalNumEntries); } catch (Exception e) { throw new System.ApplicationException("Failed to retrieve promotions.", e); } }
/// <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.v201502.CampaignService); // Create the selector. Selector selector = new Selector(); selector.fields = new string[] {"Id", "Name", "Status"}; // 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}' and status = '{3}'" + " was found.", i + 1, campaign.id, campaign.name, campaign.status); i++; } } offset += pageSize; } while (offset < page.totalNumEntries); Console.WriteLine("Number of campaigns found: {0}", page.totalNumEntries); } catch (Exception e) { throw new System.ApplicationException("Failed to retrieve campaigns", 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.v201502.DataService); // Create the selector. Selector selector = new Selector(); selector.fields = new string[] {"AdGroupId", "LandscapeType", "LandscapeCurrent", "StartDate", "EndDate", "Bid", "LocalClicks", "LocalCost", "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}, impressions: {3}", point.bid.microAmount, 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 code example. /// </summary> /// <param name="user">The AdWords user.</param> public void Run(AdWordsUser user) { // Get the CampaignService. CampaignService campaignService = (CampaignService) user.GetService(AdWordsService.v201502.CampaignService); // Create the selector. Selector selector = new Selector() { fields = new string[] { Campaign.Fields.Id, Campaign.Fields.Name, Campaign.Fields.Status }, paging = Paging.Default }; CampaignPage page = new CampaignPage(); try { do { // Get the campaigns. page = campaignService.get(selector); // Display the results. if (page != null && page.entries != null) { int i = selector.paging.startIndex; foreach (Campaign campaign in page.entries) { Console.WriteLine("{0}) Campaign with id = '{1}', name = '{2}' and status = '{3}'" + " was found.", i + 1, campaign.id, campaign.name, campaign.status); i++; } } selector.paging.IncreaseOffset(); } while (selector.paging.startIndex < page.totalNumEntries); Console.WriteLine("Number of campaigns found: {0}", page.totalNumEntries); } catch (Exception e) { throw new System.ApplicationException("Failed to retrieve campaigns", e); } }
/// <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.v201502.CampaignCriterionService); Selector selector = new Selector() { fields = new string[] { CampaignCriterion.Fields.CampaignId, Criterion.Fields.Id, Criterion.Fields.CriteriaType, Placement.Fields.PlacementUrl }, predicates = new Predicate[] { Predicate.Equals(CampaignCriterion.Fields.CampaignId, campaignId.ToString()), Predicate.Equals(Criterion.Fields.CriteriaType, "PLACEMENT") }, paging = Paging.Default }; CampaignCriterionPage page = new CampaignCriterionPage(); try { do { // Get all campaign targets. page = campaignCriterionService.get(selector); // Display the results. if (page != null && page.entries != null) { int i = selector.paging.startIndex; 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 + 1, placement.id, placement.url); i++; } } selector.paging.IncreaseOffset(); } while (selector.paging.startIndex < page.totalNumEntries); Console.WriteLine("Number of placements found: {0}", page.totalNumEntries); } catch (Exception e) { throw new System.ApplicationException("Failed to get campaign targeting criteria.", e); } }
/// <summary> /// Gets the ad group ad by ID. /// </summary> /// <param name="adGroupAdService">The AdGroupAdService instance.</param> /// <param name="adGroupId">ID of the ad group.</param> /// <param name="adId">ID of the ad to be retrieved.</param> /// <returns>The AdGroupAd if the item could be retrieved, null otherwise. /// </returns> private AdGroupAd GetAdGroupAd(AdGroupAdService adGroupAdService, long adGroupId, long adId) { // Create a selector. Selector selector = new Selector() { fields = new string[] { Ad.Fields.Id, Ad.Fields.Url }, predicates = new Predicate[] { // Restrict the fetch to only the selected ad group ID and ad ID. Predicate.Equals(AdGroupAd.Fields.AdGroupId, adGroupId), Predicate.Equals(Ad.Fields.Id, adId) } }; // Get the ad. AdGroupAdPage page = adGroupAdService.get(selector); if (page != null && 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.v201502.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.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> /// Mocked version of CampaignService::get /// </summary> /// <param name="serviceSelector">The service selector.</param> /// <returns>null</returns> public override CampaignPage get(Selector serviceSelector) { getCalled = true; return null; }
/// <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.v201502.AdGroupCriterionService); // Create a selector. Selector selector = new Selector() { fields = new string[] { Criterion.Fields.Id, AdGroupCriterion.Fields.AdGroupId, Placement.Fields.PlacementUrl }, predicates = new Predicate[] { // Select only placements. Predicate.Equals(Criterion.Fields.CriteriaType, "PLACEMENT") }, paging = Paging.Default }; AdGroupCriterionPage page = new AdGroupCriterionPage(); try { do { // Get the keywords. page = adGroupCriterionService.get(selector); // Display the results. if (page != null && page.entries != null) { int i = selector.paging.startIndex; 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 Placement) { ... } // // to identify the criterion type. Placement placement = (Placement) adGroupCriterion.criterion; if (isNegative) { Console.WriteLine("{0}) Negative placement with ad group ID = '{1}', placement " + "ID = '{2}', and url = '{3}' was found.", i + 1, adGroupCriterion.adGroupId, placement.id, placement.url); } else { Console.WriteLine("{0}) Placement with ad group ID = '{1}', placement ID = " + "'{2}' and url = '{3}' was found.", i + 1, adGroupCriterion.adGroupId, placement.id, placement.url); } i++; } } selector.paging.IncreaseOffset(); } while (selector.paging.startIndex < page.totalNumEntries); Console.WriteLine("Number of placements found: {0}", page.totalNumEntries); } catch (Exception e) { throw new System.ApplicationException("Failed to retrieve placements.", e); } }
/// <summary> /// Runs the code example. /// </summary> /// <param name="user">The AdWords user.</param> /// <param name="adGroupId">ID of the ad group from which keywords are /// retrieved.</param> public void Run(AdWordsUser user, long adGroupId) { // Get the AdGroupCriterionService. AdGroupCriterionService adGroupCriterionService = (AdGroupCriterionService) user.GetService( AdWordsService.v201502.AdGroupCriterionService); // Create a selector. Selector selector = new Selector() { fields = new string[] { Keyword.Fields.Id, Keyword.Fields.KeywordMatchType, Keyword.Fields.KeywordText, Keyword.Fields.CriteriaType }, predicates = new Predicate[] { // Select only keywords. Predicate.In(Keyword.Fields.CriteriaType, new string[] {"KEYWORD"}), // Restrict search to an ad group. Predicate.Equals(AdGroupCriterion.Fields.AdGroupId, adGroupId), }, paging = Paging.Default }; AdGroupCriterionPage page = new AdGroupCriterionPage(); try { do { // Get the keywords. page = adGroupCriterionService.get(selector); // Display the results. if (page != null && page.entries != null) { int i = selector.paging.startIndex; 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; string keywordType = isNegative ? "Negative keyword" : "Keyword"; Console.WriteLine("{0}) {1} with text = '{2}', matchtype = '{3}', ID = '{4}' and " + "criteria type = '{5}' was found.", i + 1, keywordType, keyword.text, keyword.matchType, keyword.id, keyword.CriterionType); i++; } } selector.paging.IncreaseOffset(); } while (selector.paging.startIndex < page.totalNumEntries); Console.WriteLine("Number of keywords found: {0}", page.totalNumEntries); } catch (Exception e) { throw new System.ApplicationException("Failed to retrieve keywords.", e); } }
public void TestGetAllCampaignsMockOnly() { ServiceSignature mockSignature = MockUtilities.RegisterMockService(user, AdWordsService.v201502.CampaignService, typeof(MockCampaignService)); CampaignService campaignService = (CampaignService) user.GetService(mockSignature); Assert.That(campaignService is MockCampaignService); // Create a selector. Selector selector = new Selector(); selector.fields = new string[] { "Id", "Name", "Status" }; CampaignPage page = null; Assert.DoesNotThrow(delegate() { page = campaignService.get(selector); }); Assert.IsNull(page); Assert.True((campaignService as MockCampaignService).GetCalled); }
/// <summary> /// Runs the code example. /// </summary> /// <param name="user">The AdWords user.</param> /// <param name="adGroupId">ID of the ad group from which keywords are /// retrieved.</param> public void Run(AdWordsUser user, long adGroupId) { // Get the AdGroupCriterionService. AdGroupCriterionService adGroupCriterionService = (AdGroupCriterionService) user.GetService( AdWordsService.v201502.AdGroupCriterionService); // Create a selector. Selector selector = new Selector(); selector.fields = new string[] { "Id", "KeywordMatchType", "KeywordText", "CriteriaType" }; // Select only keywords. Predicate criteriaPredicate = new Predicate(); criteriaPredicate.field = "CriteriaType"; criteriaPredicate.@operator = PredicateOperator.IN; criteriaPredicate.values = new string[] {"KEYWORD"}; // Restrict search to an ad group. Predicate adGroupPredicate = new Predicate(); adGroupPredicate.field = "AdGroupId"; adGroupPredicate.@operator = PredicateOperator.EQUALS; adGroupPredicate.values = new string[] { adGroupId.ToString() }; selector.predicates = new Predicate[] {adGroupPredicate, criteriaPredicate}; // 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; string keywordType = isNegative ? "Negative keyword" : "Keyword"; Console.WriteLine("{0}) {1} with text = '{2}', matchtype = '{3}', ID = '{4}' and " + "criteria type = '{5}' was found.", i + 1, keywordType, keyword.text, keyword.matchType, keyword.id, keyword.CriterionType); i++; } } offset += pageSize; } while (offset < page.totalNumEntries); Console.WriteLine("Number of keywords found: {0}", page.totalNumEntries); } catch (Exception e) { throw new System.ApplicationException("Failed to retrieve keywords.", e); } }
/// <summary> /// Gets the ad group ad by ID. /// </summary> /// <param name="adGroupAdService">The AdGroupAdService instance.</param> /// <param name="adGroupId">ID of the ad group.</param> /// <param name="adId">ID of the ad to be retrieved.</param> /// <returns>The AdGroupAd if the item could be retrieved, null otherwise. /// </returns> private AdGroupAd GetAdGroupAd(AdGroupAdService adGroupAdService, long adGroupId, long adId) { // Create a selector. Selector selector = new Selector(); selector.fields = new string[] { "Id", "Url" }; // Restrict the fetch to only the selected ad group ID and ad ID. Predicate adGroupPredicate = new Predicate(); adGroupPredicate.field = "AdGroupId"; adGroupPredicate.@operator = PredicateOperator.EQUALS; adGroupPredicate.values = new string[] { adGroupId.ToString() }; Predicate adPredicate = new Predicate(); adPredicate.field = "Id"; adPredicate.@operator = PredicateOperator.EQUALS; adPredicate.values = new string[] { adId.ToString() }; selector.predicates = new Predicate[] { adGroupPredicate, adPredicate }; // Get the ad. AdGroupAdPage page = adGroupAdService.get(selector); if (page != null && page.entries != null && page.entries.Length > 0) { return page.entries[0]; } else { return null; } }
/// <summary> /// Gets all campaign ids in the account. /// </summary> /// <param name="user">The user for which campaigns are retrieved.</param> /// <returns>The list of campaign ids.</returns> private long[] GetAllCampaignIds(AdWordsUser user) { // Get the CampaignService. CampaignService campaignService = (CampaignService) user.GetService(AdWordsService.v201502.CampaignService); List<long> allCampaigns = new List<long>(); // Create the selector. Selector selector = new Selector() { fields = new string[] { Campaign.Fields.Id } }; // Get all campaigns. CampaignPage page = campaignService.get(selector); // Return the results. if (page != null && page.entries != null) { foreach (Campaign campaign in page.entries) { allCampaigns.Add(campaign.id); } } return allCampaigns.ToArray(); }
/// <summary> /// Gets the shared set IDs associated with a campaign. /// </summary> /// <param name="user">The user that owns the campaign.</param> /// <param name="campaignId">The campaign identifier.</param> /// <returns>The list of shared set IDs associated with the campaign.</returns> private List<string> GetSharedSetIds(AdWordsUser user, long campaignId) { CampaignSharedSetService campaignSharedSetService = (CampaignSharedSetService) user.GetService( AdWordsService.v201502.CampaignSharedSetService); Selector selector = new Selector() { fields = new string[] { "SharedSetId", "CampaignId", "SharedSetName", "SharedSetType" }, predicates = new Predicate[] { new Predicate() { field = "CampaignId", @operator = PredicateOperator.EQUALS, values = new string[] {campaignId.ToString()} }, new Predicate() { field = "SharedSetType", @operator = PredicateOperator.IN, values = new string[] {SharedSetType.NEGATIVE_KEYWORDS.ToString()} } } }; List<string> sharedSetIds = new List<string>(); int offset = 0; int pageSize = 500; CampaignSharedSetPage page = new CampaignSharedSetPage(); try { do { selector.paging.startIndex = offset; selector.paging.numberResults = pageSize; // Get the campaigns. page = campaignSharedSetService.get(selector); // Display the results. if (page != null && page.entries != null) { int i = offset; foreach (CampaignSharedSet campaignSharedSet in page.entries) { sharedSetIds.Add(campaignSharedSet.sharedSetId.ToString()); Console.WriteLine("Campaign shared set ID {0} and name '{1}' found for campaign " + "ID {2}.\n", campaignSharedSet.sharedSetId, campaignSharedSet.sharedSetName, campaignSharedSet.campaignId); } } offset += pageSize; } while (offset < page.totalNumEntries); return sharedSetIds; } catch (Exception e) { throw new Exception("Failed to get shared set ids for campaign.", e); } }
/// <summary> /// Gets the shared criteria in a shared set. /// </summary> /// <param name="user">The user that owns the shared set.</param> /// <param name="sharedSetIds">The shared criteria IDs.</param> /// <returns>The list of shared criteria.</returns> private List<SharedCriterion> GetSharedCriteria(AdWordsUser user, List<string> sharedSetIds) { SharedCriterionService sharedCriterionService = (SharedCriterionService) user.GetService(AdWordsService.v201502.SharedCriterionService); Selector selector = new Selector() { fields = new string[] { "SharedSetId", "Id", "KeywordText", "KeywordMatchType", "PlacementUrl" }, predicates = new Predicate[] { new Predicate() { field = "SharedSetId", @operator = PredicateOperator.IN, values = sharedSetIds.ToArray() } } }; List<SharedCriterion> sharedCriteria = new List<SharedCriterion>(); int offset = 0; int pageSize = 500; SharedCriterionPage page = new SharedCriterionPage(); try { do { selector.paging.startIndex = offset; selector.paging.numberResults = pageSize; // Get the campaigns. page = sharedCriterionService.get(selector); // Display the results. if (page != null && page.entries != null) { int i = offset; foreach (SharedCriterion sharedCriterion in page.entries) { switch (sharedCriterion.criterion.type) { case CriterionType.KEYWORD: Keyword keyword = (Keyword) sharedCriterion.criterion; Console.WriteLine("Shared negative keyword with ID {0} and text '{1}' was " + "found.", keyword.id, keyword.text); break; case CriterionType.PLACEMENT: Placement placement = (Placement) sharedCriterion.criterion; Console.WriteLine("Shared negative placement with ID {0} and URL '{1}' " + "was found.", placement.id, placement.url); break; default: Console.WriteLine("Shared criteria with ID {0} was found.", sharedCriterion.criterion.id); break; } sharedCriteria.Add(sharedCriterion); } } offset += pageSize; } while (offset < page.totalNumEntries); return sharedCriteria; } catch (Exception e) { throw new Exception("Failed to get shared criteria.", e); } }