Asset automation settings

  • Google Ads offers automatic asset optimizations to improve ad strength, including image and video asset creation and optimization.

  • Each asset automation has a type and a status indicating if it's enabled or disabled.

  • Some asset automations are configured at the campaign level, while others are set at the ad group ad level.

  • Campaign-level asset automations support various campaign types and have different default settings.

  • Ad-level asset automations apply to single ads, support specific ad types, and have varying default statuses.

Google Ads provides several asset optimizations that can be performed automatically to improve the ad strength of your ads.

These range from automatically creating image assets with a preview of an ad's landing page, to optimizing video assets for different formats and different lengths.

Each asset automation setting has an asset_automation_type , which defines the type of asset automation it represents, and an asset_automation_status , which represents whether the automation is enabled or disabled.

Some asset automations are configured at the campaign level, while others are set at the ad group ad level.

Campaign-level asset automation settings

These configure an asset automation for an entire campaign. Not all of them are available for every campaign type: refer to the reference documentation for further details.

Asset automation type Supported campaign types Default
Performance Max, Search Enabled for Performance Max, disabled for Search
Performance Max Enabled
Performance Max Enabled for Performance Max, disabled for Search
Performance Max The account-level Dynamic Image Extension control value.
Performance Max, Search Enabled for Performance Max, disabled for Search

The following snippet shows how to set asset automation settings to OPT_IN for a PMax campaign:

Java

 // Configures the optional opt-in/out status for asset automation settings. 
 . 
 addAllAssetAutomationSettings 
 ( 
 ImmutableList 
 . 
 of 
 ( 
  
 AssetAutomationSetting 
 . 
 newBuilder 
 () 
  
 . 
 setAssetAutomationType 
 ( 
 AssetAutomationType 
 . 
 GENERATE_IMAGE_EXTRACTION 
 ) 
  
 . 
 setAssetAutomationStatus 
 ( 
 AssetAutomationStatus 
 . 
 OPTED_IN 
 ). 
 build 
 (), 
  
 AssetAutomationSetting 
 . 
 newBuilder 
 () 
  
 . 
 setAssetAutomationType 
 ( 
  
 AssetAutomationType 
 . 
 FINAL_URL_EXPANSION_TEXT_ASSET_AUTOMATION 
 ) 
  
 . 
 setAssetAutomationStatus 
 ( 
 AssetAutomationStatus 
 . 
 OPTED_IN 
 ). 
 build 
 (), 
  
 AssetAutomationSetting 
 . 
 newBuilder 
 () 
  
 . 
 setAssetAutomationType 
 ( 
 AssetAutomationType 
 . 
 TEXT_ASSET_AUTOMATION 
 ) 
  
 . 
 setAssetAutomationStatus 
 ( 
 AssetAutomationStatus 
 . 
 OPTED_IN 
 ). 
 build 
 (), 
  
 AssetAutomationSetting 
 . 
 newBuilder 
 () 
  
 . 
 setAssetAutomationType 
 ( 
 AssetAutomationType 
 . 
 GENERATE_ENHANCED_YOUTUBE_VIDEOS 
 ) 
  
 . 
 setAssetAutomationStatus 
 ( 
 AssetAutomationStatus 
 . 
 OPTED_IN 
 ). 
 build 
 (), 
  
 AssetAutomationSetting 
 . 
 newBuilder 
 () 
  
 . 
 setAssetAutomationType 
 ( 
 AssetAutomationType 
 . 
 GENERATE_IMAGE_ENHANCEMENT 
 ) 
  
 . 
 setAssetAutomationStatus 
 ( 
 AssetAutomationStatus 
 . 
 OPTED_IN 
 ). 
 build 
 ())) 
  
  

C#

 campaign 
 . 
 AssetAutomationSettings 
 . 
 AddRange 
 ( 
 new 
 []{ 
  
 new 
  
 Campaign 
 . 
 Types 
 . 
 AssetAutomationSetting 
  
 { 
  
 AssetAutomationType 
  
 = 
  
 AssetAutomationType 
 . 
 GenerateImageExtraction 
 , 
  
 AssetAutomationStatus 
  
 = 
  
 AssetAutomationStatus 
 . 
 OptedIn 
  
 }, 
  
 new 
  
 Campaign 
 . 
 Types 
 . 
 AssetAutomationSetting 
  
 { 
  
 AssetAutomationType 
  
 = 
  
 AssetAutomationType 
 . 
 FinalUrlExpansionTextAssetAutomation 
 , 
  
 AssetAutomationStatus 
  
 = 
  
 AssetAutomationStatus 
 . 
 OptedIn 
  
 }, 
  
 new 
  
 Campaign 
 . 
 Types 
 . 
 AssetAutomationSetting 
  
 { 
  
 AssetAutomationType 
  
 = 
  
 AssetAutomationType 
 . 
 TextAssetAutomation 
 , 
  
 AssetAutomationStatus 
  
 = 
  
 AssetAutomationStatus 
 . 
 OptedIn 
  
 }, 
  
 new 
  
 Campaign 
 . 
 Types 
 . 
 AssetAutomationSetting 
  
 { 
  
 AssetAutomationType 
  
 = 
  
 AssetAutomationType 
 . 
 GenerateEnhancedYoutubeVideos 
 , 
  
 AssetAutomationStatus 
  
 = 
  
 AssetAutomationStatus 
 . 
 OptedIn 
  
 }, 
  
 new 
  
 Campaign 
 . 
 Types 
 . 
 AssetAutomationSetting 
  
 { 
  
 AssetAutomationType 
  
 = 
  
 AssetAutomationType 
 . 
 GenerateImageEnhancement 
 , 
  
 AssetAutomationStatus 
  
 = 
  
 AssetAutomationStatus 
 . 
 OptedIn 
  
 }, 
 }); 
  
  

PHP

This example is not yet available in PHP; you can take a look at the other languages.

Python

 # Configures the optional opt-in/out status for asset automation settings. 
 for 
 asset_automation_type_enum 
 in 
 [ 
 client 
 . 
 enums 
 . 
 AssetAutomationTypeEnum 
 . 
 GENERATE_IMAGE_EXTRACTION 
 , 
 client 
 . 
 enums 
 . 
 AssetAutomationTypeEnum 
 . 
 FINAL_URL_EXPANSION_TEXT_ASSET_AUTOMATION 
 , 
 client 
 . 
 enums 
 . 
 AssetAutomationTypeEnum 
 . 
 TEXT_ASSET_AUTOMATION 
 , 
 client 
 . 
 enums 
 . 
 AssetAutomationTypeEnum 
 . 
 GENERATE_ENHANCED_YOUTUBE_VIDEOS 
 , 
 client 
 . 
 enums 
 . 
 AssetAutomationTypeEnum 
 . 
 GENERATE_IMAGE_ENHANCEMENT 
 ]: 
 asset_automattion_setting 
 : 
 Campaign 
 . 
 AssetAutomationSetting 
 = 
 client 
 . 
 get_type 
 ( 
 "Campaign" 
 ) 
 . 
 AssetAutomationSetting 
 () 
 asset_automattion_setting 
 . 
 asset_automation_type 
 = 
 asset_automation_type_enum 
 asset_automattion_setting 
 . 
 asset_automation_status 
 = 
 client 
 . 
 enums 
 . 
 AssetAutomationStatusEnum 
 . 
 OPTED_IN 
 campaign 
 . 
 asset_automation_settings 
 . 
 append 
 ( 
 asset_automattion_setting 
 ) 
  

