Smarte Kampagnen und Einstellungen für smarte Kampagnen erstellen

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

Smarte Kampagnen hängen von einer Ressource namens SmartCampaignSetting ab, die zusätzliche Konfigurationsoptionen enthält, die für die Campaign-Hauptressource nicht verfügbar sind.

Eine smarte Kampagneneinstellung kann nur vorhanden sein, wenn sie an eine Kampagne gebunden ist. Dies ist einer der Gründe, warum es sinnvoll ist, die beiden Objekte in derselben Mutationsanfrage zu erstellen.

Kampagne erstellen

Da eine smarte Kampagne hauptsächlich automatisch durch die Werbetechnologie von Google verwaltet wird, müssen Sie dafür nicht viele Felder festlegen.

Wichtige Anforderungen für smarte Kampagnen:

Beachten Sie, dass wir den Wert für den Ressourcennamen dieser Kampagne mithilfe eines temporären Ressourcennamens festlegen. Dadurch kann die Kampagne von anderen Objekten in der Mutationsanfrage referenziert werden, bevor sie im Back-End vorhanden ist.

Java

private MutateOperation createSmartCampaignOperation(long customerId) {
  MutateOperation.Builder builder = MutateOperation.newBuilder();
  builder
      .getCampaignOperationBuilder()
      .getCreateBuilder()
      .setName("Smart campaign " + CodeSampleHelper.getShortPrintableDateTime())
      .setStatus(CampaignStatus.PAUSED)
      .setAdvertisingChannelType(AdvertisingChannelType.SMART)
      .setAdvertisingChannelSubType(AdvertisingChannelSubType.SMART_CAMPAIGN)
      // Assigns the resource name with a temporary ID.
      .setResourceName(ResourceNames.campaign(customerId, SMART_CAMPAIGN_TEMPORARY_ID))
      .setCampaignBudget(ResourceNames.campaignBudget(customerId, BUDGET_TEMPORARY_ID));
  return builder.build();
}
      

C#

/// <summary>
/// Creates a MutateOperation that creates a new Smart campaign.
/// A temporary ID will be assigned to this campaign so that it can be referenced by other
/// objects being created in the same Mutate request.
/// </summary>
/// <param name="customerId">The Google Ads customer ID.</param>
/// <returns>A MutateOperation that creates a campaign.</returns>
private MutateOperation CreateSmartCampaignOperation(long customerId)
{
    return new MutateOperation
    {
        CampaignOperation = new CampaignOperation
        {
            Create = new Campaign
            {
                Name = $"Smart campaign #{ExampleUtilities.GetRandomString()}",
                // Set the campaign status as PAUSED. The campaign is the only entity in
                // the mutate request that should have its status set.
                Status = CampaignStatus.Paused,
                // AdvertisingChannelType must be SMART.
                AdvertisingChannelType = AdvertisingChannelType.Smart,
                // AdvertisingChannelSubType must be SMART_CAMPAIGN.
                AdvertisingChannelSubType = AdvertisingChannelSubType.SmartCampaign,
                // Assign the resource name with a temporary ID.
                ResourceName =
                    ResourceNames.Campaign(customerId, SMART_CAMPAIGN_TEMPORARY_ID),
                // Set the budget using the given budget resource name.
                CampaignBudget =
                    ResourceNames.CampaignBudget(customerId, BUDGET_TEMPORARY_ID)
            }
        }
    };
}
      

PHP

private static function createSmartCampaignOperation(int $customerId): MutateOperation
{
    // Creates the campaign object.
    $campaign = new Campaign([
        'name' => "Smart campaign #" . Helper::getPrintableDatetime(),
        // Sets the campaign status as PAUSED. The campaign is the only entity in the mutate
        // request that should have its' status set.
        'status' => CampaignStatus::PAUSED,
        // The advertising channel type is required to be SMART.
        'advertising_channel_type' => AdvertisingChannelType::SMART,
        // The advertising channel sub type is required to be SMART_CAMPAIGN.
        'advertising_channel_sub_type' => AdvertisingChannelSubType::SMART_CAMPAIGN,
        // Assigns the resource name with a temporary ID.
        'resource_name' =>
            ResourceNames::forCampaign($customerId, self::SMART_CAMPAIGN_TEMPORARY_ID),
        // Sets the budget using the given budget resource name.
        'campaign_budget' =>
            ResourceNames::forCampaignBudget($customerId, self::BUDGET_TEMPORARY_ID)
    ]);

    // Creates the MutateOperation that creates the campaign.
    return new MutateOperation([
        'campaign_operation' => new CampaignOperation(['create' => $campaign])
    ]);
}
      

Python

def create_smart_campaign_operation(client, customer_id):
    """Creates a MutateOperation that creates a new Smart campaign.

    A temporary ID will be assigned to this campaign so that it can
    be referenced by other objects being created in the same Mutate request.

    Args:
        client: an initialized GoogleAdsClient instance.
        customer_id: a client customer ID.

    Returns:
        a MutateOperation that creates a campaign.
    """
    mutate_operation = client.get_type("MutateOperation")
    campaign = mutate_operation.campaign_operation.create
    campaign.name = f"Smart campaign #{uuid4()}"
    # Set the campaign status as PAUSED. The campaign is the only entity in
    # the mutate request that should have its' status set.
    campaign.status = client.enums.CampaignStatusEnum.PAUSED
    # Campaign.AdvertisingChannelType is required to be SMART.
    campaign.advertising_channel_type = (
        client.enums.AdvertisingChannelTypeEnum.SMART
    )
    # Campaign.AdvertisingChannelSubType is required to be SMART_CAMPAIGN.
    campaign.advertising_channel_sub_type = (
        client.enums.AdvertisingChannelSubTypeEnum.SMART_CAMPAIGN
    )
    # Assign the resource name with a temporary ID.
    campaign_service = client.get_service("CampaignService")
    campaign.resource_name = campaign_service.campaign_path(
        customer_id, _SMART_CAMPAIGN_TEMPORARY_ID
    )
    # Set the budget using the given budget resource name.
    campaign.campaign_budget = campaign_service.campaign_budget_path(
        customer_id, _BUDGET_TEMPORARY_ID
    )

    return mutate_operation
      

Ruby

# Creates a mutate_operation that creates a new Smart campaign.
# A temporary ID will be assigned to this campaign so that it can
# be referenced by other objects being created in the same mutate request.
def create_smart_campaign_operation(
    client,
    customer_id)
  mutate_operation = client.operation.mutate do |m|
    m.campaign_operation = client.operation.create_resource.campaign do |c|
      c.name = "Smart campaign ##{(Time.new.to_f * 1000).to_i}"
      # Sets the campaign status as PAUSED. The campaign is the only entity in
      # the mutate request that should have its' status set.
      c.status = :PAUSED
      # campaign.advertising_channel_type is required to be SMART.
      c.advertising_channel_type = :SMART
      # campaign.advertising_channel_sub_type is required to be SMART_CAMPAIGN.
      c.advertising_channel_sub_type = :SMART_CAMPAIGN
      # Assigns the resource name with a temporary ID.
      c.resource_name = client.path.campaign(customer_id, SMART_CAMPAIGN_TEMPORARY_ID)
      c.campaign_budget = client.path.campaign_budget(customer_id, BUDGET_TEMPORARY_ID)
    end
  end

  mutate_operation
end
      

Perl

# Creates a MutateOperation that creates a new Smart campaign.
# A temporary ID will be assigned to this campaign so that it can be referenced
# by other objects being created in the same Mutate request.
sub _create_smart_campaign_operation {
  my ($customer_id) = @_;

  return
    Google::Ads::GoogleAds::V12::Services::GoogleAdsService::MutateOperation->
    new({
      campaignOperation =>
        Google::Ads::GoogleAds::V12::Services::CampaignService::CampaignOperation
        ->new({
          create => Google::Ads::GoogleAds::V12::Resources::Campaign->new({
              name => "Smart campaign #" . uniqid(),
              # Set the campaign status as PAUSED. The campaign is the only
              # entity in the mutate request that should have its status set.
              status => PAUSED,
              # AdvertisingChannelType must be SMART.
              advertisingChannelType => SMART,
              # AdvertisingChannelSubType must be SMART_CAMPAIGN.
              advertisingChannelSubType =>
                Google::Ads::GoogleAds::V12::Enums::AdvertisingChannelSubTypeEnum::SMART_CAMPAIGN,
              # Assign the resource name with a temporary ID.
              resourceName =>
                Google::Ads::GoogleAds::V12::Utils::ResourceNames::campaign(
                $customer_id, SMART_CAMPAIGN_TEMPORARY_ID
                ),
              # Set the budget using the given budget resource name.
              campaignBudget =>
                Google::Ads::GoogleAds::V12::Utils::ResourceNames::campaign_budget(
                $customer_id, BUDGET_TEMPORARY_ID
                )})})});
}
      

Einstellungen für smarte Kampagnen erstellen

Die Ressource SmartCampaignSetting wird nur zum Konfigurieren smarter Kampagnen verwendet. Sie kann nur erstellt werden, wenn bereits eine smarte Kampagne vorhanden ist, auf die sie verweisen kann. Aus diesem Grund sind smarte Kampagneneinstellungen besonders einzigartig. Sie können sie sich als eine Erweiterung der Campaign-Hauptressource vorstellen.

Da eine smarte Kampagneneinstellung so eng mit einer Kampagne verknüpft ist, kann sie nicht mit einem create-Vorgang erstellt werden. Sie muss stattdessen in einem update-Vorgang erstellt werden.

Im Gegensatz zu Ressourcen wie AdGroup-Objekten, die ein campaign-Feld haben, das angibt, zu welcher Kampagne sie gehören, müssen die Ressourcennamen von smarten Kampagneneinstellungen direkt mit derselben ID aktualisiert werden wie ihre Kampagne. Stellen Sie sich eine neue Einstellung für smarte Kampagnen als eine separate Ressource zum Aktualisieren einer vorhandenen Kampagne vor.

Wichtige Anforderungen für smarte Kampagneneinstellungen:

  • Es muss ein Campaign vorhanden sein, auf das es verweisen kann.
  • Die Beziehung zu Campaign wird im Feld resource_name und nicht im Feld campaign definiert.
  • Sie müssen entweder business_profile_location oder final_url und business_name festlegen.
  • Dem Vorgang update muss ein update_mask hinzugefügt werden, auch wenn Sie damit eine neue Einstellung für smarte Kampagnen erstellen.
  • Alle smarten Kampagnen müssen eine Landingpage haben. Sie kann über eine final_url festgelegt werden oder indem Sie eine automatische Landingpage aktivieren, auf der die Landingpage für Ihre Kampagne anhand der Informationen der jeweiligen business_profile_location erstellt wird.

Java

private MutateOperation createSmartCampaignSettingOperation(
    long customerId, String businessProfileLocation, String businessName) {
  MutateOperation.Builder builder = MutateOperation.newBuilder();
  SmartCampaignSetting.Builder settingBuilder =
      builder
          .getSmartCampaignSettingOperationBuilder()
          .getUpdateBuilder()
          // Sets a temporary ID in the campaign setting's resource name to associate it with
          // the campaign created in the previous step.
          .setResourceName(
              ResourceNames.smartCampaignSetting(customerId, SMART_CAMPAIGN_TEMPORARY_ID));
  // Configures the SmartCampaignSetting using many of the same details used to
  // generate a budget suggestion.
  settingBuilder
      .setFinalUrl(LANDING_PAGE_URL)
      .setAdvertisingLanguageCode(LANGUAGE_CODE)
      .getPhoneNumberBuilder()
      .setCountryCode(COUNTRY_CODE)
      .setPhoneNumber(PHONE_NUMBER);

  // It's required that either a business profile location resource name or a business name is
  // added to the SmartCampaignSetting.
  if (businessProfileLocation != null) {
    settingBuilder.setBusinessProfileLocation(businessProfileLocation);
  } else {
    settingBuilder.setBusinessName(businessName);
  }
  builder
      .getSmartCampaignSettingOperationBuilder()
      .setUpdateMask(FieldMasks.allSetFieldsOf(settingBuilder.build()));
  return builder.build();
}
      

C#

/// <summary>
/// Creates a MutateOperation to create a new SmartCampaignSetting. SmartCampaignSettings
/// are unique in that they only support UPDATE operations, which are used to update and
/// create them. Below we will use a temporary ID in the resource name to associate it with
/// the campaign created in the previous step.
/// </summary>
/// <param name="customerId">The Google Ads customer ID.</param>
/// <param name="businessProfileLocation">The identifier of a Business Profile location.</param>
/// <param name="businessName">The name of a Business Profile business.</param>
/// <returns>A MutateOperation that creates a SmartCampaignSetting.</returns>
private MutateOperation CreateSmartCampaignSettingOperation(long customerId,
    string businessProfileLocation, string businessName)
{
    SmartCampaignSetting smartCampaignSetting = new SmartCampaignSetting
    {
        // Set a temporary ID in the campaign setting's resource name to associate it with
        // the campaign created in the previous step.
        ResourceName =
            ResourceNames.SmartCampaignSetting(customerId, SMART_CAMPAIGN_TEMPORARY_ID),
        // Below we configure the SmartCampaignSetting using many of the same details used
        // to generate a budget suggestion.
        PhoneNumber = new SmartCampaignSetting.Types.PhoneNumber
        {
            CountryCode = COUNTRY_CODE,
            PhoneNumber_ = PHONE_NUMBER
        },
        FinalUrl = LANDING_PAGE_URL,
        AdvertisingLanguageCode = LANGUAGE_CODE
    };

    // Either a business profile location or a business name must be added to the
    // SmartCampaignSetting.
    if (!string.IsNullOrEmpty(businessProfileLocation))
    {
        // Transform Google Business Location ID to a compatible format before
        // passing it onto the API.
        smartCampaignSetting.BusinessProfileLocation = businessProfileLocation;
    }
    else
    {
        smartCampaignSetting.BusinessName = businessName;
    }

    return new MutateOperation
    {
        SmartCampaignSettingOperation = new SmartCampaignSettingOperation
        {
            Update = smartCampaignSetting,
            // Set the update mask on the operation. This is required since the smart
            // campaign setting is created in an UPDATE operation. Here the update mask
            // will be a list of all the fields that were set on the SmartCampaignSetting.
            UpdateMask = FieldMasks.AllSetFieldsOf(smartCampaignSetting)
        }
    };
}
      

PHP

private static function createSmartCampaignSettingOperation(
    int $customerId,
    ?string $businessProfileLocationResourceName,
    ?string $businessName
): MutateOperation {
    // Creates the smart campaign setting object.
    $smartCampaignSetting = new SmartCampaignSetting([
        // Sets a temporary ID in the campaign setting's resource name to associate it with
        // the campaign created in the previous step.
        'resource_name' => ResourceNames::forSmartCampaignSetting(
            $customerId,
            self::SMART_CAMPAIGN_TEMPORARY_ID
        ),
        // Below we configure the SmartCampaignSetting using many of the same details used to
        // generate a budget suggestion.
        'phone_number' => new PhoneNumber([
            'country_code' => self::COUNTRY_CODE,
            'phone_number' => self::PHONE_NUMBER
        ]),
        'final_url' => self::LANDING_PAGE_URL,
        'advertising_language_code' => self::LANGUAGE_CODE,
    ]);

    // It's required that either a business profile location resource name or a business name is
    // added to the SmartCampaignSetting.
    if ($businessProfileLocationResourceName) {
        $smartCampaignSetting->setBusinessProfileLocation($businessProfileLocationResourceName);
    } else {
        $smartCampaignSetting->setBusinessName($businessName);
    }

    // Creates the MutateOperation that creates the smart campaign setting with an update.
    return new MutateOperation([
        'smart_campaign_setting_operation' => new SmartCampaignSettingOperation([
            'update' => $smartCampaignSetting,
            // Sets the update mask on the operation. This is required since the smart campaign
            // setting is created in an UPDATE operation. Here the update mask will be a list
            // of all the fields that were set on the SmartCampaignSetting.
            'update_mask' => FieldMasks::allSetFieldsOf($smartCampaignSetting)
        ])
    ]);
}
      

Python

def create_smart_campaign_setting_operation(
    client, customer_id, business_profile_location, business_name
):
    """Creates a MutateOperation to create a new SmartCampaignSetting.

    SmartCampaignSettings are unique in that they only support UPDATE
    operations, which are used to update and create them. Below we will
    use a temporary ID in the resource name to associate it with the
    campaign created in the previous step.

    Args:
        client: an initialized GoogleAdsClient instance.
        customer_id: a client customer ID.
        business_profile_location: the resource name of a Business Profile
          location.
        business_name: the name of a Business Profile.

    Returns:
        a MutateOperation that creates a SmartCampaignSetting.
    """
    mutate_operation = client.get_type("MutateOperation")
    smart_campaign_setting = (
        mutate_operation.smart_campaign_setting_operation.update
    )
    # Set a temporary ID in the campaign setting's resource name to associate it
    # with the campaign created in the previous step.
    smart_campaign_setting.resource_name = client.get_service(
        "SmartCampaignSettingService"
    ).smart_campaign_setting_path(customer_id, _SMART_CAMPAIGN_TEMPORARY_ID)

    # Below we configure the SmartCampaignSetting using many of the same
    # details used to generate a budget suggestion.
    smart_campaign_setting.phone_number.country_code = _COUNTRY_CODE
    smart_campaign_setting.phone_number.phone_number = _PHONE_NUMBER
    smart_campaign_setting.final_url = _LANDING_PAGE_URL
    smart_campaign_setting.advertising_language_code = _LANGUAGE_CODE

    # Set either of the business_profile_location or business_name, depending on
    # whichever is provided.
    if business_profile_location:
        smart_campaign_setting.business_profile_location = (
            business_profile_location
        )
    else:
        smart_campaign_setting.business_name = business_name

    # Set the update mask on the operation. This is required since the smart
    # campaign setting is created in an UPDATE operation. Here the update
    # mask will be a list of all the fields that were set on the
    # SmartCampaignSetting.
    client.copy_from(
        mutate_operation.smart_campaign_setting_operation.update_mask,
        protobuf_helpers.field_mask(None, smart_campaign_setting._pb),
    )

    return mutate_operation
      

Ruby

# Creates a mutate_operation to create a new smart_campaign_setting.
# smart_campaign_settings are unique in that they only support UPDATE
# operations, which are used to update and create them. Below we will
# use a temporary ID in the resource name to associate it with the
# campaign created in the previous step.
def create_smart_campaign_setting_operation(
  client,
  customer_id,
  business_profile_location,
  business_name)
  mutate_operation = client.operation.mutate do |m|
    m.smart_campaign_setting_operation =
      client.operation.update_resource.smart_campaign_setting(
        # Sets a temporary ID in the campaign setting's resource name to
        # associate it with the campaign created in the previous step.
        client.path.smart_campaign_setting(
          customer_id, SMART_CAMPAIGN_TEMPORARY_ID)
      ) do |scs|
      # Below we configure the smart_campaign_setting using many of the same
      # details used to generate a budget suggestion.
      scs.phone_number = client.resource.phone_number do |p|
        p.country_code = COUNTRY_CODE
        p.phone_number = PHONE_NUMBER
      end
      scs.final_url = LANDING_PAGE_URL
      scs.advertising_language_code = LANGUAGE_CODE
      # It's required that either a business location ID or a business name is
      # added to the smart_campaign_setting.
      if business_profile_location
        scs.business_profile_location = business_profile_location
      else
        scs.business_name = business_name
      end
    end
  end

  mutate_operation
end
      

Perl

# Creates a MutateOperation to create a new SmartCampaignSetting.
# SmartCampaignSettings are unique in that they only support UPDATE operations,
# which are used to update and create them. Below we will use a temporary ID in
# the resource name to associate it with the campaign created in the previous step.
sub _create_smart_campaign_setting_operation {
  my ($customer_id, $business_profile_location, $business_name) = @_;

  my $smart_campaign_setting =
    Google::Ads::GoogleAds::V12::Resources::SmartCampaignSetting->new({
      # Set a temporary ID in the campaign setting's resource name to associate it
      # with the campaign created in the previous step.
      resourceName =>
        Google::Ads::GoogleAds::V12::Utils::ResourceNames::smart_campaign_setting(
        $customer_id, SMART_CAMPAIGN_TEMPORARY_ID
        ),
      # Below we configure the SmartCampaignSetting using many of the same
      # details used to generate a budget suggestion.
      phoneNumber => Google::Ads::GoogleAds::V12::Resources::PhoneNumber->new({
          countryCode => COUNTRY_CODE,
          phoneNumber => PHONE_NUMBER
        }
      ),
      finalUrl                => LANDING_PAGE_URL,
      advertisingLanguageCode => LANGUAGE_CODE
    });

  # It's required that either a business profile location or a business name is
  # added to the SmartCampaignSetting.
  if (defined $business_profile_location) {
    $smart_campaign_setting->{businessProfileLocation} =
      $business_profile_location;
  } else {
    $smart_campaign_setting->{businessName} = $business_name;
  }

  return
    Google::Ads::GoogleAds::V12::Services::GoogleAdsService::MutateOperation->
    new({
      smartCampaignSettingOperation =>
        Google::Ads::GoogleAds::V12::Services::SmartCampaignSettingService::SmartCampaignSettingOperation
        ->new({
          update => $smart_campaign_setting,
          # Set the update mask on the operation. This is required since the
          # smart campaign setting is created in an UPDATE operation. Here the
          # update mask will be a list of all the fields that were set on the
          # SmartCampaignSetting.
          updateMask => all_set_fields_of($smart_campaign_setting)})});
}
      

Landingpages

Die smarte Kampagne muss eine Landingpage haben, auf die Nutzer weitergeleitet werden. Sie können entweder final_url angeben, um eine vorhandene Website zu verwenden, oder eine Landingpage erstellen lassen, indem Sie automatische Landingpages aktivieren. Für die neue Landingpage werden Informationen aus Ihrem Unternehmensprofil verwendet.

Wenn Sie eine Landingpage für Ihre Kampagne generieren möchten, müssen Sie eine business_profile_location-ID angeben und das Feld ad_optimized_business_profile_setting auf eine leere AdOptimizedBusinessProfileSetting-Instanz setzen. Hier ein Beispiel:

Java

SmartCampaignSetting smartCampaignSetting =
    SmartCampaignSetting.newBuilder()
        .setBusinessProfileLocation(businessProfileLocation)
        // Sets the ad optimized business profile setting to an empty
        // instance of AdOptimizedBusinessProfileSetting.
        .setAdOptimizedBusinessProfileSetting(
            AdOptimizedBusinessProfileSetting.newBuilder().build())
        .build();

C#

SmartCampaignSetting smartCampaignSetting = new SmartCampaignSetting()
{
    BusinessProfileLocation = businessProfileLocation,
    /// Sets the ad optimized business profile setting to an empty
    /// instance of AdOptimizedBusinessProfileSetting.
    AdOptimizedBusinessProfileSetting =
        new SmartCampaignSetting.Types.AdOptimizedBusinessProfileSetting()
};

PHP

$smartCampaignSetting = new SmartCampaignSetting([
    'business_profile_location' => business_profile_location,
    // Sets the ad optimized business profile setting to an empty instance
    // of AdOptimizedBusinessProfileSetting.
    'ad_optimized_business_profile_setting' => new AdOptimizedBusinessProfileSetting(),
]);

Python

smart_campaign_setting = client.get_type("SmartCampaignSetting")
smart_campaign_setting.business_profile_location = business_profile_location
# Sets the ad optimized business profile setting to an empty instance of
# AdOptimizedBusinessProfileSetting.
client.copy_from(
    smart_campaign_setting.ad_optimized_business_profile_setting,
    client.get_type("AdOptimizedBusinessProfileSetting")
)

Ruby

smart_campaign_setting = client.resource.smart_campaign_setting do |s|
  s.business_profile_location = business_profile_location
  # Sets the ad optimized business profile setting to an empty instance of
  # AdOptimizedBusinessProfileSetting.
  s.ad_optimized_business_profile_setting = client.resource.ad_optimized_business_profile_setting
end

Perl

my $campaign = Google::Ads::GoogleAds::V12::Resources::Campaign->new({
    businessProfileLocation => $business_profile_location,
    # Sets the ad optimized business profile setting to an empty instance of
    # AdOptimizedBusinessProfileSetting.
    adOptimizedBusinessProfileSetting =>
      Google::Ads::GoogleAds::V12::Common::AdOptimizedBusinessProfileSetting->new()
});

Außerdem können Sie im Feld include_lead_form angeben, ob die generierte Landingpage ein Lead-Formular enthalten soll. Potenzielle Kunden können dann direkt ein Formular ausfüllen. Hier ein Beispiel für die Aktivierung:

Java

SmartCampaignSetting smartCampaignSetting =
    SmartCampaignSetting.newBuilder()
        .setBusinessProfileLocation(businessProfileLocation)
        // Sets the AdOptimizedBusinessProfileSetting.include_lead_form field to true.
        .setAdOptimizedBusinessProfileSetting(
            AdOptimizedBusinessProfileSetting.newBuilder().setIncludeLeadForm(true).build())
        .build();

C#

SmartCampaignSetting smartCampaignSetting = new SmartCampaignSetting()
{
    BusinessProfileLocation = businessProfileLocation,
    /// Sets the AdOptimizedBusinessProfileSetting.include_lead_form
    /// field to true.
    AdOptimizedBusinessProfileSetting =
        new SmartCampaignSetting.Types.AdOptimizedBusinessProfileSetting
            {
                IncludeLeadForm = true
            }
};

PHP

$smartCampaignSetting = new SmartCampaignSetting([
    'business_profile_location' => business_profile_location,
    // Sets the AdOptimizedBusinessProfileSetting.include_lead_form field
    // to true.
    'ad_optimized_business_profile_setting' => new AdOptimizedBusinessProfileSetting([
        'include_lead_form' => true
    ]),
]);

Python

smart_campaign_setting = client.get_type("SmartCampaignSetting")
smart_campaign_setting.business_profile_location = business_profile_location
# Sets the AdOptimizedBusinessProfileSetting.include_lead_form field to
# true.
smart_campaign_setting.ad_optimized_business_profile_setting.include_lead_form = True

Ruby

smart_campaign_setting = client.resource.smart_campaign_setting do |s|
  s.business_profile_location = business_profile_location
  # Sets the AdOptimizedBusinessProfileSetting.include_lead_form field to
  # true.
  s.ad_optimized_business_profile_setting = client.resource.ad_optimized_business_profile_setting do |a|
    a.include_lead_form = true
  end
end

Perl

my $campaign = Google::Ads::GoogleAds::V12::Resources::Campaign->new({
    businessProfileLocation => $business_profile_location,
    # Sets the AdOptimizedBusinessProfileSetting.include_lead_form field to
    # true.
    adOptimizedBusinessProfileSetting =>
      Google::Ads::GoogleAds::V12::Common::AdOptimizedBusinessProfileSetting->new({
        includeLeadForm => "true"
      })
});