Ad Media

Some ad types, such as ImageAd and ResponsiveDisplayAd, contain images and other media elements. This guide describes how to upload and query media using Google Ads scripts.

Uploading images

Images can be uploaded using the ImageBuilder class, which takes a name and image data. The data is provided as a Blob data interchange object, which can be created by services such as the Drive service and URL fetch service.

The following snippet shows how to upload an image from an external URL:

var imageUrl = "";
var imageBlob = UrlFetchApp.fetch(imageUrl).getBlob();
var mediaOperation = AdsApp.adMedia().newImageBuilder()

Alternatively, the image blob may be loaded from Google Drive:

var imageFileId = "IMAGE_FILE_ID";
var imageBlob = DriveApp.getFileById(imageFileId).getBlob();
var mediaOperation = AdsApp.adMedia().newImageBuilder()

Uploading media bundles

Media bundles are ZIP archives that contain HTML5 assets, which can be used to create HTML5 ads. For more information on the file structure, see the format documentation. Upload media bundles using the MediaBundleBuilder class, which takes a name and file data. As with images, the data is provided as a Blob data interchange object.

The following snippet shows how to upload a media bundle from an external URL:

var mediaBundleUrl = "";
var mediaBundleBlob = UrlFetchApp.fetch(mediaBundleUrl).getBlob();
var mediaOperation = AdsApp.adMedia().newMediaBundleBuilder()
    .withName("bundle name")

Querying media

Media of every type can be queried in Google Ads scripts using a MediaSelector. Use the withCondition() predicate to filter media by name, type, and other fields. For example, the following snippet finds all images on an account:

var mediaIterator = AdsApp.adMedia().media()
    .withCondition("Type = IMAGE")
while (mediaIterator.hasNext()) {
  var image =;

Creating ads with media

See our code examples page for complete examples of creating supported ads with attached media.