_______________________________________________________________________________________
function main() {
// Define the output spreadsheet URL
var SPREADSHEET_URL = 'INSERT_SPREADSHEET_URL_HERE';
// Open the spreadsheet and select the first sheet
var spreadsheet = SpreadsheetApp.openByUrl(SPREADSHEET_URL);
var sheet = spreadsheet.getSheets()[0];
// Clear any existing data
sheet.clear();
// Set up the headers for the report
sheet.appendRow([
'Campaign ID', 'Campaign Name', 'Ad Group ID', 'Ad Group Name',
'Search Term', 'Impressions', 'Clicks', 'Cost'
]);
// Define the query to retrieve Performance Max campaign data
var query = `
SELECT
campaign.id,
campaign.name,
ad_group.id,
ad_group.name,
search_terms.query,
metrics.impressions,
metrics.clicks,
metrics.cost_micros
FROM
search_term_view
WHERE
campaign.advertising_channel_type = 'PERFORMANCE_MAX'
ORDER BY
metrics.impressions DESC
`;
// Execute the query and process the results
var report = AdsApp.report(query);
var rows = report.rows();
while (rows.hasNext()) {
var row = rows.next();
var cost = row['metrics.cost_micros'] / 1000000; // Convert micros to currency
sheet.appendRow([
row['
campaign.id'],
row['
campaign.name'],
row['
ad_group.id'],
row['
ad_group.name'],
row['search_terms.query'],
row['metrics.impressions'],
row['metrics.clicks'],
cost.toFixed(2)
]);
}
Logger.log('Report completed successfully!');
}