Create a Demand Gen ad

A Demand Gen ad builds the creative served to a user when an ad auction is won. AdGroupAd resources configure the relevant creative options under the union field ad_details .

Configure ad details

There are four types of Demand Gen ads. Each AdGroupAd resource can only be a single type. Each type is configured in individual field under the union field ad_details :

A link to the relevant ad type requirements is available in the description of each field. Only one of these fields can be populated when creating an AdGroupAd resource.

Image dimension and resolution requirements by type

Each ad type requires different sizes of image assets.

The following table lists the image types and relevant file restrictions:

Image type
Companion banner

Maximum file size: 150 KB

Dimensions: 300x60

Landscape image

Maximum file size: 5120 KB

Recommended dimensions: 1200x628, Minimum: 600x314

Logo image

Maximum file size: 5120 KB

Recommended dimensions: 1200x1200, Minimum: 128x128

Portrait image

Maximum file size: 5120 KB

Recommended dimensions: 960x1200, Minimum: 480x600

Square image

Maximum file size: 5120 KB

Recommended dimensions: 1200x1200, Minimum: 300x300

Create an ad

Here's how to create a Demand Gen video ad:

Java

 // Provide the ID of the parent advertiser. 
 long 
  
 advertiserId 
  
 = 
  
  advertiser 
 - 
 id 
 
 ; 
 // Provide the ID of the parent ad group. 
 long 
  
 adGroupId 
  
 = 
  
  ad 
 - 
 group 
 - 
 id 
 
 ; 
 // Provide the display name of the ad. 
 String 
  
 displayName 
  
 = 
  
  display 
 - 
 name 
 
 ; 
 // Provide the information for the ad creative. 
 String 
  
 finalAdUrl 
  
 = 
  
  final 
 - 
 ad 
 - 
 url 
 
 ; 
 String 
  
 callToAction 
  
 = 
  
  call 
 - 
 to 
 - 
 action 
 
 ; 
 String 
  
 headline 
  
 = 
  
  headline 
 
 ; 
 String 
  
 longHeadline 
  
 = 
  
  long 
 - 
 headline 
 
 ; 
 String 
  
 description 
  
 = 
  
  description 
 
 ; 
 String 
  
 businessName 
  
 = 
  
  business 
 - 
 name 
 
 ; 
 long 
  
 youtubeAssetId 
  
 = 
  
  youtube 
 - 
 video 
 - 
 asset 
 - 
 id 
 
 ; 
 long 
  
 logoAssetId 
  
 = 
  
  logo 
 - 
 asset 
 - 
 id 
 
 ; 
 // Create the ad structure. 
 AdGroupAd 
  
 ad 
  
 = 
  
 new 
  
 AdGroupAd 
 () 
  
 . 
 setAdGroupId 
 ( 
 adGroupId 
 ) 
  
 . 
 setDisplayName 
 ( 
 displayName 
 ) 
  
 . 
 setEntityStatus 
 ( 
 "ENTITY_STATUS_PAUSED" 
 ) 
  
 . 
 setDemandGenVideoAd 
 ( 
  
 new 
  
 DemandGenVideoAd 
 () 
  
 . 
 setFinalUrl 
 ( 
 finalAdUrl 
 ) 
  
 . 
 setCallToAction 
 ( 
 callToAction 
 ) 
  
 . 
 setHeadlines 
 ( 
 Arrays 
 . 
 asList 
 ( 
 headline 
 )) 
  
 . 
 setLongHeadlines 
 ( 
 Arrays 
 . 
 asList 
 ( 
 longHeadline 
 )) 
  
 . 
 setDescriptions 
 ( 
 Arrays 
 . 
 asList 
 ( 
 description 
 )) 
  
 . 
 setBusinessName 
 ( 
 businessName 
 ) 
  
 . 
 setVideos 
 ( 
  
 Arrays 
 . 
 asList 
 ( 
  
 new 
  
 YoutubeVideoDetails 
 () 
  
 . 
 setVideoAssetId 
 ( 
 youtubeAssetId 
 ))) 
  
 . 
 setLogo 
 ( 
 new 
  
 ImageAsset 
 (). 
 setAssetId 
 ( 
 logoAssetId 
 ))); 
 // Configure the create request. 
 AdGroupAds 
 . 
 Create 
  
 request 
  
 = 
  
 service 
 . 
 advertisers 
 (). 
 adGroupAds 
 (). 
 create 
 ( 
 advertiserId 
 , 
  
 ad 
 ); 
 // Create the ad group. 
 AdGroupAd 
  
 response 
  
 = 
  
 request 
 . 
 execute 
 (); 
 // Display the new ad. 
 System 
 . 
 out 
 . 
 printf 
 ( 
 "Demand Gen ad %s was created." 
 , 
  
 response 
 . 
 getName 
 ()); 

