Creating a Hotel Ad Group Ad
Stay organized with collections
Save and categorize content based on your preferences.
Creating a Hotel ad involves two steps:
Creating an
Ad
and setting its
hotel_ad
to an instance of
HotelAdInfo
.
Creating an
AdGroupAd
and associating the
previously created
Ad
to it.
Java
private String addHotelAdGroupAd(
GoogleAdsClient googleAdsClient, long customerId, String adGroupResourceName) {
// Creates a new hotel ad.
Ad ad = Ad.newBuilder().setHotelAd(HotelAdInfo.newBuilder().build()).build();
// Creates a new ad group ad and sets the hotel ad to it.
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 hotel campaigns. For hotels 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 a hotel ad group ad with resource name: '%s'%n",
mutateAdGroupAdResult.getResourceName());
return mutateAdGroupAdResult.getResourceName();
}
}
C#
private static void AddHotelAdGroupAd(GoogleAdsClient client, long customerId,
string adGroupResourceName)
{
// Get the AdGroupAdService.
AdGroupAdServiceClient service = client.GetService(Services.V16.AdGroupAdService);
// Create a new ad group ad and sets the hotel ad to it.
AdGroupAd adGroupAd = new AdGroupAd()
{
// Create a new hotel ad.
Ad = new Ad()
{
HotelAd = new HotelAdInfo(),
},
// Set the ad group.
AdGroup = adGroupResourceName,
// Set the ad group ad to enabled. Setting this to paused will cause an error
// for hotel campaigns. For hotels pausing should happen at either the ad group or
// campaign level.
Status = AdGroupAdStatus.Enabled
};
// Create an ad group ad operation.
AdGroupAdOperation adGroupAdOperation = new AdGroupAdOperation()
{
Create = adGroupAd
};
// Issue a mutate request to add an ad group ad.
MutateAdGroupAdsResponse response = service.MutateAdGroupAds(customerId.ToString(),
new AdGroupAdOperation[] { adGroupAdOperation });
MutateAdGroupAdResult addedAdGroupAd = response.Results[0];
Console.WriteLine($"Added a hotel ad group ad with resource name " +
$"{addedAdGroupAd.ResourceName}.");
}
PHP
private static function addHotelAdGroupAd(
GoogleAdsClient $googleAdsClient,
int $customerId,
string $adGroupResourceName
) {
// Creates a new hotel ad.
$ad = new Ad([
'hotel_ad' => new HotelAdInfo(),
]);
// Creates a new ad group ad and sets the hotel ad to it.
$adGroupAd = new AdGroupAd([
'ad' => $ad,
// Set the ad group ad to enabled. Setting this to paused will cause an error
// for hotel campaigns. For hotels 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 a hotel ad group ad with resource name '%s'.%s",
$addedAdGroupAd->getResourceName(),
PHP_EOL
);
}
Python
def add_hotel_ad(client, customer_id, ad_group_resource_name):
ad_group_ad_service = client.get_service("AdGroupAdService")
# Creates a new ad group ad and sets the hotel ad to it.
ad_group_ad_operation = client.get_type("AdGroupAdOperation")
ad_group_ad = ad_group_ad_operation.create
ad_group_ad.ad_group = ad_group_resource_name
# Set the ad group ad to enabled. Setting this to paused will cause an error
# for hotel campaigns. For hotels pausing should happen at either the ad group or
# campaign level.
ad_group_ad.status = client.enums.AdGroupAdStatusEnum.ENABLED
client.copy_from(ad_group_ad.ad.hotel_ad, client.get_type("HotelAdInfo"))
# Add the ad group ad.
ad_group_ad_response = ad_group_ad_service.mutate_ad_group_ads(
customer_id=customer_id, operations=[ad_group_ad_operation]
)
ad_group_ad_resource_name = ad_group_ad_response.results[0].resource_name
print(f"Created hotel ad with resource name '{ad_group_ad_resource_name}'.")
return ad_group_resource_name
Ruby
def add_hotel_ad_group_ad(client, customer_id, ad_group_resource)
# Create a new hotel ad.
ad_group_ad_operation = client.operation.create_resource.ad_group_ad do |aga|
# Create a new ad group ad and sets the hotel ad to it.
aga.ad = client.resource.ad do |ad|
ad.hotel_ad = client.resource.hotel_ad_info
end
# Set the ad group ad to enabled. Setting this to paused will cause an error
# for hotel campaigns. For hotels 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 hotel ad group ad with resource name '#{ad_group_ad_resource}'."
end
Perl
sub add_hotel_ad_group_ad {
my ($api_client, $customer_id, $ad_group_resource_name) = @_;
# Create an ad group ad and set a hotel ad to it.
my $ad_group_ad = Google::Ads::GoogleAds::V16::Resources::AdGroupAd->new({
# Set the ad group.
adGroup => $ad_group_resource_name,
# Set the ad to a new shopping product ad.
ad => Google::Ads::GoogleAds::V16::Resources::Ad->new({
hotelAd => Google::Ads::GoogleAds::V16::Common::HotelAdInfo->new()}
),
status => Google::Ads::GoogleAds::V16::Enums::AdGroupAdStatusEnum::ENABLED
});
# Create an ad group ad operation.
my $ad_group_ad_operation =
Google::Ads::GoogleAds::V16::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 a hotel ad group ad with resource name: '%s'.\n",
$ad_group_ad_resource_name;
return $ad_group_ad_resource_name;
}
Except as otherwise noted, the content of this page is licensed under the
Creative Commons Attribution 4.0 License
, and code samples are licensed under the
Apache 2.0 License
. For details, see the
Google Developers Site Policies
. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2024-04-25 UTC.
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"Missing the information I need"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"Too complicated / too many steps"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"Out of date"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"Samples / code issue"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"Other"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"Easy to understand"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"Solved my problem"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"Other"
}]