Creating a Shopping Ad Group

To serve ads for your Shopping campaign, you must create an AdGroup .

Standard Shopping campaigns support the SHOPPING_PRODUCT_ADS ad group type. This is the default ad group type for Shopping campaigns, serving standard product ads. It can be set by providing the ad group type field.

Standard Shopping campaigns can contain multiple ad groups, each containing at least one ad.

This code example demonstrates how to create an ad group for a standard Shopping campaign. The example also sets a CPC bid to match the campaign's bid strategy, which is set to ManualCpc .

Java

 private 
  
 String 
  
 addShoppingProductAdGroup 
 ( 
  
 GoogleAdsClient 
  
 googleAdsClient 
 , 
  
 long 
  
 customerId 
 , 
  
 String 
  
 campaignResourceName 
 ) 
  
 { 
  
 // Creates an ad group. 
  
 AdGroup 
  
 adGroup 
  
 = 
  
 AdGroup 
 . 
 newBuilder 
 () 
  
 . 
 setName 
 ( 
 "Earth to Mars Cruises #" 
  
 + 
  
 getPrintableDateTime 
 ()) 
  
 . 
 setCampaign 
 ( 
 campaignResourceName 
 ) 
  
 // Sets the ad group type to SHOPPING_PRODUCT_ADS. This is the only value possible for 
  
 // ad groups that contain shopping product ads. 
  
 . 
 setType 
 ( 
 AdGroupType 
 . 
 SHOPPING_PRODUCT_ADS 
 ) 
  
 . 
 setCpcBidMicros 
 ( 
 1_000_000L 
 ) 
  
 . 
 setStatus 
 ( 
 AdGroupStatus 
 . 
 ENABLED 
 ) 
  
 . 
 build 
 (); 
  
 // Creates an ad group operation. 
  
 AdGroupOperation 
  
 operation 
  
 = 
  
 AdGroupOperation 
 . 
 newBuilder 
 (). 
 setCreate 
 ( 
 adGroup 
 ). 
 build 
 (); 
  
 // Issues a mutate request to add an ad group. 
  
 try 
  
 ( 
 AdGroupServiceClient 
  
 adGroupServiceClient 
  
 = 
  
 googleAdsClient 
 . 
 getLatestVersion 
 (). 
 createAdGroupServiceClient 
 ()) 
  
 { 
  
 MutateAdGroupResult 
  
 mutateAdGroupResult 
  
 = 
  
 adGroupServiceClient 
  
 . 
 mutateAdGroups 
 ( 
 Long 
 . 
 toString 
 ( 
 customerId 
 ), 
  
 Collections 
 . 
 singletonList 
 ( 
 operation 
 )) 
  
 . 
 getResults 
 ( 
 0 
 ); 
  
 System 
 . 
 out 
 . 
 printf 
 ( 
  
 "Added a product shopping ad group with resource name: '%s'%n" 
 , 
  
 mutateAdGroupResult 
 . 
 getResourceName 
 ()); 
  
 return 
  
 mutateAdGroupResult 
 . 
 getResourceName 
 (); 
  
 } 
 } 
  
  

C#

 private 
  
 string 
  
 AddProductShoppingAdGroup 
 ( 
 GoogleAdsClient 
  
 client 
 , 
  
 long 
  
 customerId 
 , 
  
 string 
  
 campaignResourceName 
 ) 
 { 
  
 // Get the AdGroupService. 
  
 AdGroupServiceClient 
  
 adGroupService 
  
 = 
  
 client 
 . 
 GetService 
 ( 
 Services 
 . 
 V21 
 . 
 AdGroupService 
 ); 
  
 // Creates an ad group. 
  
 AdGroup 
  
 adGroup 
  
 = 
  
 new 
  
 AdGroup 
 () 
  
 { 
  
 Name 
  
 = 
  
 "Earth to Mars Cruises #" 
  
 + 
  
 ExampleUtilities 
 . 
 GetRandomString 
 (), 
  
 Campaign 
  
 = 
  
 campaignResourceName 
 , 
  
 // Sets the ad group type to SHOPPING_PRODUCT_ADS. This is the only value possible 
  
 // for ad groups that contain shopping product ads. 
  
 Type 
  
 = 
  
 AdGroupType 
 . 
 ShoppingProductAds 
 , 
  
 CpcBidMicros 
  
 = 
  
 1 
 _000_000L 
 , 
  
 Status 
  
 = 
  
 AdGroupStatus 
 . 
 Enabled 
  
 }; 
  
 // Creates an ad group operation. 
  
 AdGroupOperation 
  
 operation 
  
 = 
  
 new 
  
 AdGroupOperation 
 () 
  
 { 
  
 Create 
  
 = 
  
 adGroup 
  
 }; 
  
 // Issues a mutate request to add an ad group. 
  
 MutateAdGroupResult 
  
 mutateAdGroupResult 
  
 = 
  
 adGroupService 
  
 . 
 MutateAdGroups 
 ( 
 customerId 
 . 
 ToString 
 (), 
  
 new 
  
 AdGroupOperation 
 [] 
  
 { 
  
 operation 
  
 }) 
  
 . 
 Results 
 [ 
 0 
 ]; 
  
 Console 
 . 
 WriteLine 
 ( 
 "Added a product shopping ad group with resource name: '{0}'." 
 , 
  
 mutateAdGroupResult 
 . 
 ResourceName 
 ); 
  
 return 
  
 mutateAdGroupResult 
 . 
 ResourceName 
 ; 
 } 
  
  

PHP

 private static function addShoppingProductAdGroup( 
 GoogleAdsClient $googleAdsClient, 
 int $customerId, 
 string $campaignResourceName 
 ) { 
 // Creates an ad group. 
 $adGroup = new AdGroup([ 
 'name' => 'Earth to Mars Cruise #' . Helper::getPrintableDatetime(), 
 // Sets the campaign. 
 'campaign' => $campaignResourceName, 
 // Sets the ad group type to SHOPPING_PRODUCT_ADS. This is the only value possible for 
 // ad groups that contain shopping product ads. 
 'type' => AdGroupType::SHOPPING_PRODUCT_ADS, 
 'cpc_bid_micros' => 10000000, 
 'status' => AdGroupStatus::ENABLED 
 ]); 
 // Creates an ad group operation. 
 $adGroupOperation = new AdGroupOperation(); 
 $adGroupOperation->setCreate($adGroup); 
 // Issues a mutate request to add an ad group. 
 $adGroupServiceClient = $googleAdsClient->getAdGroupServiceClient(); 
 $response = $adGroupServiceClient->mutateAdGroups( 
 MutateAdGroupsRequest::build($customerId, [$adGroupOperation]) 
 ); 
 /** @var AdGroup $addedAdGroup */ 
 $addedAdGroup = $response->getResults()[0]; 
 printf( 
 "Added a shopping product ad group with resource name '%s'.%s", 
 $addedAdGroup->getResourceName(), 
 PHP_EOL 
 ); 
 return $addedAdGroup->getResourceName(); 
 }  
 

Python

 def 
  
 add_shopping_product_ad_group 
 ( 
 client 
 : 
 GoogleAdsClient 
 , 
 customer_id 
 : 
 str 
 , 
 campaign_resource_name 
 : 
 str 
 , 
 ) 
 - 
> str 
 : 
  
 """Creates a new shopping product ad group in the specified campaign.""" 
 ad_group_service 
 : 
 AdGroupServiceClient 
 = 
 client 
 . 
 get_service 
 ( 
 "AdGroupService" 
 ) 
 # Create ad group. 
 ad_group_operation 
 : 
 AdGroupOperation 
 = 
 client 
 . 
 get_type 
 ( 
 "AdGroupOperation" 
 ) 
 ad_group 
 : 
 AdGroup 
 = 
 ad_group_operation 
 . 
 create 
 ad_group 
 . 
 name 
 = 
 f 
 "Earth to Mars cruise 
 { 
 uuid 
 . 
 uuid4 
 () 
 } 
 " 
 ad_group 
 . 
 status 
 = 
 client 
 . 
 enums 
 . 
 AdGroupStatusEnum 
 . 
 ENABLED 
 ad_group 
 . 
 campaign 
 = 
 campaign_resource_name 
 # Sets the ad group type to SHOPPING_PRODUCT_ADS. This is the only value 
 # possible for ad groups that contain shopping product ads. 
 ad_group 
 . 
 type_ 
 = 
 client 
 . 
 enums 
 . 
 AdGroupTypeEnum 
 . 
 SHOPPING_PRODUCT_ADS 
 ad_group 
 . 
 cpc_bid_micros 
 = 
 10000000 
 # Add the ad group. 
 ad_group_response 
 = 
 ad_group_service 
 . 
 mutate_ad_groups 
 ( 
 customer_id 
 = 
 customer_id 
 , 
 operations 
 = 
 [ 
 ad_group_operation 
 ] 
 ) 
 ad_group_resource_name 
 : 
 str 
 = 
 ad_group_response 
 . 
 results 
 [ 
 0 
 ] 
 . 
 resource_name 
 print 
 ( 
 "Added a product shopping ad group with resource name " 
 f 
 "' 
 { 
 ad_group_resource_name 
 } 
 '." 
 ) 
 return 
 ad_group_resource_name  
 
 . 
 py 

