Bulk upload
Stay organized with collections
Save and categorize content based on your preferences.
Bulk upload from Google Drive
function
bulkUploadFromGoogleDrive
()
{
//
See
https
:
//
developers
.
google
.
com
/
google
-
ads
/
scripts
/
docs
/
features
/
bulk
-
upload
//
for
the
list
of
supported
bulk
upload
templates
.
//
You
can
upload
a
CSV
file
,
or
an
EXCEL
sheet
.
const
file
=
DriveApp
.
getFilesByName
(
'BulkCampaignUpload.csv'
)
.
next
();
const
upload
=
AdsApp
.
bulkUploads
()
.
newFileUpload
(
file
);
upload
.
forCampaignManagement
();
//
Use
upload
.
apply
()
to
make
changes
without
previewing
.
upload
.
preview
();
}
Bulk upload from remote server
function
bulkUploadFromRemoteServer
(
csvFileUrl
)
{
//
See
https
:
//
developers
.
google
.
com
/
google
-
ads
/
scripts
/
docs
/
features
/
bulk
-
upload
//
for
the
list
of
supported
bulk
upload
templates
.
const
blob
=
UrlFetchApp
.
fetch
(
csvFileUrl
)
.
getBlob
()
.
getAs
(
MimeType
.
CSV
);
const
upload
=
AdsApp
.
bulkUploads
()
.
newFileUpload
(
blob
);
upload
.
forCampaignManagement
();
//
Use
upload
.
apply
()
to
make
changes
without
previewing
.
upload
.
preview
();
}
Bulk upload from Google Sheets
function
bulkUploadFromGoogleSpreadsheet
(
spreadsheetUrl
)
{
//
The
format
of
this
spreadsheet
should
match
a
valid
bulk
upload
template
.
//
See
https
:
//
developers
.
google
.
com
/
google
-
ads
/
scripts
/
docs
/
features
/
bulk
-
upload
//
for
the
list
of
supported
bulk
upload
templates
.
const
spreadSheet
=
SpreadsheetApp
.
openByUrl
(
spreadsheetUrl
);
const
sheet
=
spreadSheet
.
getActiveSheet
();
const
upload
=
AdsApp
.
bulkUploads
()
.
newFileUpload
(
sheet
);
upload
.
forCampaignManagement
();
//
Use
upload
.
apply
()
to
make
changes
without
previewing
.
upload
.
preview
();
}
Create/update campaigns
function
createOrUpdateCampaigns
()
{
//
See
https
:
//
developers
.
google
.
com
/
google
-
ads
/
scripts
/
docs
/
features
/
bulk
-
upload
//
for
the
list
of
supported
bulk
upload
templates
and
their
column
names
.
const
columns
=
[
'Campaign'
,
'Budget'
,
'Bid Strategy type'
,
'Campaign type'
];
const
upload
=
AdsApp
.
bulkUploads
()
.
newCsvUpload
(
columns
,
{
moneyInMicros
:
false
});
//
Google
Ads
identify
existing
campaigns
using
its
name
.
To
create
a
new
//
campaign
,
use
a
campaign
name
that
doesn
't exist in your account.
upload
.
append
({
'Campaign'
:
'Test Campaign 1'
,
'Budget'
:
234
,
'Bid Strategy type'
:
'cpc'
,
'Campaign type'
:
'Search Only'
});
//
Use
upload
.
apply
()
to
make
changes
without
previewing
.
upload
.
preview
();
}
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 provides functionalities to bulk upload data into Google Ads from various sources like Google Drive, remote servers, and Google Sheets.\u003c/p\u003e\n"],["\u003cp\u003eIt utilizes Google Ads Scripts' bulk upload feature to manage and update campaigns, using CSV or spreadsheet files formatted according to specified templates.\u003c/p\u003e\n"],["\u003cp\u003eThe examples demonstrate how to preview changes before applying them, ensuring accuracy in bulk operations.\u003c/p\u003e\n"],["\u003cp\u003eThe script allows creation or updating of existing campaigns by providing the necessary campaign details like name, budget, bid strategy, and type.\u003c/p\u003e\n"],["\u003cp\u003eBefore execution, users should consult the provided link for understanding supported bulk upload templates and their required column names.\u003c/p\u003e\n"]]],[],null,["# Bulk upload from Google Drive\n-----------------------------\n\n```gdscript\nfunction bulkUploadFromGoogleDrive() {\n // See https://developers.google.com/google-ads/scripts/docs/features/bulk-upload\n // for the list of supported bulk upload templates.\n // You can upload a CSV file, or an EXCEL sheet.\n const file = DriveApp.getFilesByName('BulkCampaignUpload.csv').next();\n const upload = AdsApp.bulkUploads().newFileUpload(file);\n upload.forCampaignManagement();\n\n // Use upload.apply() to make changes without previewing.\n upload.preview();\n}\n```\n\nBulk upload from remote server\n------------------------------\n\n```gdscript\nfunction bulkUploadFromRemoteServer(csvFileUrl) {\n // See https://developers.google.com/google-ads/scripts/docs/features/bulk-upload\n // for the list of supported bulk upload templates.\n const blob = UrlFetchApp.fetch(csvFileUrl)\n .getBlob()\n .getAs(MimeType.CSV);\n\n const upload = AdsApp.bulkUploads().newFileUpload(blob);\n upload.forCampaignManagement();\n\n // Use upload.apply() to make changes without previewing.\n upload.preview();\n}\n```\n\nBulk upload from Google Sheets\n------------------------------\n\n```gdscript\nfunction bulkUploadFromGoogleSpreadsheet(spreadsheetUrl) {\n // The format of this spreadsheet should match a valid bulk upload template.\n // See https://developers.google.com/google-ads/scripts/docs/features/bulk-upload\n // for the list of supported bulk upload templates.\n const spreadSheet = SpreadsheetApp.openByUrl(spreadsheetUrl);\n const sheet = spreadSheet.getActiveSheet();\n\n const upload = AdsApp.bulkUploads().newFileUpload(sheet);\n upload.forCampaignManagement();\n\n // Use upload.apply() to make changes without previewing.\n upload.preview();\n}\n```\n\nCreate/update campaigns\n-----------------------\n\n```gdscript\nfunction createOrUpdateCampaigns() {\n // See https://developers.google.com/google-ads/scripts/docs/features/bulk-upload\n // for the list of supported bulk upload templates and their column names.\n const columns = [\n 'Campaign', 'Budget', 'Bid Strategy type', 'Campaign type'\n ];\n\n const upload = AdsApp.bulkUploads().newCsvUpload(\n columns, {moneyInMicros: false});\n\n // Google Ads identify existing campaigns using its name. To create a new\n // campaign, use a campaign name that doesn't exist in your account.\n upload.append({\n 'Campaign': 'Test Campaign 1',\n 'Budget': 234,\n 'Bid Strategy type': 'cpc',\n 'Campaign type': 'Search Only'\n });\n // Use upload.apply() to make changes without previewing.\n upload.preview();\n}\n```"]]