Criar um grupo de anúncios de hotéis

Para veicular anúncios na sua campanha de hotel, você precisa criar uma AdGroup com pelo menos um anúncio no grupo. Conforme mostrado depois, uma campanha de hotel só é compatível com grupos de anúncios do tipo HOTEL_ADS, que você pode definir no campo type. O exemplo de código também define um lance de porcentagem de CPC, já que a estratégia de lances da campanha é PercentCpc.

Java

private String addHotelAdGroup(
    GoogleAdsClient googleAdsClient, long customerId, String campaignResourceName) {
  // Creates an ad group.
  AdGroup adGroup =
      AdGroup.newBuilder()
          .setName("Earth to Mars Cruises #" + getPrintableDateTime())
          .setCampaign(campaignResourceName)
          // Sets the ad group type to HOTEL_ADS. This cannot be set to other types.
          .setType(AdGroupType.HOTEL_ADS)
          .setCpcBidMicros(1_000_000L)
          .setStatus(AdGroupStatus.ENABLED)
          .build();

  // Creates an ad group operation.
  AdGroupOperation operation = AdGroupOperation.newBuilder().setCreate(adGroup).build();

  // Issues a mutate request to add an ad group.
  try (AdGroupServiceClient adGroupServiceClient =
      googleAdsClient.getLatestVersion().createAdGroupServiceClient()) {
    MutateAdGroupResult mutateAdGroupResult =
        adGroupServiceClient
            .mutateAdGroups(Long.toString(customerId), Collections.singletonList(operation))
            .getResults(0);
    System.out.printf(
        "Added a hotel ad group with resource name: '%s'%n",
        mutateAdGroupResult.getResourceName());
    return mutateAdGroupResult.getResourceName();
  }
}
      

C#

private static string AddHotelAdGroup(GoogleAdsClient client, long customerId,
    string campaignResourceName)
{
    // Get the AdGroupService.
    AdGroupServiceClient service = client.GetService(Services.V16.AdGroupService);

    // Create an ad group.
    AdGroup adGroup = new AdGroup()
    {
        Name = "Earth to Mars Cruise #" + ExampleUtilities.GetRandomString(),

        // Sets the campaign.
        Campaign = campaignResourceName,

        // Optional: Sets the ad group type to HOTEL_ADS.
        // This cannot be set to other types.
        Type = AdGroupType.HotelAds,

        CpcBidMicros = 10000000,
        Status = AdGroupStatus.Enabled
    };

    // Create an ad group operation.
    AdGroupOperation adGroupOperation = new AdGroupOperation()
    {
        Create = adGroup
    };

    // Issue a mutate request to add an ad group.
    MutateAdGroupsResponse response = service.MutateAdGroups(customerId.ToString(),
        new AdGroupOperation[] { adGroupOperation });
    return response.Results[0].ResourceName;
}
      

PHP

private static function addHotelAdGroup(
    GoogleAdsClient $googleAdsClient,
    int $customerId,
    string $campaignResourceName
) {
    // Creates an ad group.
    $adGroup = new AdGroup([
        'name' => 'Earth to Mars Cruise #' . Helper::getPrintableDatetime(),
        // Sets the campaign.
        'campaign' => $campaignResourceName,
        // Sets the ad group type to HOTEL_ADS.
        // This cannot be set to other types.
        'type' => AdGroupType::HOTEL_ADS,
        'cpc_bid_micros' => 10000000,
        'status' => AdGroupStatus::ENABLED,
    ]);

    // Creates an ad group operation.
    $adGroupOperation = new AdGroupOperation();
    $adGroupOperation->setCreate($adGroup);

    // Issues a mutate request to add an ad group.
    $adGroupServiceClient = $googleAdsClient->getAdGroupServiceClient();
    $response = $adGroupServiceClient->mutateAdGroups(
        MutateAdGroupsRequest::build($customerId, [$adGroupOperation])
    );

    /** @var AdGroup $addedAdGroup */
    $addedAdGroup = $response->getResults()[0];
    printf(
        "Added a hotel ad group with resource name '%s'.%s",
        $addedAdGroup->getResourceName(),
        PHP_EOL
    );

    return $addedAdGroup->getResourceName();
}
      

Python

def add_hotel_ad_group(client, customer_id, campaign_resource_name):
    ad_group_service = client.get_service("AdGroupService")

    # Create ad group.
    ad_group_operation = client.get_type("AdGroupOperation")
    ad_group = ad_group_operation.create
    ad_group.name = f"Earth to Mars cruise {uuid.uuid4()}"
    ad_group.status = client.enums.AdGroupStatusEnum.ENABLED
    ad_group.campaign = campaign_resource_name
    # Sets the ad group type to HOTEL_ADS. This cannot be set to other types.
    ad_group.type_ = client.enums.AdGroupTypeEnum.HOTEL_ADS
    ad_group.cpc_bid_micros = 10000000

    # Add the ad group.
    ad_group_response = ad_group_service.mutate_ad_groups(
        customer_id=customer_id, operations=[ad_group_operation]
    )

    ad_group_resource_name = ad_group_response.results[0].resource_name

    print(
        "Added a hotel ad group with resource name '{ad_group_resource_name}'."
    )

    return ad_group_resource_name
      

Ruby

def add_hotel_ad_group(client, customer_id, campaign_resource)
  # Create an ad group.
  ad_group_operation = client.operation.create_resource.ad_group do |ag|
    ag.name = generate_random_name_field("Earth to Mars Cruise")

    # Set the campaign.
    ag.campaign = campaign_resource

    # Optional: Set the ad group type to HOTEL_ADS.
    # This cannot be set to other types.
    ag.type = :HOTEL_ADS
    ag.cpc_bid_micros = 10_000_000
    ag.status = :ENABLED
  end

  # Issue a mutate request to add the ad group.
  ad_group_service = client.service.ad_group
  response = ad_group_service.mutate_ad_groups(
    customer_id: customer_id,
    operations: [ad_group_operation]
  )

  # Fetch the new ad group's resource name.
  ad_group_resource = response.results.first.resource_name

  puts "Added hotel ad group with resource name '#{ad_group_resource}'."

  ad_group_resource
end
      

Perl

sub add_hotel_ad_group {
  my ($api_client, $customer_id, $campaign_resource_name) = @_;

  # Create an ad group.
  my $ad_group = Google::Ads::GoogleAds::V16::Resources::AdGroup->new({
    name => "Earth to Mars Cruise #" . uniqid(),
    # Set the campaign.
    campaign => $campaign_resource_name,
    # Set the ad group type to HOTEL_ADS.
    # This cannot be set to other types.
    type         => HOTEL_ADS,
    cpcBidMicros => 1000000,
    status => Google::Ads::GoogleAds::V16::Enums::AdGroupStatusEnum::ENABLED
  });

  # Create an ad group operation.
  my $ad_group_operation =
    Google::Ads::GoogleAds::V16::Services::AdGroupService::AdGroupOperation->
    new({create => $ad_group});

  # Add the ad group.
  my $ad_group_resource_name = $api_client->AdGroupService()->mutate({
      customerId => $customer_id,
      operations => [$ad_group_operation]})->{results}[0]{resourceName};

  printf "Added a hotel ad group with resource name: '%s'.\n",
    $ad_group_resource_name;

  return $ad_group_resource_name;
}