Search Ads 360
Stay organized with collections
Save and categorize content based on your preferences.
Retrieve account's list of agency and advertiser IDs
/**
*
Retrieves
a
list
of
all
the
agency
and
advertiser
IDs
that
the
Google
Account
*
has
permission
to
view
.
*
See
:
https
:
//
developers
.
google
.
com
/
google
-
ads
/
scripts
/
docs
/
features
/
third
-
party
-
apis
#refresh_token_grant
*
for
details
on
configuring
this
script
.
*
*
NOTE
:
This
script
also
requires
the
OAuth2
library
to
be
pasted
at
the
end
,
*
as
obtained
from
https
:
//
developers
.
google
.
com
/
google
-
ads
/
scripts
/
docs
/
examples
/
oauth20
-
library
*/
const
CLIENT_ID
=
'INSERT_CLIENT_ID'
;
const
CLIENT_SECRET
=
'INSERT_CLIENT_SECRET'
;
const
REFRESH_TOKEN
=
'INSERT_REFRESH_TOKEN'
;
let
authUrlFetch
;
//
Call
this
function
just
once
,
to
initialize
the
OAuth
client
.
function
initializeOAuthClient
()
{
if
(
typeof
OAuth2
===
'undefined'
)
{
const
libUrl
=
'https://developers.google.com/google-ads/scripts/docs/examples/oauth20-library'
;
throw
Error
(
'OAuth2 library not found. Please take a copy of the OAuth2 '
+
'library from '
+
libUrl
+
' and append to the bottom of this script.'
);
}
const
tokenUrl
=
'https://accounts.google.com/o/oauth2/token'
;
const
scope
=
'https://www.googleapis.com/auth/doubleclicksearch'
;
authUrlFetch
=
OAuth2
.
withRefreshToken
(
tokenUrl
,
CLIENT_ID
,
CLIENT_SECRET
,
REFRESH_TOKEN
,
scope
);
}
//
An
example
DS
request
-
taken
from
//
https
:
//
developers
.
google
.
com
/
search
-
ads
/
v2
/
how
-
tos
/
reporting
/
faq
const
body
=
{
reportType
:
'advertiser'
,
columns
:
[
{
columnName
:
'agency'
},
{
columnName
:
'agencyId'
},
{
columnName
:
'advertiser'
},
{
columnName
:
'advertiserId'
}
],
statisticsCurrency
:
'usd'
};
//
Request
an
Advertiser
report
and
return
the
resulting
report
object
.
function
generateSearchAds360AdvertiserReport
()
{
const
url
=
'https://www.googleapis.com/doubleclicksearch/v2/reports/generate'
;
const
options
=
{
method
:
'POST'
,
contentType
:
'application/json'
,
payload
:
JSON
.
stringify
(
body
)
};
const
response
=
authUrlFetch
.
fetch
(
url
,
options
);
//
For
now
,
just
log
the
generated
report
response
.
return
JSON
.
parse
(
response
.
getContentText
());
}
//
Paste
in
OAuth2
library
here
,
from
:
//
https
:
//
developers
.
google
.
com
/
google
-
ads
/
scripts
/
docs
/
examples
/
oauth20
-
library
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-20 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 2025-08-20 UTC."],[[["\u003cp\u003eThis script retrieves a list of agency and advertiser IDs accessible by the Google Account.\u003c/p\u003e\n"],["\u003cp\u003eIt utilizes the DoubleClick Search API and requires OAuth2 authorization for access.\u003c/p\u003e\n"],["\u003cp\u003eUsers need to provide their Client ID, Client Secret, and Refresh Token for authentication.\u003c/p\u003e\n"],["\u003cp\u003eThe script generates a Search Ads 360 Advertiser report containing the desired IDs.\u003c/p\u003e\n"],["\u003cp\u003eAn OAuth2 library must be appended to the script for proper functionality.\u003c/p\u003e\n"]]],[],null,["# Search Ads 360\n\nRetrieve account's list of agency and advertiser IDs\n----------------------------------------------------\n\n```gdscript\n/**\n * Retrieves a list of all the agency and advertiser IDs that the Google Account\n * has permission to view.\n * See: https://developers.google.com/google-ads/scripts/docs/features/third-party-apis#refresh_token_grant\n * for details on configuring this script.\n *\n * NOTE: This script also requires the OAuth2 library to be pasted at the end,\n * as obtained from https://developers.google.com/google-ads/scripts/docs/examples/oauth20-library\n */\nconst CLIENT_ID = 'INSERT_CLIENT_ID';\nconst CLIENT_SECRET = 'INSERT_CLIENT_SECRET';\nconst REFRESH_TOKEN = 'INSERT_REFRESH_TOKEN';\n\nlet authUrlFetch;\n\n// Call this function just once, to initialize the OAuth client.\nfunction initializeOAuthClient() {\n if (typeof OAuth2 === 'undefined') {\n const libUrl = 'https://developers.google.com/google-ads/scripts/docs/examples/oauth20-library';\n throw Error('OAuth2 library not found. Please take a copy of the OAuth2 ' +\n 'library from ' + libUrl + ' and append to the bottom of this script.');\n }\n const tokenUrl = 'https://accounts.google.com/o/oauth2/token';\n const scope = 'https://www.googleapis.com/auth/doubleclicksearch';\n\n authUrlFetch = OAuth2.withRefreshToken(\n tokenUrl, CLIENT_ID, CLIENT_SECRET, REFRESH_TOKEN, scope);\n}\n\n// An example DS request - taken from\n// https://developers.google.com/search-ads/v2/how-tos/reporting/faq\nconst body = {\n reportType: 'advertiser',\n columns: [\n {columnName: 'agency'}, {columnName: 'agencyId'},\n {columnName: 'advertiser'}, {columnName: 'advertiserId'}\n ],\n statisticsCurrency: 'usd'\n};\n\n// Request an Advertiser report and return the resulting report object.\nfunction generateSearchAds360AdvertiserReport() {\n const url = 'https://www.googleapis.com/doubleclicksearch/v2/reports/generate';\n const options = {\n method: 'POST',\n contentType: 'application/json',\n payload: JSON.stringify(body)\n };\n const response = authUrlFetch.fetch(url, options);\n\n // For now, just log the generated report response.\n return JSON.parse(response.getContentText());\n}\n\n// Paste in OAuth2 library here, from:\n// https://developers.google.com/google-ads/scripts/docs/examples/oauth20-library\n```"]]