基于多个日期范围的AWQL查询

时间:2018-11-09 11:37:42

标签: c# google-adwords adwords-api-v201109 awql

我正在从AdWords API中提取一些简单的统计信息,并希望对其进行改进以恢复同比数据。

我想获得2017年和2018年一个月的总点击次数,展示次数和点击率。

我的目标:一次调用即可提取此数据...我不想每次需要比较2个日期范围时都必须调用API两次。

我不确定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));

}

0 个答案:

没有答案