Unlike those that are served by other types of line items, creatives served by
Demand Gen ads are constructed in the AdGroupAd resources
themselves. The image and video assets assigned to ads to build these creatives
are represented in the Display & Video 360 API by AdAsset resources.
Before creating an AdGroupAd resource, create the relevant
AdAsset resources that the ad will use if they don't already
exist. If they were previously created using the UI or API, you can retrieve
existing assets using the advertisers.adAssets service get
and list methods.
Image and video AdAsset resources are created using different
methods:
- Image assets must be uploaded to Display & Video 360 using the
advertisers.adAssets.uploadmethod. - Video assets must be associated using a YouTube video ID and created using the
advertisers.adAssets.createmethod.
The adAssetId of an AdAsset resource is used
to associate an asset with a Demand Gen ad.
Upload image assets
Upload image files to create AD_ASSET_TYPE_IMAGE assets that can be used as
companion banners, logos, and marketing images.
Here's how to upload an image asset to create an AdAsset
resource:
Python
# Import the object used as the media body for the upload request. from apiclient.http import MediaFileUpload # Provide the parent advertiser ID to upload the media file under. advertiser_id = advertiser-id # Provide the filename and local path to the media file. asset_filename = asset-filename asset_path = asset-path # Create the request body. body = {"filename": asset_filename, "adAssetType": "AD_ASSET_TYPE_IMAGE"} # Create the upload object and use a default MIME type if not identified. media = MediaFileUpload(asset_path) if not media.mimetype(): media = MediaFileUpload(asset_path, "application/octet-stream") # Upload the asset. upload_response = ( service.advertisers() .adAssets() .upload(advertiserId=advertiser_id, body=body, media_body=media) .execute() ) # Display the new ad asset. print(f"Ad asset {upload_response['adAsset']['name']} was created.")
Create YouTube assets
Provide YouTube video IDs to create AD_ASSET_TYPE_YOUTUBE_VIDEO assets that
can be used in Demand Gen video ads.
Here's how to create a YouTube video asset to create an
AdAsset resource:
Python
# Provide the ID of the parent advertiser. advertiser_id = advertiser-id # Provide the ID of the parent insertion order. youtube_video_id = youtube-video-id # Create a line item object with example values. ad_asset_create_body = { "adAsset": { "adAssetType": "AD_ASSET_TYPE_YOUTUBE_VIDEO", "youtubeVideoAsset": {"youtubeVideoId": youtube_video_id}, } } # Build and execute request. response = ( service.advertisers() .adAssets() .create(advertiserId=advertiser_id, body=ad_asset_create_body) .execute() ) # Display the new ad asset. print(f"Ad asset {response['name']} was created.")