إنشاء حملة فنادق

تنظيم صفحاتك في مجموعات يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.

تتمثل الخطوة الأولى من تنفيذ إعلانات الفنادق في إنشاء حملة فنادق. وعند إنشاء حملة فنادق، يمكنك تحديد ميزانيتها واستراتيجية عروض أسعارها ورقم تعريف حساب "مركز إعلانات الفنادق".

في ما يلي خطوات إعداد حملة فندق:

  1. ضبط advertising_channel_type للحملة على HOTEL.
  2. إنشاء HotelSettingInfo وإعداده hotel_center_id، ثم إضافته إلى الحملة.
  3. إنشاء إستراتيجية عروض أسعار PercentCpc للحملة. للاطلاع على تفاصيل حول إستراتيجيات عروض الأسعار وتعيين عروض الأسعار، راجع نظرة عامة على عروض الأسعار.

يتم توضيح هذه الخطوات في الشفرة التالية.

لغة Java

private void runExample(
    GoogleAdsClient googleAdsClient,
    long customerId,
    long hotelCenterAccountId,
    long cpcBidCeilingMicroAmount) {

  // Creates a budget to be used by the campaign that will be created below.
  String budgetResourceName = addCampaignBudget(googleAdsClient, customerId);

  // Creates a hotel campaign.
  String campaignResourceName =
      addHotelCampaign(
          googleAdsClient,
          customerId,
          budgetResourceName,
          hotelCenterAccountId,
          cpcBidCeilingMicroAmount);

  // Creates a hotel ad group.
  String adGroupResourceName = addHotelAdGroup(googleAdsClient, customerId, campaignResourceName);

  // Creates a hotel ad group ad.
  addHotelAdGroupAd(googleAdsClient, customerId, adGroupResourceName);
}
      

#C

public void Run(GoogleAdsClient client, long customerId, long hotelCenterAccountId,
    long cpcBidCeilingMicroAmount)
{
    try
    {
        // Create a budget to be used by the campaign that will be created below.
        string budgetResourceName = AddCampaignBudget(client, customerId);

        // Create a hotel campaign.
        string campaignResourceName = AddHotelCampaign(client, customerId,
            budgetResourceName, hotelCenterAccountId, cpcBidCeilingMicroAmount);

        // Create a hotel ad group.
        string adGroupResourceName = AddHotelAdGroup(client, customerId,
            campaignResourceName);

        // Create a hotel ad group ad.
        AddHotelAdGroupAd(client, customerId, adGroupResourceName);
    }
    catch (GoogleAdsException e)
    {
        Console.WriteLine("Failure:");
        Console.WriteLine($"Message: {e.Message}");
        Console.WriteLine($"Failure: {e.Failure}");
        Console.WriteLine($"Request ID: {e.RequestId}");
        throw;
    }
}
      

لغة PHP

private static function addHotelCampaign(
    GoogleAdsClient $googleAdsClient,
    int $customerId,
    string $budgetResourceName,
    int $hotelCenterAccountId,
    int $cpcBidCeilingMicroAmount
) {
    // Creates a campaign.
    $campaign = new Campaign([
        'name' => 'Interplanetary Cruise Campaign #' . Helper::getPrintableDatetime(),
        // Configures settings related to hotel campaigns including advertising channel type
        // and hotel setting info.
        'advertising_channel_type' => AdvertisingChannelType::HOTEL,
        'hotel_setting' => new HotelSettingInfo(['hotel_center_id' => $hotelCenterAccountId]),
        // Recommendation: Set the campaign to PAUSED when creating it to prevent
        // the ads from immediately serving. Set to ENABLED once you've added
        // targeting and the ads are ready to serve.
        'status' => CampaignStatus::PAUSED,
        // Sets the bidding strategy to PercentCpc. Only Manual CPC and Percent CPC can be used
        // for hotel campaigns.
        'percent_cpc' => new PercentCpc([
            'cpc_bid_ceiling_micros' => $cpcBidCeilingMicroAmount
        ]),
        // Sets the budget.
        'campaign_budget' => $budgetResourceName,
        // Configures the campaign network options. Only Google Search is allowed for
        // hotel campaigns.
        'network_settings' => new NetworkSettings([
            'target_google_search' => true,
        ]),
    ]);

    // Creates a campaign operation.
    $campaignOperation = new CampaignOperation();
    $campaignOperation->setCreate($campaign);

    // Issues a mutate request to add campaigns.
    $campaignServiceClient = $googleAdsClient->getCampaignServiceClient();
    $response = $campaignServiceClient->mutateCampaigns($customerId, [$campaignOperation]);

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

    return $addedCampaign->getResourceName();
}
      

لغة Python

def add_hotel_campaign(
    client,
    customer_id,
    budget_resource_name,
    hotel_center_account_id,
    cpc_bid_ceiling_micro_amount,
):
    campaign_service = client.get_service("CampaignService")

    # Create campaign.
    campaign_operation = client.get_type("CampaignOperation")
    campaign = campaign_operation.create
    campaign.name = f"Interplanetary Cruise Campaign {uuid.uuid4()}"

    # Configures settings related to hotel campaigns including advertising
    # channel type and hotel setting info.
    campaign.advertising_channel_type = (
        client.enums.AdvertisingChannelTypeEnum.HOTEL
    )
    campaign.hotel_setting.hotel_center_id = hotel_center_account_id

    # Recommendation: Set the campaign to PAUSED when creating it to prevent the
    # ads from immediately serving. Set to ENABLED once you've added targeting
    # and the ads are ready to serve.
    campaign.status = client.enums.CampaignStatusEnum.PAUSED

    # Set the bidding strategy to PercentCpc. Only Manual CPC and Percent CPC
    # can be used for hotel campaigns.
    campaign.percent_cpc.cpc_bid_ceiling_micros = cpc_bid_ceiling_micro_amount

    # Sets the budget.
    campaign.campaign_budget = budget_resource_name

    # Set the campaign network options. Only Google Search is allowed for hotel
    # campaigns.
    campaign.network_settings.target_google_search = True

    # Add the campaign.
    campaign_response = campaign_service.mutate_campaigns(
        customer_id=customer_id, operations=[campaign_operation]
    )

    campaign_resource_name = campaign_response.results[0].resource_name

    print(
        "Added a hotel campaign with resource name '{campaign_resource_name}'."
    )

    return campaign_resource_name
      

Ruby

def add_hotel_campaign(client, customer_id, budget_resource,
    hotel_center_account_id, cpc_bid_ceiling_micro_amount)
  # Create a campaign.
  campaign_operation = client.operation.create_resource.campaign do |c|
    c.name = generate_random_name_field("Interplanetary Cruise Campaign")

    # Configure settings related to hotel campaigns.
    c.advertising_channel_type = :HOTEL
    c.hotel_setting = client.resource.hotel_setting_info do |hsi|
      hsi.hotel_center_id = hotel_center_account_id
    end

    # Recommendation: Set the campaign to PAUSED when creating it to prevent the
    # ads from immediately serving. Set to ENABLED once you've added targeting and
    # the ads are ready to serve.
    c.status = :PAUSED

    # Set the bidding strategy to PercentCpc. Only Manual CPC and Percent CPC can
    # be used for hotel campaigns.
    c.percent_cpc = client.resource.percent_cpc do |pcpc|
      pcpc.cpc_bid_ceiling_micros = cpc_bid_ceiling_micro_amount
    end

    # Set the budget.
    c.campaign_budget = budget_resource

    # Configures the campaign network options. Only Google Search is allowed for
    # hotel campaigns.
    c.network_settings = client.resource.network_settings do |ns|
      ns.target_google_search = true
    end
  end

  # Issue a mutate request to add the campaign.
  campaign_service = client.service.campaign
  response = campaign_service.mutate_campaigns(
    customer_id: customer_id,
    operations: [campaign_operation],
  )

  # Fetch the new campaign's resource name.
  campaign_resource = response.results.first.resource_name

  puts "Added hotel campaign with resource name '#{campaign_resource}'."

  campaign_resource
end
      

Perl

sub add_hotel_campaign {
  my ($api_client, $customer_id, $budget_resource_name,
    $hotel_center_account_id, $cpc_bid_ceiling_micro_amount)
    = @_;

  # Create a hotel campaign.
  my $campaign = Google::Ads::GoogleAds::V13::Resources::Campaign->new({
      name => "Interplanetary Cruise Campaign #" . uniqid(),
      # Configure settings related to hotel campaigns including advertising
      # channel type and hotel setting info.
      advertisingChannelType => HOTEL,
      hotelSetting           =>
        Google::Ads::GoogleAds::V13::Resources::HotelSettingInfo->new({
          hotelCenterId => $hotel_center_account_id
        }
        ),
      # Recommendation: Set the campaign to PAUSED when creating it to prevent
      # the ads from immediately serving. Set to ENABLED once you've added
      # targeting and the ads are ready to serve.
      status => Google::Ads::GoogleAds::V13::Enums::CampaignStatusEnum::PAUSED,
      # Set the bidding strategy to PercentCpc. Only Manual CPC and Percent CPC
      # can be used for hotel campaigns.
      percentCpc => Google::Ads::GoogleAds::V13::Common::PercentCpc->new(
        {cpcBidCeilingMicros => $cpc_bid_ceiling_micro_amount}
      ),
      # Set the budget.
      campaignBudget => $budget_resource_name,
      # Configure the campaign network options. Only Google Search is allowed for
      # hotel campaigns.
      networkSettings =>
        Google::Ads::GoogleAds::V13::Resources::NetworkSettings->new({
          targetGoogleSearch => "true"
        })});

  # Create a campaign operation.
  my $campaign_operation =
    Google::Ads::GoogleAds::V13::Services::CampaignService::CampaignOperation->
    new({create => $campaign});

  # Add the campaign.
  my $campaign_resource_name = $api_client->CampaignService()->mutate({
      customerId => $customer_id,
      operations => [$campaign_operation]})->{results}[0]{resourceName};

  printf "Added a hotel campaign with resource name: '%s'.\n",
    $campaign_resource_name;

  return $campaign_resource_name;
}