Trước khi tạo quảng cáo khách sạn, hãy đảm bảo rằng bạn có một chiến dịch Khách sạn và một nhóm quảng cáo hiện có có type được đặt thành HOTEL_ADS.
Việc đính kèm một HotelAdInfo vào một AdGroup chưa được định cấu hình cho chiến dịch Khách sạn sẽ kích hoạt lỗi biến đổi API.
Việc tạo quảng cáo Khách sạn bao gồm 2 bước:
- Tạo một
Advà đặt trườnghotel_adcủa đối tượng đó thành một thực thểHotelAdInfomới. - Tạo một
AdGroupAdđể liên kếtAdvới nhóm quảng cáo khách sạn của bạn.
Mặc dù bạn có thể tạo nhiều quảng cáo trong nhóm quảng cáo trong một nhóm quảng cáo khách sạn, nhưng việc phân phối lượt hiển thị giữa các quảng cáo đó là tuỳ ý. Để đơn giản hoá việc báo cáo và phân bổ chỉ số, hãy chỉ tạo một quảng cáo nhóm quảng cáo cho mỗi nhóm quảng cáo.
Ví dụ về mã
Ví dụ về mã sau đây minh hoạ cách tạo và liên kết một quảng cáo khách sạn với một nhóm quảng cáo hiện có:
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.V25.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: GoogleAdsClient, customer_id: str, ad_group_resource_name: str ) -> str: ad_group_ad_service: AdGroupAdServiceClient = client.get_service( "AdGroupAdService" ) # Creates a new ad group ad and sets the hotel ad to it. ad_group_ad_operation: AdGroupAdOperation = client.get_type( "AdGroupAdOperation" ) ad_group_ad: AdGroupAd = 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: MutateAdGroupAdsResponse = ( ad_group_ad_service.mutate_ad_group_ads( customer_id=customer_id, operations=[ad_group_ad_operation] ) ) ad_group_ad_resource_name: str = 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::V25::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::V25::Resources::Ad->new({ hotelAd => Google::Ads::GoogleAds::V25::Common::HotelAdInfo->new()} ), status => Google::Ads::GoogleAds::V25::Enums::AdGroupAdStatusEnum::ENABLED }); # Create an ad group ad operation. my $ad_group_ad_operation = Google::Ads::GoogleAds::V25::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; }
curl
Bước tiếp theo
- Tìm hiểu cách quản lý Nhóm trang thông tin về khách sạn.
- Xem xét Chiến lược đặt giá thầu cho khách sạn.