여행 목표 달성을 위한 실적 최대화 캠페인을 사용하면 검색, 디스플레이, 동영상, 디스커버와 같은 Google 채널에 게재되는 호텔 속성 광고를 만들 수 있습니다. 또한 채널 간 자동 예산 할당, 최종 URL 확장, Google 검색에서의 광고 노출 범위 증가, 각 호텔 숙박 시설에 대해 애셋 그룹으로 생성할 확장 소재에 대한 추천 등의 이점도 있습니다.
호텔 광고와 달리 여행 목표 달성을 위한 실적 최대화 캠페인을 사용하기 위해 Hotel Center 계정에 액세스할 필요가 없습니다.
여행 목표 달성을 위한 실적 최대화 캠페인 만들기
여행 목표 달성을 위한 실적 최대화 캠페인을 만드는 단계는 다음과 같습니다.
- 모든 호텔 숙박 시설의 애셋과 애셋 모음을 만들어 생성된 애셋 모음과 애셋을 연결하는 애셋 모음 애셋을 만듭니다.
- (권장) 애셋 그룹을 만드는 데 사용할 수 있는 추천 애셋을 가져옵니다.
- 애셋 모음과 추천 애셋을 사용하여 실적 최대화 캠페인을 만듭니다.
호텔 숙박 시설의 애셋 항목 만들기
AssetSet.type을AssetSetType.HOTEL_PROPERTY로 설정하여HOTEL_PROPERTY유형의 호텔 숙박 시설 애셋 모음을 만듭니다. 생성된 애셋 모음의 리소스 이름은 이후 단계에서 사용됩니다.자바
private String createHotelAssetSet(GoogleAdsClient googleAdsClient, long customerId) { // Creates an asset set operation for a hotel property asset set. AssetSetOperation assetSetOperation = AssetSetOperation.newBuilder() .setCreate( AssetSet.newBuilder() .setName( "My Hotel propery asset set #" + CodeSampleHelper.getPrintableDateTime()) .setType(AssetSetType.HOTEL_PROPERTY)) .build(); try (AssetSetServiceClient assetSetServiceClient = googleAdsClient.getLatestVersion().createAssetSetServiceClient()) { MutateAssetSetsResponse mutateAssetSetsResponse = assetSetServiceClient.mutateAssetSets( Long.toString(customerId), ImmutableList.of(assetSetOperation)); String assetSetResourceName = mutateAssetSetsResponse.getResults(0).getResourceName(); System.out.printf("Created an asset set with resource name: '%s'%n", assetSetResourceName); return assetSetResourceName; } }
C#
private string CreateHotelAssetSet(GoogleAdsClient client, long customerId) { AssetSetOperation operation = new AssetSetOperation() { Create = new AssetSet { Name = "My Hotel property asset set #" + ExampleUtilities.GetRandomString(), Type = AssetSetType.HotelProperty } }; AssetSetServiceClient assetSetService = client.GetService(Services.V25.AssetSetService); MutateAssetSetsResponse response = assetSetService.MutateAssetSets( customerId.ToString(), new List<AssetSetOperation> { operation } ); string assetResourceName = response.Results[0].ResourceName; Console.WriteLine($"Created an asset set with resource name: {assetResourceName}"); return assetResourceName; }
PHP
private static function createHotelAssetSet( GoogleAdsClient $googleAdsClient, int $customerId ): string { // Creates an asset set operation for a hotel property asset set. $assetSetOperation = new AssetSetOperation( [ // Creates a hotel property asset set. 'create' => new AssetSet( [ 'name' => 'My Hotel propery asset set #' . Helper::getPrintableDatetime(), 'type' => AssetSetType::HOTEL_PROPERTY ] ) ] ); // Issues a mutate request to add a hotel asset set and prints its information. $assetSetServiceClient = $googleAdsClient->getAssetSetServiceClient(); $response = $assetSetServiceClient->mutateAssetSets( MutateAssetSetsRequest::build($customerId, [$assetSetOperation]) ); $assetSetResourceName = $response->getResults()[0]->getResourceName(); printf("Created an asset set with resource name: '%s'.%s", $assetSetResourceName, PHP_EOL); return $assetSetResourceName; }
Python
def create_hotel_asset_set(client: GoogleAdsClient, customer_id: str) -> str: """Creates a hotel property asset set. Args: client: an initialized GoogleAdsClient instance. customer_id: a client customer ID. Returns: the created hotel property asset set's resource name. """ # Creates an asset set operation for a hotel property asset set. operation: AssetSetOperation = client.get_type("AssetSetOperation") # Creates a hotel property asset set. asset_set: AssetSet = operation.create asset_set.name = f"My hotel property asset set #{get_printable_datetime()}" asset_set.type_ = client.enums.AssetSetTypeEnum.HOTEL_PROPERTY # Issues a mutate request to add a hotel asset set. asset_set_service: AssetSetServiceClient = client.get_service( "AssetSetService" ) response: MutateAssetSetsResponse = asset_set_service.mutate_asset_sets( customer_id=customer_id, operations=[operation] ) resource_name: str = response.results[0].resource_name print(f"Created an asset set with resource name: '{resource_name}'") return resource_name
Ruby
# Creates a hotel property asset set. def create_hotel_asset_set(client, customer_id) operation = client.operation.create_resource.asset_set do |asset_set| asset_set.name = "My Hotel propery asset set #{Time.now}" asset_set.type = :HOTEL_PROPERTY end # Sends the mutate request. response = client.service.asset_set.mutate_asset_sets( customer_id: customer_id, operations: [operation] ) # Prints some information about the response. response.results.first.resource_name end
Perl
sub create_hotel_asset_set { my ($api_client, $customer_id) = @_; my $asset_set_operation = Google::Ads::GoogleAds::V25::Services::AssetSetService::AssetSetOperation-> new({ # Creates a hotel property asset set. create => Google::Ads::GoogleAds::V25::Resources::AssetSet->new({ name => 'My Hotel propery asset set #' . uniqid(), type => HOTEL_PROPERTY })}); # Issues a mutate request to add a hotel asset set and prints its information. my $response = $api_client->AssetSetService()->mutate({ customerId => $customer_id, operations => [$asset_set_operation]}); my $asset_set_resource_name = $response->{results}[0]{resourceName}; printf "Created an asset set with resource name: '%s'.\n", $asset_set_resource_name; return $asset_set_resource_name; }
curl
각 호텔 숙박 시설에 대해 다음을 수행합니다.
Asset.hotel_property_asset을HotelPropertyAsset객체로 설정하여 애셋을 만듭니다.간단하게 하기 위해 코드 예시에서는 호텔 숙박 시설 애셋을 하나만 만듭니다.
생성된
HotelPropertyAsset객체의place_id을 호텔 숙박 시설의 장소 ID로 설정합니다. 장소 ID는 Google 지도의 장소를 식별하는 고유 ID입니다. 장소 ID 찾기 도구를 사용하여 숙박 시설을 조회할 수 있습니다.이전에 만든 애셋 모음을 애셋과 연결하려면 새
AssetSetAsset을 만들고asset_set을 만든 애셋 모음의 리소스 이름으로,asset을 만든 호텔 숙박 시설 애셋의 리소스 이름으로 설정하여 애셋 모음 애셋을 만듭니다.자바
private String createHotelAsset( GoogleAdsClient googleAdsClient, long customerId, String placeId, String hotelPropertyAssetSetResourceName) { // Uses the GoogleAdService to create an asset and asset set asset in a single request. List<MutateOperation> mutateOperations = new ArrayList<>(); String assetResourceName = ResourceNames.asset(customerId, ASSET_TEMPORARY_ID); // Creates a mutate operation for a hotel property asset. Asset hotelPropertyAsset = Asset.newBuilder() .setResourceName(assetResourceName) .setHotelPropertyAsset(HotelPropertyAsset.newBuilder().setPlaceId(placeId)) .build(); mutateOperations.add( MutateOperation.newBuilder() .setAssetOperation(AssetOperation.newBuilder().setCreate(hotelPropertyAsset)) .build()); // Creates a mutate operation for an asset set asset. AssetSetAsset assetSetAsset = AssetSetAsset.newBuilder() .setAsset(assetResourceName) .setAssetSet(hotelPropertyAssetSetResourceName) .build(); mutateOperations.add( MutateOperation.newBuilder() .setAssetSetAssetOperation(AssetSetAssetOperation.newBuilder().setCreate(assetSetAsset)) .build()); // Issues a mutate request to create all entities. try (GoogleAdsServiceClient googleAdsServiceClient = googleAdsClient.getLatestVersion().createGoogleAdsServiceClient()) { MutateGoogleAdsResponse mutateGoogleAdsResponse = googleAdsServiceClient.mutate(Long.toString(customerId), mutateOperations); System.out.println("Created the following entities for the hotel asset:"); printResponseDetails(mutateGoogleAdsResponse); // Returns the created asset resource name, which will be used later to create an asset // group. Other resource names are not used later. return mutateGoogleAdsResponse .getMutateOperationResponses(0) .getAssetResult() .getResourceName(); } }
C#
private string CreateHotelAsset( GoogleAdsClient client, long customerId, string placeId, string hotelPropertyAssetSetResourceName) { // Uses the GoogleAdService to create an asset and asset set asset in a single request. List<MutateOperation> mutateOperations = new List<MutateOperation>(); string assetResourceName = ResourceNames.Asset(customerId, ASSET_TEMPORARY_ID); // Creates a mutate operation for a hotel property asset. Asset hotelPropertyAsset = new Asset() { ResourceName = assetResourceName, HotelPropertyAsset = new HotelPropertyAsset { PlaceId = placeId } }; mutateOperations.Add(new MutateOperation { AssetOperation = new AssetOperation { Create = hotelPropertyAsset } }); // Creates a mutate operation for an asset set asset. AssetSetAsset assetSetAsset = new AssetSetAsset { Asset = assetResourceName, AssetSet = hotelPropertyAssetSetResourceName }; mutateOperations.Add(new MutateOperation { AssetSetAssetOperation = new AssetSetAssetOperation { Create