AdsApp.ReportRowIterator
Stay organized with collections
Save and categorize content based on your preferences.
An iterator of report rows.
Typical usage:
while (reportRowIterator.hasNext()) {
var reportRow = reportRowIterator.next();
}
Related:
ReportRow
Methods:
hasNext()
Returns
true
if the iterator has more elements.
Return values:
Type | Description |
boolean |
true if the iterator has more elements. |
next()
Returns the next
ReportRow in the iterator.
Report rows are returned as plain Javascript objects — in other words,
associative arrays. Individual columns can be accessed by indexing by AWQL
column names:
var report = AdsApp.report(
'SELECT search_term_view.search_term, metrics.ctr ' +
'FROM search_term_view ' +
'WHERE segments.date BETWEEN "2013-01-01" AND "2013-03-01"');
var rows = report.rows();
while (rows.hasNext()) {
var row = rows.next();
var query = row['search_term_view.search_term'];
var ctr = row['metrics.ctr'];
}
Return values:
totalNumEntities()
Returns the total number of entities matched by the selector which
generated this iterator.
Note that the returned number disregards limits, and that the iterator
is not guaranteed to have this many elements — hasNext
will
start to return false
and next
will start to
throw exceptions as soon as the limit for entity reads has been reached,
even if the selector matched more entities.
Return values:
Type | Description |
int |
The number of entities matched by the selector which generated this
iterator. |
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 2025-08-25 UTC.
[null,null,["Last updated 2025-08-25 UTC."],[[["\u003cp\u003eProvides a way to iterate through report rows, accessing data from Google Ads reports.\u003c/p\u003e\n"],["\u003cp\u003eUses \u003ccode\u003ehasNext()\u003c/code\u003e and \u003ccode\u003enext()\u003c/code\u003e methods to traverse and retrieve report row data.\u003c/p\u003e\n"],["\u003cp\u003eReport rows are represented as JavaScript objects with AWQL column names as keys.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003etotalNumEntities()\u003c/code\u003e returns the total count of entities matched by the selector.\u003c/p\u003e\n"]]],[],null,["# AdsApp.ReportRowIterator\n\nAn iterator of report rows.\n\nTypical usage:\n\n```gdscript\nwhile (reportRowIterator.hasNext()) {\n var reportRow = reportRowIterator.next();\n}\n```\nRelated: [ReportRow](/google-ads/scripts/docs/reference/adsapp/adsapp_reportrow)\n\n### Methods:\n\n| Member | Type | Description |\n|-----------------------------------------|--------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------|\n| [hasNext()](#hasNext) | `boolean` | Returns `true` if the iterator has more elements. |\n| [next()](#next) | [AdsApp.ReportRow](/google-ads/scripts/docs/reference/adsapp/adsapp_reportrow) | Returns the next [ReportRow](/google-ads/scripts/docs/reference/adsapp/adsapp_reportrow) in the iterator. |\n| [totalNumEntities()](#totalNumEntities) | `int` | Returns the total number of entities matched by the selector which generated this iterator. |\n\n`hasNext()`\n-----------\n\nReturns `true` if the iterator has more elements.\n\n### Return values:\n\n| Type | Description |\n|-----------|-------------------------------------------|\n| `boolean` | `true` if the iterator has more elements. |\n\n`next()`\n--------\n\nReturns the next [ReportRow](/google-ads/scripts/docs/reference/adsapp/adsapp_reportrow) in the iterator.\n\nReport rows are returned as plain Javascript objects --- in other words,\nassociative arrays. Individual columns can be accessed by indexing by AWQL\ncolumn names:\n\n```gdscript\nvar report = AdsApp.report(\n 'SELECT search_term_view.search_term, metrics.ctr ' +\n 'FROM search_term_view ' +\n 'WHERE segments.date BETWEEN \"2013-01-01\" AND \"2013-03-01\"');\nvar rows = report.rows();\n\nwhile (rows.hasNext()) {\n var row = rows.next();\n var query = row['search_term_view.search_term'];\n var ctr = row['metrics.ctr'];\n}\n```\n\n### Return values:\n\n| Type | Description |\n|--------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------|\n| [AdsApp.ReportRow](/google-ads/scripts/docs/reference/adsapp/adsapp_reportrow) | The next [ReportRow](/google-ads/scripts/docs/reference/adsapp/adsapp_reportrow) in the iterator. |\n\n`totalNumEntities()`\n--------------------\n\nReturns the total number of entities matched by the selector which generated this iterator.\n\nNote that the returned number disregards limits, and that the iterator\nis not guaranteed to have this many elements --- `hasNext` will\nstart to return `false` and `next` will start to\nthrow exceptions as soon as the limit for entity reads has been reached,\neven if the selector matched more entities.\n\n### Return values:\n\n| Type | Description |\n|-------|-------------------------------------------------------------------------------|\n| `int` | The number of entities matched by the selector which generated this iterator. |"]]