Ruby

 # Configures the optional opt-in/out status for asset automation settings. 
 c 
 . 
 asset_automation_settings 
 << 
 client 
 . 
 resource 
 . 
 asset_automation_setting 
  
 do 
  
 | 
 aas 
 | 
  
 aas 
 . 
 asset_automation_type 
  
 = 
  
 :GENERATE_IMAGE_EXTRACTION 
  
 aas 
 . 
 asset_automation_status 
  
 = 
  
 :OPTED_IN 
 end 
 c 
 . 
 asset_automation_settings 
 << 
 client 
 . 
 resource 
 . 
 asset_automation_setting 
  
 do 
  
 | 
 aas 
 | 
  
 aas 
 . 
 asset_automation_type 
  
 = 
  
 :FINAL_URL_EXPANSION_TEXT_ASSET_AUTOMATION 
  
 aas 
 . 
 asset_automation_status 
  
 = 
  
 :OPTED_IN 
 end 
 c 
 . 
 asset_automation_settings 
 << 
 client 
 . 
 resource 
 . 
 asset_automation_setting 
  
 do 
  
 | 
 aas 
 | 
  
 aas 
 . 
 asset_automation_type 
  
 = 
  
 :TEXT_ASSET_AUTOMATION 
  
 aas 
 . 
 asset_automation_status 
  
 = 
  
 :OPTED_IN 
 end 
 c 
 . 
 asset_automation_settings 
 << 
 client 
 . 
 resource 
 . 
 asset_automation_setting 
  
 do 
  
 | 
 aas 
 | 
  
 aas 
 . 
 asset_automation_type 
  
 = 
  
 :GENERATE_ENHANCED_YOUTUBE_VIDEOS 
  
 aas 
 . 
 asset_automation_status 
  
 = 
  
 :OPTED_IN 
 end 
 c 
 . 
 asset_automation_settings 
 << 
 client 
 . 
 resource 
 . 
 asset_automation_setting 
  
 do 
  
 | 
 aas 
 | 
  
 aas 
 . 
 asset_automation_type 
  
 = 
  
 :GENERATE_IMAGE_ENHANCEMENT 
  
 aas 
 . 
 asset_automation_status 
  
 = 
  
 :OPTED_IN 
 end  
 
 . 
 rb 

Perl

 # Configures the optional opt-in/out status for asset automation settings. 
 # When we create the campaign object, we set campaign->{assetAutomationSettings} 
 # equal to $asset_automation_settings. 
 my 
  
 $asset_automation_settings 
  
 = 
  
 [] 
 ; 
 my 
  
 $asset_automation_types 
  
 = 
  
 [ 
  
 GENERATE_IMAGE_EXTRACTION 
 , 
  
 FINAL_URL_EXPANSION_TEXT_ASSET_AUTOMATION 
 , 
  
 TEXT_ASSET_AUTOMATION 
 , 
  
 GENERATE_ENHANCED_YOUTUBE_VIDEOS 
 , 
  
 GENERATE_IMAGE_ENHANCEMENT 
 ]; 
 foreach 
  
 my 
  
 $asset_automation_type 
  
 ( 
 @$asset_automation_types 
 ) 
  
 { 
  
 push 
  
 @$asset_automation_settings 
 , 
  
 Google::Ads::GoogleAds::V22::Resources:: 
 AssetAutomationSetting 
 - 
> new 
 ({ 
  
 assetAutomationStatus 
  
 = 
>  
 OPTED_IN 
 , 
  
 assetAutomationType 
  
 = 
>  
 $asset_automation_type 
  
 }); 
 } 
  
  

Ad-level asset automation settings

These configure an asset automation for a single ad. Not all of them are available for every ad type: refer to the reference documentation for further details.

Asset automation type Supported ad types Default
DemandGenMultiAssetAd Enabled
DemandgenVideoResponsiveAd Disabled
DemandGenVideoResponsiveAd Enabled
DemandGenVideoResponsiveAd Enabled
DemandGenMultiAssetAds Enabled
Create a Mobile Website
View Site in Mobile | Classic
Share by: