Performance Max for travel goals

  • Performance Max campaigns for travel goals allow creating ads for hotel properties across Google channels.

  • Unlike Hotel Ads, a Hotel Center account is not needed for Performance Max travel goals.

  • Creating a Performance Max for travel goals campaign involves creating asset entities, optionally getting suggested assets, and then creating the campaign using the asset set and assets.

  • You must link hotel property assets to the asset group for the campaign to function as Performance Max for travel goals.

Performance Max for travel goals campaigns let you create ads for hotel properties that serve across Google channels such as Search, Display, Video, and Discover. Benefits also include automatic budget allocation across channels, final URL expansion, increased ad coverage on Search, and suggestions for assets to be created as an asset group for each hotel property.

Unlike Hotel Ads, you don't need to have access to a Hotel Center account in order to use Performance Max for travel goals.

Create a Performance Max for travel goals campaign

The steps for creating a Performance Max for travel goals campaign are as follows:

  1. Create an asset set, assets for all your hotel properties, and asset set assets to link the created asset set and assets.
  2. (Recommended) Get suggested assets that you can use to create an asset group.
  3. Create a Performance Max campaign using the asset set and the suggested assets.

Create asset entities for your hotel properties

  1. Create a hotel property asset set of type HOTEL_PROPERTY by setting AssetSet.type to AssetSetType.HOTEL_PROPERTY. You'll use the resource name of the created asset set in the later steps.

    Java

    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.V22.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;
    }