谷歌官方对AWQL的解释:

SQL-like  syntax for setting up your fields, ordering, paging, and predicates all in one simple string. AWQL is mainly used for reports, but is also supported with some services.

代码介绍

本篇开始介绍如何使用AWQL语句来查询广告数据,这里会需要一点SQL基础。

使用Google Ads scripts API的根对象adsapp,调用内部方法report()配合AWQL语句来调取google内部的数据库数据。

本次调用“campaign”这个库,从里面调出日维度的广告系列数据并打印出来。

AWQL语句跟SQL语句相似,这里我们遵循AQWL语法选择想要的维度:

然后需要做一下筛选,不然无法导出数据,对点击和日期做一下筛选,如点击大于0,日期为过去7天。

这里的筛选条件:

整合后AWQL语句如下:

select segment.date,campaign.name,metrics.clicks from campaign where metrics.clicks>0 and segments.date DURING LAST_7_DAYS     

把AWQL语句定义为一个变量,便于report()调用

let awql_query = 'select segment.date,campaign.name,metrics.clicks from campaign where metrics.clicks>0 and segments.date DURING LAST_7_DAYS'
let report = AdsApp.report(awql_query)

这里通过report()方法拿到的数据依然不能直接调用,拿到的数据为类似数组的形式,需要调用report.rows()这个选择器来提取内部数据

跟之前【获取广告系列数据-1】文章介绍的广告系列选择器用法一致,这里需要用到while循环结构,hasnext()和next()方法来提取每个维度的数据。

let rows = report.rows()
while(rows.hasNext()){
let row  = rows.next()
//到这里已经可以提取report内每个维度的数据了
}

这里的row变量实际为一个数组,里面带有我们所需维度的键和键值,现在只要单独调取里面键和键值出来就是需要的数据,比如点击,日期。键名跟AWQL查询语句内的维度名一致。

//给各个维度定义变量名并打印出来
let clicks = row['metrics.clicks']
let date  = row['segment.date']
let camapaignname = ['campaign.name']
Logger.log(date)
Logger.log(camapaignname)
Logger.log(clicks)

执行结果

点击"run"或者"preview"可以看到数据被打印出来了:

完整代码

let awql_query = 'select segment.date,campaign.name,metrics.clicks from campaign where metrics.clicks>0 and segments.date DURING LAST_7_DAYS'
let report = AdsApp.report(awql_query)
let rows = report.rows()
while(rows.hasNext()){
let row  = rows.next()
let clicks = row['metrics.clicks']
let date  = row['segment.date']
let camapaignname = ['campaign.name']
Logger.log(date)
Logger.log(camapaignname)
Logger.log(clicks)
}

掌握该方法之后我们后续可以更自由的查询和导出我们所需要的广告系列数据。

此作者没有提供个人介绍
最后更新于 2024-12-17