Как получить CSV в виде строки или потока в Bing Ads API

Я использую API объявлений Bing для создания панели мониторинга эффективности рекламы в Интернете для клиента, использующего Microsoft.BingAds.SDK из nuget.

Сейчас все работает, но мне нужно загрузить отчет csv в файловую систему, прежде чем читать данные и показывать их пользователю:

            var t = await manager.DownloadFileAsync(
                new ReportingDownloadParameters()
                {
                    ReportRequest = request,
                    OverwriteResultFile = true,
                    ResultFileDirectory = @"C:\Temp",
                    ResultFileName = @"GL15.csv",
                });

            var csvConfig = new CsvHelper.Configuration.CsvConfiguration()
            {
                Delimiter = ",",
                HasHeaderRecord = true,
                Quote = '"'
            };

            var returnList = new List<BingDailyCampaignPerformance>();

            using (var textReader = System.IO.File.OpenText(@"C:\Temp\GL15.csv"))
            using (var csvReader = new CsvHelper.CsvReader(textReader, csvConfig))
            {
                while (csvReader.Read())
                {
                    returnList.Add(GetRow(csvReader));
                }
            }

Это кажется менее эффективным - почему я не могу просто загрузить CSV в память каким-то образом и пропустить файловую систему?

Есть ли возможность сделать это?

1 ответ

Решение

В BulkServiceManager есть опция для чтения сущностей напрямую через временную память, но в настоящее время ReportingServiceManager поддерживает загрузку только файлов, как вы заметили. Как и в случае с массовой загрузкой, мы отслеживаем запрос функции "ReportFileReader", хотя еще нет фирмы ETA. Пожалуйста, не стесняйтесь добавлять к предложениям Bing Ads.

Другие вопросы по тегам