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 that can be created by services such as Drive or URL fetch.

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

let imageUrl = "http://www.example.com/example.png";
let imageBlob = UrlFetchApp.fetch(imageUrl).getBlob();
let mediaOperation = AdsApp.adMedia().newImageBuilder()
    .withName("IMAGE_NAME")
    .withData(imageBlob)
    .build();

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

let imageFileId = "IMAGE_FILE_ID";
let imageBlob = DriveApp.getFileById(imageFileId).getBlob();
let mediaOperation = AdsApp.adMedia().newImageBuilder()
    .withName("IMAGE_NAME")
    .withData(imageBlob)
    .build();

Uploading media bundles

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

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

let mediaBundleUrl = "http://www.example.com/example.zip";
let mediaBundleBlob = UrlFetchApp.fetch(mediaBundleUrl).getBlob();
let mediaOperation = AdsApp.adMedia().newMediaBundleBuilder()
    .withName("bundle name")
    .withData(mediaBundleBlob)
    .build();

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, or other fields. For example, the following snippet finds all images in an account:

let mediaIterator = AdsApp.adMedia().media()
    .withCondition("Type = IMAGE")
    .get();
while (mediaIterator.hasNext()) {
  let image = mediaIterator.next();
}

Creating ads with media

See our ads article for some code examples of creating supported ads with attached media.