Creating a Things to do ad group ad

  • Creating a Things to do ad involves creating an Ad and setting its travel_ad to an instance of TravelAdInfo.

  • The second step is to create an AdGroupAd and associate the previously created Ad to it.

  • To serve ads for your ad group, you need one AdGroupAd whose ad is set and whose status is ENABLED.

  • It is recommended to create only one ad per ad group to make tracking ad performance easier.

Creating a Things to do ad involves two steps:

  1. Creating an Ad and setting its travel_ad to an instance of TravelAdInfo.

  2. Creating an AdGroupAd and associating the previously created Ad to it.

Java

private String addAddGroupAd(  GoogleAdsClient googleAdsClient, long customerId, String adGroupResourceName) {  // Creates a new travel ad.  Ad ad = Ad.newBuilder().setTravelAd(TravelAdInfo.newBuilder()).build();  // Creates a new ad group ad and sets its ad to the travel ad.  AdGroupAd adGroupAd =  AdGroupAd.newBuilder()  // Sets the ad to the ad created above.  .setAd(ad)  // Set the ad group ad to enabled. Setting this to paused will cause an error for  // Things to do campaigns. Pausing should happen at either the ad group or campaign  // level.  .setStatus(AdGroupAdStatus.ENABLED)  // Sets the ad group.  .setAdGroup(adGroupResourceName)  .build();  // Creates an ad group ad operation.  AdGroupAdOperation operation = AdGroupAdOperation.newBuilder().setCreate(adGroupAd).build();  // Issues a mutate request to add an ad group ad.  try (AdGroupAdServiceClient adGroupAdServiceClient =  googleAdsClient.getLatestVersion().createAdGroupAdServiceClient()) {  MutateAdGroupAdResult mutateAdGroupAdResult =  adGroupAdServiceClient  .mutateAdGroupAds(Long.toString(customerId), Collections.singletonList(operation))  .getResults(0);  System.out.printf(  "Added an ad group ad with resource name: '%s'%n",  mutateAdGroupAdResult.getResourceName());  return mutateAdGroupAdResult.getResourceName();  } }  

C#

private static void CreateAdGroupAd(GoogleAdsClient client, long customerId,  string adGroup) {  // Get the AdGroupAdService.  AdGroupAdServiceClient adGroupAdService =  client.GetService(Services.V22.AdGroupAdService);  // Creates a new ad group ad and sets a travel ad info.  AdGroupAd adGroupAd = new AdGroupAd()  {  Ad = new Ad()  {  TravelAd = new TravelAdInfo()  },  // Set the ad group ad to enabled. Setting this to paused will cause an error for  // Things to do campaigns. Pausing should happen at either the ad group or campaign  // level.  Status = AdGroupAdStatus.Enabled,  AdGroup = adGroup  };  MutateAdGroupAdsResponse response = adGroupAdService.MutateAdGroupAds(  customerId.ToString(), new AdGroupAdOperation[] { new AdGroupAdOperation() {  Create = adGroupAd  }}  );  string adGroupAdResourceName = response.Results[0].ResourceName;  Console.WriteLine("Ad group ad with resource name = '{0}' was added.",  adGroupAdResourceName); }  

PHP

private static function addAdGroupAd(  GoogleAdsClient $googleAdsClient,  int $customerId,  string $adGroupResourceName ) {  // Creates a new ad group ad and sets a travel ad info.  $adGroupAd = new AdGroupAd([  'ad' => new Ad(['travel_ad' => new TravelAdInfo()]),  // Set the ad group ad to enabled. Setting this to paused will cause an error for Things  // to do campaigns. Pausing should happen at either the ad group or campaign level.  'status' => AdGroupAdStatus::ENABLED,  // Sets the ad group.  'ad_group' => $adGroupResourceName  ]);  // Creates an ad group ad operation.  $adGroupAdOperation = new AdGroupAdOperation();  $adGroupAdOperation->setCreate($adGroupAd);  // Issues a mutate request to add an ad group ad.  $adGroupAdServiceClient = $googleAdsClient->getAdGroupAdServiceClient();  $response = $adGroupAdServiceClient->mutateAdGroupAds(  MutateAdGroupAdsRequest::build($customerId, [$adGroupAdOperation])  );  /** @var AdGroupAd $addedAdGroupAd */  $addedAdGroupAd = $response->getResults()[0];  printf(  "Added an ad group ad with resource name '%s'.%s",  $addedAdGroupAd->getResourceName(),  PHP_EOL  ); }  

Python

def add_ad_group_ad( client: GoogleAdsClient, customer_id: str, ad_group_resource_name: str ) -> None:  """Creates a new ad group ad in the specified ad group.  Args:  client: an initialized GoogleAdsClient instance.  customer_id: a client customer ID.  ad_group_resource_name: the resource name of ad group that a new ad  group ad will belong to.  """ # Creates an ad group ad operation. operation: AdGroupAdOperation = client.get_type("AdGroupAdOperation") # Creates a new ad group ad and sets a travel ad info. ad_group_ad: AdGroupAd = operation.create # Sets the ad group ad to enabled. Setting this to paused will cause an error # for Things to do campaigns. Pausing should happen at either the ad group # or campaign level. ad_group_ad.status = client.enums.AdGroupAdStatusEnum.ENABLED ad_group_ad.ad.travel_ad = client.get_type("TravelAdInfo") # Sets the ad group. ad_group_ad.ad_group = ad_group_resource_name # Issues a mutate request to add an ad group ad. ad_group_ad_service: AdGroupAdServiceClient = client.get_service( "AdGroupAdService" ) response: MutateAdGroupAdsResponse = ( ad_group_ad_service.mutate_ad_group_ads( customer_id=customer_id, operations=[operation] ) ) resource_name: str = response.results[0].resource_name print(f"Added an ad group ad with resource name: '{resource_name}'.") 

Ruby

def add_ad_group_ad(client, customer_id, ad_group_resource)  # Creates a new ad group ad and sets a travel ad info.  ad_group_ad_operation = client.operation.create_resource.ad_group_ad do |aga|  aga.ad = client.resource.ad do |ad|  ad.travel_ad = client.resource.travel_ad_info  end  # Set the ad group ad to enabled. Setting this to paused will cause an error  # for Things to Do campaigns. Pausing should happen at either the ad group  # or campaign level.  aga.status = :ENABLED  # Set the ad group.  aga.ad_group = ad_group_resource  end  # Issue a mutate request to add the ad group ad.  ad_group_ad_service = client.service.ad_group_ad  response = ad_group_ad_service.mutate_ad_group_ads(  customer_id: customer_id,  operations: [ad_group_ad_operation],  )  # Fetch the new ad group ad's resource name.  ad_group_ad_resource = response.results.first.resource_name  puts "Added an ad group ad with resource name '#{ad_group_ad_resource}'." end  

Perl

sub add_ad_group_ad {  my ($api_client, $customer_id, $ad_group_resource_name) = @_;  # Create an ad group ad and set a travel ad info.  my $ad_group_ad = Google::Ads::GoogleAds::V22::Resources::AdGroupAd->new({  # Set the ad group.  adGroup => $ad_group_resource_name,  ad => Google::Ads::GoogleAds::V22::Resources::Ad->new({  travelAd => Google::Ads::GoogleAds::V22::Common::TravelAdInfo->new()}  ),  # Set the ad group to enabled. Setting this to paused will cause an error  # for Things to do campaigns. Pausing should happen at either the ad group  # or campaign level.  status => Google::Ads::GoogleAds::V22::Enums::AdGroupAdStatusEnum::ENABLED  });  # Create an ad group ad operation.  my $ad_group_ad_operation =  Google::Ads::GoogleAds::V22::Services::AdGroupAdService::AdGroupAdOperation  ->new({create => $ad_group_ad});  # Add the ad group ad.  my $ad_group_ad_resource_name = $api_client->AdGroupAdService()->mutate({  customerId => $customer_id,  operations => [$ad_group_ad_operation]})->{results}[0]{resourceName};  printf "Added an ad group ad with resource name: '%s'.\n",  $ad_group_ad_resource_name;  return $ad_group_ad_resource_name; }