Reports
Stay organized with collections
Save and categorize content based on your preferences.
Create a text report
function runReport() {
// Google Ads reports return data faster than campaign management methods
// and can be used to retrieve basic structural information on
// your Account, Campaigns, AdGroups, Ads, Keywords, etc. You can refer to
// https://developers.google.com/google-ads/api/docs/reporting/overview
// for more details.
// See https://developers.google.com/google-ads/api/fields/latest/overview#list-of-all-resources
// for all the supported report types.
// See https://developers.google.com/google-ads/api/docs/query/overview for
// details on how to use GAQL, the query language for reports.
// See https://developers.google.com/google-ads/api/docs/reporting/uireports
// for details on how to map an Google Ads UI feature to the corresponding
// reporting API feature.
const searchResults = AdsApp.search(
'SELECT campaign.name, metrics.clicks, metrics.impressions, metrics.cost_micros ' +
'FROM campaign ' +
'WHERE metrics.impressions < 10 ' +
' AND segments.date DURING LAST_30_DAYS');
for (const row of searchResults) {
const campaignName = row.campaign.name;
const clicks = row.metrics.clicks;
const impressions = row.metrics.impressions;
const cost = row.metrics.costMicros;
console.log(`${campaignName}, ${clicks}, ${impressions}, ${cost}`);
}
}
Create a spreadsheet report
function exportReportToSpreadsheet() {
const spreadsheet = SpreadsheetApp.create('INSERT_REPORT_NAME_HERE');
const report = AdsApp.report(
'SELECT campaign.name, metrics.clicks, metrics.impressions, metrics.cost_micros ' +
'FROM campaign ' +
'WHERE metrics.impressions < 10 ' +
' AND segments.date DURING LAST_30_DAYS');
report.exportToSheet(spreadsheet.getActiveSheet());
}
Filter entities by label
function filterReportByLabelIds() {
const label = AdsApp.labels().withCondition(
"label.name = 'High performance campaigns'").get().next();
const query = `SELECT campaign.name, metrics.clicks, metrics.impressions, metrics.cost_micros from ` +
`campaign WHERE campaign.labels CONTAINS ANY ` +
`[${label.getResourceName()}] AND segments.date DURING THIS_MONTH';
const report = AdsApp.report(query);
for (const row of report.rows()) {
const campaignName = row['campaign.name'];
const clicks = row['metrics.clicks'];
const impressions = row['metrics.impressions'];
const cost = row['metrics.cost_micros'];
Logger.log(`${campaignName}, ${clicks}, ${impressions}, ${cost}`);
}
}
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2022-09-12 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2022-09-12 UTC."],[[["This script showcases Google Ads reporting capabilities to extract campaign performance data like clicks, impressions, and cost."],["It provides examples of creating text and spreadsheet reports based on specified criteria like low impressions within the last 30 days."],["The script demonstrates filtering campaign data using labels, focusing on entities marked as \"High performance campaigns\" in the current month."],["The provided code uses Google Ads Query Language (GAQL) to define the data structure and parameters for reports."]]],[]]