Analytics Query Language (AQL) Samples

The ShufflePoint Analytics Query Language (AQL) is used to create Excel® and PowerPoint® documents with refreshable Google™ Analytics data. It is also the basis of ShufflePoint's Google Analytics with Google Gadgets integration.

Note that AQL is case-insensitive. Samples here have main keywords in caps for clarity.

Standard table

SELECT
  METRICS ga:pageviews, ga:timeOnPage, ga:bounceRate ON COLUMNS
  DIMENSIONS ga:pagePath ON ROWS
FROM default
WHERE TIMEFRAME default

Sideways Table

SELECT
  DIMENSIONS ga:continent ON COLUMNS
  METRICS ga:pageviews, ga:timeOnPage, ga:bounceRate ON ROWS
FROM default
WHERE TIMEFRAME default

Pivot Table

SELECT
  DIMENSIONS ga:campaign ON COLUMNS
  DIMENSIONS ga:medium ON ROWS
FROM default
WHERE
  METRICS ga:transactionRevenue
  TIMEFRAME yearToDate

Timeframe

Given

SELECT
  METRICS ga:pageviews, ga:timeOnPage, ga:bounceRate ON COLUMNS
  DIMENSIONS ga:date ON ROWS
FROM default
WHERE TIMEFRAME 2009-01-01:2009-06-15

Named

SELECT
  METRICS ga:pageviews, ga:timeOnPage, ga:bounceRate ON COLUMNS
  DIMENSIONS ga:date ON ROWS
FROM default
WHERE TIMEFRAME LAST30DAYS

Shifted

SELECT
  METRICS ga:visitors ON COLUMNS
  DIMENSIONS ga:month:2 ON ROWS
FROM default
WHERE TIMEFRAME yearToDate

Last four Months

SELECT
  METRICS ga:visitors ON COLUMNS
  DIMENSIONS ga:month ON ROWS
FROM default
WHERE TIMEFRAME months:4

Sorting and Limiting Rows

With Other Row

SELECT
  METRICS ga:avgPageDuration ON COLUMNS
  DIMENSIONS ga:continent ON ROWS TOP 4 by ga:avgPageDuration
FROM default
WHERE TIMEFRAME default

Without Other Row

SELECT
  METRICS ga:avgPageDuration ON COLUMNS
  DIMENSIONS ga:continent ON ROWS
     TOP 4 noOther by ga:avgPageDuration
FROM default
WHERE TIMEFRAME default

Advanced Segments

Named segments

SELECT
  METRICS ga:visits, ga:bounceRate ON COLUMNS
  DIMENSIONS ga:date ON ROWS
FROM default
WHERE
  TIMEFRAME default
  SEGMENT "New Visitors"

Dyanmic segments

SELECT
  METRICS ga:visits, ga:bounceRate ON COLUMNS
  DIMENSIONS ga:date ON ROWS
FROM default
WHERE
  TIMEFRAME default
  SEGMENT ga:visitorType == "New Visitor"
SELECT
  METRICS ga:visits, ga:bounceRate ON COLUMNS
  DIMENSIONS ga:date ON ROWS
FROM default
WHERE
  TIMEFRAME default
  SEGMENT ga:medium==cpa OR ga:medium==cpc OR ga:medium==cpm

Filters

String Comparison

SELECT
  METRICS ga:visits, ga:visits:{%} ON COLUMNS
  DIMENSIONS ga:visitorType ON ROWS
FROM default
WHERE
  TIMEFRAME default
  FILTER ga:visitorType == "New Visitor"

Multiple String Comparisons

SELECT
  METRICS 
      ga:visits, ga:goal1Completions, ga:goal2Completions ON COLUMNS
  DIMENSIONS ga:source ON ROWS BY  ga:visits DESC
FROM default
WHERE
  TIMEFRAME default
  FILTER ga:source == "google" AND ga:medium == "organic"

Regular Expressions

Regular expression can be a maximum of 64 characters.

SELECT
  METRICS ga:visits ON COLUMNS
  DIMENSIONS ga:source ON ROWS BY  ga:visits DESC
FROM default
WHERE
  TIMEFRAME default
  FILTER ga:source =~ "^(google|google\..*)$" 

Formatting

Format Result

SELECT 
  METRICS ga:visits:{#,##0} ON COLUMNS 
  DIMENSIONS ga:source ON ROWS TOP 5 BY ga:visits DESC 
FROM default 
WHERE TIMEFRAME yearToDate

Calculate Percentage

SELECT 
  METRICS ga:visits:{#,##0}, ga:visits:{0.00%} ON COLUMNS 
  DIMENSIONS ga:source ON ROWS TOP 5 BY ga:visits DESC 
FROM default 
WHERE TIMEFRAME yearToDate

Format Function

Single Value

SELECT 
FROM default 
WHERE 
  METRICS format("{0:#} Visits", ga:visits)
  TIMEFRAME yearToDate

Multiple Values

SELECT
FROM default
WHERE
 METRICS format("{0:n0} visits used {1:n0} languages", ga:visits, ga:language)
 TIMEFRAME default

Counting Dimensions

SELECT
FROM default
WHERE
 METRICS format("{0:n0} visits used {1:n0} languages", ga:visits, ga:language)
 TIMEFRAME default

Literals

SELECT 
  METRICS "The site had", ga:visits ON COLUMNS 
  DIMENSIONS ga:continent ON ROWS
FROM default 
WHERE TIMEFRAME default

Row and Column Headers

Suppress Row Headers

SELECT norowheaders
  METRICS ga:pageviews, ga:timeOnPage, ga:bounceRate ON COLUMNS
  DIMENSIONS ga:country ON ROWS TOP 10 BY ga:pageviews
FROM default
WHERE TIMEFRAME default

Suppress Column Headers

SELECT noColumnHeaders
  METRICS ga:pageviews, ga:timeOnPage, ga:bounceRate ON COLUMNS
  DIMENSIONS ga:country ON ROWS TOP 10 BY ga:pageviews
FROM default
WHERE TIMEFRAME default

Suppress All Headers

SELECT noRowHeaders noColumnHeaders
  METRICS ga:pageviews, ga:timeOnPage, ga:bounceRate ON COLUMNS
  DIMENSIONS ga:country ON ROWS TOP 10 BY ga:pageviews
FROM default
WHERE TIMEFRAME default

Pivot Totals

Row Totals

SELECT
  DIMENSIONS ga:campaign ON COLUMNS TOTALS
  DIMENSIONS ga:medium ON ROWS
FROM default
WHERE
  METRICS ga:transactionRevenue
  TIMEFRAME yearToDate

Row Top and Totals

SELECT
  DIMENSIONS ga:campaign ON COLUMNS TOP 3 TOTALS
  DIMENSIONS ga:medium ON ROWS
FROM default
WHERE
  METRICS ga:transactionRevenue
  TIMEFRAME yearToDate

Row Top, Totals, and Sort

SELECT
  DIMENSIONS ga:campaign ON COLUMNS TOP 3 TOTALS BY ga:transactionRevenue
  DIMENSIONS ga:medium ON ROWS
FROM default
WHERE
  METRICS ga:transactionRevenue
  TIMEFRAME yearToDate

Column Top, Totals, and Sort

SELECT
  DIMENSIONS ga:campaign ON COLUMNS
  DIMENSIONS ga:medium ON ROWS TOP 3 TOTALS BY ga:transactionRevenue
FROM default
WHERE
  METRICS ga:transactionRevenue
  TIMEFRAME yearToDate

Column and Column Totals and Sort

SELECT
  DIMENSIONS ga:campaign ON COLUMNS TOTALS BY ga:transactionRevenue
  DIMENSIONS ga:medium ON ROWS TOTALS BY ga:transactionRevenue
FROM default
WHERE
  METRICS ga:transactionRevenue
  TIMEFRAME yearToDate