Create ad assets

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:

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:

Java

 // Provide the parent advertiser ID to upload the media file under. 
 long 
  
 advertiserId 
  
 = 
  
  advertiser 
 - 
 id 
 
 ; 
 // Provide the local path to the media file. 
 String 
  
 assetPath 
  
 = 
  
  asset 
 - 
 path 
 
 ; 
 // Get filename from path. 
 String 
  
 assetFilename 
  
 = 
  
 new 
  
 File 
 ( 
 assetPath 
 ). 
 getName 
 (); 
 // Create the asset upload request content. 
 UploadAdAssetRequest 
  
 content 
  
 = 
  
 new 
  
 UploadAdAssetRequest 
 () 
  
 . 
 setFilename 
 ( 
 assetFilename 
 ) 
  
 . 
 setAdAssetType 
 ( 
 "AD_ASSET_TYPE_IMAGE" 
 ); 
 // Parse filename for appropriate MIME type. 
 FileNameMap 
  
 filenameMap 
  
 = 
  
 URLConnection 
 . 
 getFileNameMap 
 (); 
 String 
  
 mimeType 
  
 = 
  
 filenameMap 
 . 
 getContentTypeFor 
 ( 
 assetFilename 
 ); 
 if 
  
 ( 
 mimeType 
  
 == 
  
 null 
 ) 
  
 { 
  
 mimeType 
  
 = 
  
 "application/octet-stream" 
 ; 
 } 
 // Create input stream for the ad asset. 
 InputStreamContent 
  
 assetStream 
  
 = 
  
 new 
  
 InputStreamContent 
 ( 
 mimeType 
 , 
  
 new 
  
 FileInputStream 
 ( 
 assetPath 
 )); 
 // Configure the ad asset upload request. 
 AdAssets 
 . 
 Upload 
  
 uploadRequest 
  
 = 
  
 service 
  
 . 
 advertisers 
 () 
  
 . 
 adAssets 
 () 
  
 . 
 upload 
 ( 
 advertiserId 
 , 
  
 content 
 , 
  
 assetStream 
 ); 
 // Upload the asset. 
 UploadAdAssetResponse 
  
 assetResponse 
  
 = 
  
 uploadRequest 
 . 
 execute 
 (); 
 // Display the new asset media ID. 
 System 
 . 
 out 
 . 
 printf 
 ( 
  
 "Ad asset was created with asset ID %s." 
 , 
  
 assetResponse 
 . 
 getAdAsset 
 (). 
 getAdAssetId 
 ()); 

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." 
 ) 

PHP

 // Provide the parent advertiser ID to upload the media file under. 
 $advertiserId = advertiser-id 
; 
 // Provide the local path to the media file. 
 $assetPath = asset-path 
; 
 // Provide the name of the media file. 
 $assetFilename = asset-filename 
; 
 // Create the request object. 
 $body = new Google_Service_DisplayVideo_UploadAdAssetRequest(); 
 $body->setFilename($assetFilename); 
 $body->setAdAssetType('AD_ASSET_TYPE_IMAGE'); 
 // Set the query parameters 
 $optParams = array( 
 'data' => file_get_contents($assetPath), 
 'mimeType' => mime_content_type($assetFilename), 
 'uploadType' => 'media' 
 ); 
 // Upload the asset. 
 try { 
 $result = $this->service->advertisers_adAssets->upload( 
 $advertiserId, 
 $body, 
 $optParams 
 ); 
 } catch (\Exception $e) { 
 $this->renderError($e); 
 return; 
 } 
 // Display the new ad asset. 
 printf( 
 '<p>Ad Asset was created with asset ID %s.</p>', 
 $result->getAdAsset()->getAdAssetId() 
 ); 

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:

Java

 // Provide the ID of the parent advertiser. 
 long 
  
 advertiserId 
  
 = 
  
  advertiser 
 - 
 id 
 
 ; 
 // Provide the YouTube video ID. 
 String 
  
 youtubeVideoId 
  
 = 
  
  youtube 
 - 
 video 
 - 
 id 
 
 ; 
 // Create the ad asset structure. 
 AdAsset 
  
 adAsset 
  
 = 
  
 new 
  
 AdAsset 
 () 
  
 . 
 setAdAssetType 
 ( 
 "AD_ASSET_TYPE_YOUTUBE_VIDEO" 
 ) 
  
 . 
 setYoutubeVideoAsset 
 ( 
  
 new 
  
 YoutubeVideoAsset 
 (). 
 setYoutubeVideoId 
 ( 
 youtubeVideoId 
 )); 
 // Configure the create request. 
 AdAssets 
 . 
 Create 
  
 request 
  
 = 
  
 service 
  
 . 
 advertisers 
 () 
  
 . 
 adAssets 
 () 
  
 . 
 create 
 ( 
  
 advertiserId 
 , 
  
 new 
  
 CreateAdAssetRequest 
 (). 
 setAdAsset 
 ( 
 adAsset 
 )); 
 // Create the ad asset. 
 AdAsset 
  
 response 
  
 = 
  
 request 
 . 
 execute 
 (); 
 // Display the new ad asset. 
 System 
 . 
 out 
 . 
 printf 
 ( 
 "Ad asset %s was created." 
 , 
  
 response 
 . 
 getName 
 ()); 

Python

 # Provide the ID of the parent advertiser. 
 advertiser_id 
 = 
  advertiser 
 - 
 id 
 
 # Provide the YouTube video ID. 
 youtube_video_id 
 = 
  youtube 
 - 
 video 
 - 
 id 
 
 # Create the ad asset structure. 
 ad_asset_create_body 
 = 
 { 
 "adAsset" 
 : 
 { 
 "adAssetType" 
 : 
 "AD_ASSET_TYPE_YOUTUBE_VIDEO" 
 , 
 "youtubeVideoAsset" 
 : 
 { 
 "youtubeVideoId" 
 : 
 youtube_video_id 
 }, 
 } 
 } 
 # Create the ad asset. 
 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." 
 ) 

PHP

 // Provide the ID of the parent advertiser. 
 $advertiserId = advertiser-id 
; 
 // Provide the YouTube video ID. 
 $youtubeVideoId = youtube-video-id 
; 
 // Create the ad asset structure. 
 $youtubeVideoAsset = 
 new Google_Service_DisplayVideo_YoutubeVideoAsset(); 
 $youtubeVideoAsset->setYoutubeVideoId($youtubeVideoId); 
 $adAsset = new Google_Service_DisplayVideo_AdAsset(); 
 $adAsset->setAdAssetType('AD_ASSET_TYPE_YOUTUBE_VIDEO'); 
 $adAsset->setYoutubeVideoAsset($youtubeVideoAsset); 
 // Create the create request. 
 $createAdAssetRequest = 
 new Google_Service_DisplayVideo_CreateAdAssetRequest(); 
 $createAdAssetRequest->setAdAsset($adAsset); 
 // Create the ad asset. 
 try { 
 $result = 
 $this->service->advertisers_adAssets->create( 
 $advertiserId, 
 $createAdAssetRequest 
 ); 
 } catch (\Exception $e) { 
 $this->renderError($e); 
 return; 
 } 
 // Display the new ad asset. 
 printf( 
 '<p>Ad Asset was created with asset ID %s.</p>', 
 $result['adAssetId'] 
 ); 
Create a Mobile Website
View Site in Mobile | Classic
Share by: