2016-08-29 4 views
0

Для обновления кампании Я использую этот кодКак обновить кампанию в объявлениях Bing?

public async Task<List<long?>> updateCampaign(Campaign campaign,string status) 
    { 
     try 
     { 
      campaign.Status = (CampaignStatus)(int)Enum.Parse(typeof(CampaignStatus), status); 
      var request = new UpdateCampaignsRequest 
      { 
       Campaigns = new Campaign[] { campaign }, 
       CustomerId = "xxxxxx", 
       UserName = "[email protected]", 
       Password = "[email protected]", 
       ApplicationToken = "myApplicationToken", 
       CustomerAccountId = "123456", 
       DeveloperToken = "1234567890" 
      }; 

      CampaignService = new ServiceClient<ICampaignManagementService>(_authorizationData); 
      CampaignService.RefreshOAuthTokensAutomatically = false; 
      var result = (await CampaignService.CallAsync((s, r) => s.UpdateCampaignsAsync(r), request)); 

      if (result.TrackingId != null) 
      { 
       return result.CampaignIds.ToList(); 
      } 
      else 
      { 
       return new List<long?>(); 
      } 
     } 
     catch (Exception ex) 
     { 
      ErrorLog.log(ex); 
      return new List<long?>(); 
     } 
    } 

Когда я запускаю этот код, я получил эту ошибку «Неверные данные клиента. Проверьте сведения об ошибках SOAP для получения дополнительной информации»

спасибо.

+0

Смотрите, если это может помочь вам: https://social.msdn.microsoft.com/Forums/en-US/ab879ffa-110a-4e36-88f1-79bae367a5cb/updatekeywords-invalid -client-data? forum = BingAds – Aby

ответ

1

Для обновления кампании мы можем использовать BulkServiceManager для массового обновления кампании, вы также можете использовать это обновление для одной кампании.

public async Task<List<long?>> updateCampaign(List<Campaign> campaigns) 
    { 
     try 
     { 
      var listBulkCampaign = new List<BulkCampaign>(); 
      foreach (var campaign in campaigns) 
      { 
       var _bulkCampaign = new BulkCampaign() 
       { 
        Campaign = campaign 
       }; 
       listBulkCampaign.Add(_bulkCampaign); 
      } 
      BulkServiceManager bulkServiceManager = new BulkServiceManager(_authorizationData); 
      string fileName = bingCampaignUpdate.csv; 
      var campaigns = (await bulkServiceManager.UploadEntitiesAsync(new EntityUploadParameters 
      { 
       Entities = listBulkCampaign, 
       OverwriteResultFile = true, 
       ResultFileDirectory = FileDirectory, 
       ResultFileName = fileName, 
       ResponseMode = ResponseMode.ErrorsAndResults 
      })).OfType<BulkCampaign>().ToList(); 

      return new List<long?>(); 
     } 
     catch (Exception ex) 
     { 
      ErrorLog.log(ex); 
      return new List<long?>(); 
     } 
} 

Необходимо загрузить отчет .csv и обновить Кампании.

Я надеюсь, что это поможет вам

+1

спасибо @ nenu235 – nenu235

+0

вы посоветовали загрузить отчет .csv для обновления кампаний. Будет ли еще один путь использовать DownloadEntitiesAsync, если вы хотите избежать использования файловой системы? (о, и, кстати, моя проблема аналогична, но требует обновления групп объявлений во многих кампаниях. Предполагаю, что ваш примерный код можно использовать с типом BulkAdGroup. – dubs