// Copy the link of the new sheet and paste it below - var SPREADSHEET_URL =""; // Enter your filters below, for multiple filters use AND clause. E.g. Impressions > 100 AND // Currently default filter is Clicks < 1 i.e. Zero Clicks //var FILTERS = "Conversions < 1 AND Cost > 10"; var FILTERS = "metrics.impressions > 0 "; // Enter time duration below. Possibilities: // TODAY | YESTERDAY | LAST_7_DAYS | LAST_WEEK | LAST_BUSINESS_WEEK | //THIS_MONTH | LAST_MONTH | // LAST_14_DAYS | LAST_30_DAYS | THIS_WEEK_SUN_TODAY | //THIS_WEEK_MON_TODAY | LAST_WEEK_SUN_SAT // Currently default time duration is set to: LAST_30_DAYS var TIME_DURATION = "LAST_30_DAYS"; var COUNT_LIMIT = 999999; function main(){ var products = getFilteredShoppingProducts(); products.sort(function(a,b){return a[0] > b[0];}); products = products.slice(0, COUNT_LIMIT); pushToSpreadsheet(products); } function getFilteredShoppingProducts(){ var query = "SELECT segments.product_item_id, metrics.clicks FROM shopping_performance_view WHERE " + FILTERS + " DURING " + TIME_DURATION var products = []; var count = 0; var report = AdsApp.report(query); for (const row of report.rows()) { var offer_id = row['segments.product_item_id']; products.push([offer_id]); count+= 1; } Logger.log(count); return products; } function pushToSpreadsheet(data){ var spreadsheet = SpreadsheetApp.openByUrl(SPREADSHEET_URL); var sheet = spreadsheet.getSheetByName('DE'); var lastRow = sheet.getMaxRows(); sheet.getRange('A2:A'+lastRow).clearContent(); var start_row=2; var endRow=start_row+data.length-1; var range = sheet.getRange('A'+start_row+':'+'A'+endRow); if (data.length>0){range.setValues(data);} return; }