Ruby

 def 
  
 add_shopping_product_ad_group 
 ( 
 client 
 , 
  
 customer_id 
 , 
  
 campaign_name 
 ) 
  
 operation 
  
 = 
  
 client 
 . 
 operation 
 . 
 create_resource 
 . 
 ad_group 
  
 do 
  
 | 
 ad_group 
 | 
  
 ad_group 
 . 
 name 
  
 = 
  
 "Earth to Mars cruise # 
 #{ 
 ( 
 Time 
 . 
 new 
 . 
 to_f 
  
 * 
  
 1000 
 ) 
 . 
 to_i 
 } 
 " 
  
 ad_group 
 . 
 status 
  
 = 
  
 :ENABLED 
  
 ad_group 
 . 
 campaign 
  
 = 
  
 campaign_name 
  
 ad_group 
 . 
 type 
  
 = 
  
 :SHOPPING_PRODUCT_ADS 
  
 ad_group 
 . 
 cpc_bid_micros 
  
 = 
  
 10_000_000 
  
 end 
  
 service 
  
 = 
  
 client 
 . 
 service 
 . 
 ad_group 
  
 response 
  
 = 
  
 service 
 . 
 mutate_ad_groups 
 ( 
  
 customer_id 
 : 
  
 customer_id 
 , 
  
 operations 
 : 
  
 [ 
 operation 
 ] 
 , 
  
 ) 
  
 ad_group_name 
  
 = 
  
 response 
 . 
 results 
 . 
 first 
 . 
 resource_name 
  
 puts 
  
 "Added a product shopping ad group with resource name 
 #{ 
 ad_group_name 
 } 
 ." 
  
 ad_group_name 
 end  
 
 . 
 rb 
  

Perl

 sub 
  
 add_shopping_product_ad_group 
  
 { 
  
 my 
  
 ( 
 $api_client 
 , 
  
 $customer_id 
 , 
  
 $campaign_resource_name 
 ) 
  
 = 
  
 @_ 
 ; 
  
 # Create an ad group. 
  
 my 
  
 $ad_group 
  
 = 
  
 Google::Ads::GoogleAds::V21::Resources:: 
 AdGroup 
 - 
> new 
 ({ 
  
 name 
  
 = 
>  
 "Earth to Mars Cruises #" 
  
 . 
  
 uniqid 
 (), 
  
 campaign 
  
 = 
>  
 $campaign_resource_name 
 , 
  
 # Set the ad group type to SHOPPING_PRODUCT_ADS. This is the only value 
  
 # possible for ad groups that contain shopping product ads. 
  
 type 
  
 = 
>  
 SHOPPING_PRODUCT_ADS 
 , 
  
 cpcBidMicros 
  
 = 
>  
 1000000 
 , 
  
 status 
  
 = 
>  
 Google::Ads::GoogleAds::V21::Enums::AdGroupStatusEnum:: 
 ENABLED 
  
 }); 
  
 # Create an ad group operation. 
  
 my 
  
 $ad_group_operation 
  
 = 
  
 Google::Ads::GoogleAds::V21::Services::AdGroupService:: 
 AdGroupOperation 
 - 
>  
 new 
 ({ 
 create 
  
 = 
>  
 $ad_group 
 }); 
  
 # Add the ad group. 
  
 my 
  
 $ad_group_resource_name 
  
 = 
  
 $api_client 
 - 
> AdGroupService 
 () 
 - 
> mutate 
 ({ 
  
 customerId 
  
 = 
>  
 $customer_id 
 , 
  
 operations 
  
 = 
>  
 [ 
 $ad_group_operation 
 ]}) 
 - 
> { 
 results 
 }[ 
 0 
 ]{ 
 resourceName 
 }; 
  
 printf 
  
 "Added a product shopping ad group with resource name: '%s'.\n" 
 , 
  
 $ad_group_resource_name 
 ; 
  
 return 
  
 $ad_group_resource_name 
 ; 
 } 
  
  
Create a Mobile Website
View Site in Mobile | Classic
Share by: