Я извлекаю простую статистику из API AdWords и хочу улучшить ее, чтобы вернуть данные за прошлый год.
Я хочу получить общее количество кликов, показов, CTR за месяц в 2017 и 2018 годах.
Моя цель: получить эти данные за 1 вызов ... Я не хочу вызывать API дважды каждый раз, когда мне нужно сравнить 2 диапазона дат.
Я не уверен, что AWQL может справиться с этим. Кто-нибудь может посоветовать? Вот мой код ...
var googleService = adClient.GetService(Services.V0.GoogleAdsService);
string query = @"SELECT date, metrics.impressions, metrics.clicks, metrics.ctr
FROM campaign
WHERE date BETWEEN '2018-10-01' AND '2018-10-31'
OR date BETWEEN '2017-10-01' AND '2017-10-31' // <- this bit is not working
LIMIT 50";
PagedEnumerable<SearchGoogleAdsResponse, GoogleAdsRow> response =
googleService.Search(customerId.ToString(), query);
if(response!=null && response.Count()>0)
{
//then (just as an example), I could extract my info like...
long clicks2018 = Convert.ToInt64(response.Where(n => n.Date.StartsWith("2018")).Sum(n => n.Metrics.Clicks));
long impressions2018 = Convert.ToInt64(response.Where(n => n.Date.StartsWith("2018")).Sum(n => n.Metrics.Impressions));
double ctr2018 = Convert.ToDouble(response.Where(n => n.Date.StartsWith("2018")).Sum(n => n.Metrics.Ctr));
long clicks2017 = Convert.ToInt64(response.Where(n=>n.Date.StartsWith("2017")).Sum(n => n.Metrics.Clicks));
long impressions2017 = Convert.ToInt64(response.Where(n => n.Date.StartsWith("2017")).Sum(n => n.Metrics.Impressions));
double ctr2017 = Convert.ToDouble(response.Where(n => n.Date.StartsWith("2017")).Sum(n => n.Metrics.Ctr));
}