public bool GetAccountHasChanged(DateTime From, DateTime To, string AccountId = null) { // save the current selected account (probably the mcc root) var originalAccountId = this.GetActiveAccount(); // change active account this.SetActiveAccount(AccountId); try { var service = (CustomerSyncService)this.user.GetService(AdWordsService.v201708.CustomerSyncService); // get all campaigns var campaignIds = this.GetALLCampaigns(); if (campaignIds == null || campaignIds.Count == 0) { return(false); } var selector = new CustomerSyncSelector { campaignIds = campaignIds.ToArray(), dateTimeRange = new DateTimeRange { min = DateTimeParse(From), max = DateTimeParse(To), }, }; var changesDataValue = service.get(selector); if (changesDataValue == null || changesDataValue.changedCampaigns == null || changesDataValue.changedCampaigns.Length == 0) { return(false); } return(true); } finally { // change-back to the original account this.SetActiveAccount(originalAccountId); } }
/// <summary> /// Runs the code example. /// </summary> /// <param name="user">The AdWords user.</param> public void Run(AdWordsUser user) { // Get the CustomerSyncService. CustomerSyncService customerSyncService = (CustomerSyncService)user.GetService(AdWordsService.v201502. CustomerSyncService); // The date time string should be of the form yyyyMMdd HHmmss zzz string minDateTime = DateTime.Now.AddDays(-1).ToUniversalTime().ToString( "yyyyMMdd HHmmss") + " UTC"; string maxDateTime = DateTime.Now.ToUniversalTime().ToString("yyyyMMdd HHmmss") + " UTC"; // Create date time range. DateTimeRange dateTimeRange = new DateTimeRange(); dateTimeRange.min = minDateTime; dateTimeRange.max = maxDateTime; try { // Create the selector. CustomerSyncSelector selector = new CustomerSyncSelector(); selector.dateTimeRange = dateTimeRange; selector.campaignIds = GetAllCampaignIds(user); // Get all account changes for campaign. CustomerChangeData accountChanges = customerSyncService.get(selector); // Display the changes. if (accountChanges != null && accountChanges.changedCampaigns != null) { Console.WriteLine("Displaying changes up to: {0}", accountChanges.lastChangeTimestamp); foreach (CampaignChangeData campaignChanges in accountChanges.changedCampaigns) { Console.WriteLine("Campaign with id \"{0}\" was changed:", campaignChanges.campaignId); Console.WriteLine(" Campaign changed status: {0}", campaignChanges.campaignChangeStatus); if (campaignChanges.campaignChangeStatus != ChangeStatus.NEW) { Console.WriteLine(" Added ad extensions: {0}", GetFormattedList( campaignChanges.addedAdExtensions)); Console.WriteLine(" Added campaign criteria: {0}", GetFormattedList(campaignChanges.addedCampaignCriteria)); Console.WriteLine(" Removed ad extensions: {0}", GetFormattedList(campaignChanges.removedAdExtensions)); Console.WriteLine(" Removed campaign criteria: {0}", GetFormattedList(campaignChanges.removedAdExtensions)); if (campaignChanges.changedAdGroups != null) { foreach (AdGroupChangeData adGroupChanges in campaignChanges.changedAdGroups) { Console.WriteLine(" Ad group with id \"{0}\" was changed:", adGroupChanges.adGroupId); Console.WriteLine(" Ad group changed status: {0}", adGroupChanges.adGroupChangeStatus); if (adGroupChanges.adGroupChangeStatus != ChangeStatus.NEW) { Console.WriteLine(" Ads changed: {0}", GetFormattedList(adGroupChanges.changedAds)); Console.WriteLine(" Criteria changed: {0}", GetFormattedList(adGroupChanges.changedCriteria)); Console.WriteLine(" Criteria removed: {0}", GetFormattedList(adGroupChanges.removedCriteria)); } } } } Console.WriteLine(); } } else { Console.WriteLine("No account changes were found."); } } catch (Exception e) { throw new System.ApplicationException("Failed to get account changes.", e); } }
/// <summary> /// Runs the code example. /// </summary> /// <param name="user">The AdWords user.</param> public void Run(AdWordsUser user) { // Get the CustomerSyncService. CustomerSyncService customerSyncService = (CustomerSyncService) user.GetService(AdWordsService.v201601. CustomerSyncService); // The date time string should be of the form yyyyMMdd HHmmss zzz string minDateTime = DateTime.Now.AddDays(-1).ToUniversalTime().ToString( "yyyyMMdd HHmmss") + " UTC"; string maxDateTime = DateTime.Now.ToUniversalTime().ToString("yyyyMMdd HHmmss") + " UTC"; // Create date time range. DateTimeRange dateTimeRange = new DateTimeRange(); dateTimeRange.min = minDateTime; dateTimeRange.max = maxDateTime; try { // Create the selector. CustomerSyncSelector selector = new CustomerSyncSelector(); selector.dateTimeRange = dateTimeRange; selector.campaignIds = GetAllCampaignIds(user); // Get all account changes for campaign. CustomerChangeData accountChanges = customerSyncService.get(selector); // Display the changes. if (accountChanges != null && accountChanges.changedCampaigns != null) { Console.WriteLine("Displaying changes up to: {0}", accountChanges.lastChangeTimestamp); foreach (CampaignChangeData campaignChanges in accountChanges.changedCampaigns) { Console.WriteLine("Campaign with id \"{0}\" was changed:", campaignChanges.campaignId); Console.WriteLine(" Campaign changed status: {0}", campaignChanges.campaignChangeStatus); if (campaignChanges.campaignChangeStatus != ChangeStatus.NEW) { Console.WriteLine(" Added ad extensions: {0}", GetFormattedList( campaignChanges.addedAdExtensions)); Console.WriteLine(" Added campaign criteria: {0}", GetFormattedList(campaignChanges.addedCampaignCriteria)); Console.WriteLine(" Removed ad extensions: {0}", GetFormattedList(campaignChanges.removedAdExtensions)); Console.WriteLine(" Removed campaign criteria: {0}", GetFormattedList(campaignChanges.removedAdExtensions)); if (campaignChanges.changedAdGroups != null) { foreach (AdGroupChangeData adGroupChanges in campaignChanges.changedAdGroups) { Console.WriteLine(" Ad group with id \"{0}\" was changed:", adGroupChanges.adGroupId); Console.WriteLine(" Ad group changed status: {0}", adGroupChanges.adGroupChangeStatus); if (adGroupChanges.adGroupChangeStatus != ChangeStatus.NEW) { Console.WriteLine(" Ads changed: {0}", GetFormattedList(adGroupChanges.changedAds)); Console.WriteLine(" Criteria changed: {0}", GetFormattedList(adGroupChanges.changedCriteria)); Console.WriteLine(" Criteria removed: {0}", GetFormattedList(adGroupChanges.removedCriteria)); } } } } Console.WriteLine(); } } else { Console.WriteLine("No account changes were found."); } } catch (Exception e) { throw new System.ApplicationException("Failed to get account changes.", e); } }
private void GetAccountHistory_Click(object sender, EventArgs e) { Dictionary <string, string> headers = new Dictionary <string, string>() { { "DeveloperToken", this.DeveloperToken.Text }, { "UserAgent", String.Format("Edge File Manager (version {0})", System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString()) }, { "EnableGzipCompression", this.EnableGzipCompression.Text }, { "ClientCustomerId", this.ClientCustomerId.Text }, { "Email", this.Email.Text } }; User = new AdWordsUser(headers); try { //Getting AuthToken (User.Config as AdWordsAppConfig).AuthToken = AdwordsUtill.GetAuthToken(User); // Get the CustomerSyncService. CustomerSyncService customerSyncService = (CustomerSyncService)User.GetService(AdWordsService.v201302.CustomerSyncService); // The date time string should be of the form yyyyMMdd HHmmss zzz string minDateTime = DateTime.Now.AddDays(-1).ToUniversalTime().ToString("yyyyMMdd HHmmss") + " UTC"; string maxDateTime = DateTime.Now.ToUniversalTime().ToString("yyyyMMdd HHmmss") + " UTC"; // Create date time range. DateTimeRange dateTimeRange = new DateTimeRange(); dateTimeRange.min = minDateTime; dateTimeRange.max = maxDateTime; // Create the selector. CustomerSyncSelector selector = new CustomerSyncSelector(); selector.dateTimeRange = dateTimeRange; selector.campaignIds = GetAllCampaignIds(User); // Get all account changes for campaign. CustomerChangeData accountChanges = customerSyncService.get(selector); // Display the changes. if (accountChanges != null && accountChanges.changedCampaigns != null) { Console.WriteLine("Displaying changes up to: {0}", accountChanges.lastChangeTimestamp); foreach (CampaignChangeData campaignChanges in accountChanges.changedCampaigns) { Console.WriteLine("Campaign with id \"{0}\" was changed:", campaignChanges.campaignId); Console.WriteLine(" Campaign changed status: {0}", campaignChanges.campaignChangeStatus); if (campaignChanges.campaignChangeStatus != ChangeStatus.NEW) { Console.WriteLine(" Added ad extensions: {0}", GetFormattedList( campaignChanges.addedAdExtensions)); Console.WriteLine(" Added campaign criteria: {0}", GetFormattedList(campaignChanges.addedCampaignCriteria)); Console.WriteLine(" Added campaign targeting: {0}", campaignChanges.campaignTargetingChanged ? "yes" : "no"); Console.WriteLine(" Deleted ad extensions: {0}", GetFormattedList(campaignChanges.deletedAdExtensions)); Console.WriteLine(" Deleted campaign criteria: {0}", GetFormattedList(campaignChanges.deletedCampaignCriteria)); if (campaignChanges.changedAdGroups != null) { foreach (AdGroupChangeData adGroupChanges in campaignChanges.changedAdGroups) { Console.WriteLine(" Ad group with id \"{0}\" was changed:", adGroupChanges.adGroupId); Console.WriteLine(" Ad group changed status: {0}", adGroupChanges.adGroupChangeStatus); if (adGroupChanges.adGroupChangeStatus != ChangeStatus.NEW) { Console.WriteLine(" Ads changed: {0}", GetFormattedList(adGroupChanges.changedAds)); Console.WriteLine(" Criteria changed: {0}", GetFormattedList(adGroupChanges.changedCriteria)); Console.WriteLine(" Criteria deleted: {0}", GetFormattedList(adGroupChanges.deletedCriteria)); } } } } Console.WriteLine(); } } else { Console.WriteLine("No account changes were found.");; } } catch (Exception ex) { throw new System.ApplicationException("Failed to get account changes.", ex); } }