Python

 # Provide the ID of the parent advertiser. 
 advertiser_id 
 = 
  advertiser 
 - 
 id 
 
 # Provide the ID of the parent ad group. 
 ad_group_id 
 = 
  ad 
 - 
 group 
 - 
 id 
 
 # Provide the display name of the ad. 
 display_name 
 = 
  display 
 - 
 name 
 
 # Provide the information for the ad creative. 
 final_ad_url 
 = 
  final 
 - 
 ad 
 - 
 url 
 
 call_to_action 
 = 
  call 
 - 
 to 
 - 
 action 
 
 headline 
 = 
  headline 
 
 long_headline 
 = 
  long 
 - 
 headline 
 
 description 
 = 
  description 
 
 business_name 
 = 
  business 
 - 
 name 
 
 youtube_asset_id 
 = 
  youtube 
 - 
 video 
 - 
 asset 
 - 
 id 
 
 logo_asset_id 
 = 
  logo 
 - 
 asset 
 - 
 id 
 
 # Create the ad object. 
 ad_obj 
 = 
 { 
 "adGroupId" 
 : 
 ad_group_id 
 , 
 "displayName" 
 : 
 display_name 
 , 
 "entityStatus" 
 : 
 "ENTITY_STATUS_PAUSED" 
 , 
 "demandGenVideoAd" 
 : 
 { 
 "finalUrl" 
 : 
 final_ad_url 
 , 
 "callToAction" 
 : 
 call_to_action 
 , 
 "headlines" 
 : 
 [ 
 headline 
 ], 
 "longHeadlines" 
 : 
 [ 
 long_headline 
 ], 
 "descriptions" 
 : 
 [ 
 description 
 ], 
 "businessName" 
 : 
 business_name 
 , 
 "videos" 
 : 
 [{ 
 "videoAssetId" 
 : 
 youtube_asset_id 
 }], 
 "logo" 
 : 
 { 
 "assetId" 
 : 
 logo_asset_id 
 } 
 } 
 } 
 # Build and execute request. 
 response 
 = 
 ( 
 service 
 . 
 advertisers 
 () 
 . 
 adGroupAds 
 () 
 . 
 create 
 ( 
 advertiserId 
 = 
 advertiser_id 
 , 
 body 
 = 
 ad_obj 
 ) 
 . 
 execute 
 () 
 ) 
 # Display the new ad. 
 print 
 ( 
 f 
 "Demand Gen ad 
 { 
 response 
 [ 
 'name' 
 ] 
 } 
 was created." 
 ) 

PHP

 // Provide the ID of the parent advertiser. 
 $advertiserId = advertiser-id 
; 
 // Provide the ID of the parent ad group. 
 $adGroupId = ad-group-id 
; 
 // Provide the display name of the ad. 
 $displayName = display-name 
; 
 // Provide the information for the ad creative. 
 $finalAdUrl = final-ad-url 
; 
 $callToAction = call-to-action 
; 
 $headline = headline 
; 
 $longHeadline = long-headline 
; 
 $description = description 
; 
 $businessName = business-name 
; 
 $youtubeAssetId = youtube-video-asset-id 
; 
 $logoAssetId = logo-asset-id 
; 
 // Create the ad structure. 
 $ad = new Google_Service_DisplayVideo_AdGroupAd(); 
 $ad->setAdGroupId($adGroupId); 
 $ad->setDisplayName($displayName); 
 $ad->setEntityStatus('ENTITY_STATUS_PAUSED'); 
 // Create the Demand Gen video ad creative. 
 $demandGenVideoAd = new Google_Service_DisplayVideo_DemandGenVideoAd(); 
 $demandGenVideoAd->setFinalUrl($finalAdUrl); 
 $demandGenVideoAd->setCallToAction($callToAction); 
 $demandGenVideoAd->setHeadlines(array($headline)); 
 $demandGenVideoAd->setLongHeadlines(array($longHeadline)); 
 $demandGenVideoAd->setDescriptions(array($description)); 
 $demandGenVideoAd->setBusinessName($businessName); 
 // Assign the video asset to the ad creative. 
 $youtubeVideoAsset = 
 new Google_Service_DisplayVideo_YoutubeVideoDetails(); 
 $youtubeVideoAsset->setVideoAssetId($youtubeAssetId); 
 $demandGenVideoAd->setVideos(array($youtubeVideoAsset)); 
 // Assign the logo asset to the ad creative. 
 $imageAsset = new Google_Service_DisplayVideo_ImageAsset(); 
 $imageAsset->setAssetId($logoAssetId); 
 $demandGenVideoAd->setLogo($imageAsset); 
 // Assign the Demand Gen video ad to the ad. 
 $ad->setDemandGenVideoAd($demandGenVideoAd); 
 // Call the API, creating the ad under the advertiser and ad group given. 
 try { 
 $result = $this->service->advertisers_adGroupAds->create( 
 $advertiserId, 
 $ad 
 ); 
 } catch (\Exception $e) { 
 $this->renderError($e); 
 return; 
 } 
 // Display the new ad. 
 printf('<p>Ad %s was created.</p>', $result['name']); 
Create a Mobile Website
View Site in Mobile | Classic
Share by: