Геотаргетинг

Из этого руководства вы узнаете, что такое геотаргетинг, а также как добавлять, получать и изменять его настройки с помощью Google Реклама API.

О лимитах на таргетинг рассказывается в разделе "Лимиты на таргетинг" статьи О лимитах в аккаунтах Google Рекламы.

Почему важен геотаргетинг?

Геотаргетинг позволяет показывать объявления пользователям из определенного региона. Предположим, вы рекламируете сеть супермаркетов. Если не настроить таргетинг на местоположение, объявления будут показываться во всех регионах мира и могут получать клики от пользователей из регионов, где нет ваших магазинов. Иначе говоря, вы будете нести расходы, которые не окупятся. Благодаря геотаргетингу объявления из ваших кампаний будут показываться только в регионах, где есть ваши магазины. Кроме того, этот подход позволяет напрямую обращаться к клиентам, которые ищут супермаркеты в своем регионе.

Google Ads API позволяет настраивать таргетинг на страны, регионы или области в радиусе вокруг определенной географической точки.

Как настроить таргетинг кампании на регион

Вы можете настроить таргетинг кампаний на любой географический регион, который поддерживается в Google Рекламе, например на страну, область, город или почтовый индекс. Каждому местоположению, на которое можно настроить таргетинг, присваивается уникальный идентификатор критерия. Идентификатор критерия можно найти с помощью GeoTargetConstantService.SuggestGeoTargetConstants. Каждое значение resource_name из GeoTargetConstant имеет формат geoTargetConstants/{Criterion ID}. Например, значение resource_name для штата Нью-Йорк – geoTargetConstants/21167.

Вы можете добавить в кампании области геотаргетинга с помощью CampaignCriterionService (или на уровне группы объявлений с помощью AdGroupCriterion для поддерживаемых типов кампаний, например кампаний для создания спроса с включенным upgraded_targeting). В приведенном ниже фрагменте кода показано, как настроить таргетинг кампании с помощью идентификатора критерия.

Java

private static CampaignCriterion buildLocationIdCriterion(
    long locationId, String campaignResourceName) {
  Builder criterionBuilder = CampaignCriterion.newBuilder().setCampaign(campaignResourceName);

  criterionBuilder
      .getLocationBuilder()
      .setGeoTargetConstant(ResourceNames.geoTargetConstant(locationId));

  return criterionBuilder.build();
}
      

C#

private CampaignCriterion buildLocationCriterion(long locationId,
    string campaignResourceName)
{
    GeoTargetConstantName location = new GeoTargetConstantName(locationId.ToString());
    return new CampaignCriterion()
    {
        Campaign = campaignResourceName,
        Location = new LocationInfo()
        {
            GeoTargetConstant = location.ToString()
        }
    };
}
      

PHP

private static function createLocationCampaignCriterionOperation(
    int $locationId,
    string $campaignResourceName
) {
    // Constructs a campaign criterion for the specified campaign ID using the specified
    // location ID.
    $campaignCriterion = new CampaignCriterion([
        // Creates a location using the specified location ID.
        'location' => new LocationInfo([
            // Besides using location ID, you can also search by location names using
            // GeoTargetConstantServiceClient::suggestGeoTargetConstants() and directly
            // apply GeoTargetConstant::$resourceName here. An example can be found
            // in GetGeoTargetConstantByNames.php.
            'geo_target_constant' => ResourceNames::forGeoTargetConstant($locationId)
        ]),
        'campaign' => $campaignResourceName
    ]);

    return new CampaignCriterionOperation(['create' => $campaignCriterion]);
}
      

Python

def create_location_op(
    client: GoogleAdsClient,
    customer_id: str,
    campaign_id: str,
    location_id: str,
) -> CampaignCriterionOperation:
    campaign_service: CampaignServiceClient = client.get_service(
        "CampaignService"
    )
    geo_target_constant_service: GeoTargetConstantServiceClient = (
        client.get_service("GeoTargetConstantService")
    )

    # Create the campaign criterion.
    campaign_criterion_operation: CampaignCriterionOperation = client.get_type(
        "CampaignCriterionOperation"
    )
    campaign_criterion: CampaignCriterion = campaign_criterion_operation.create
    campaign_criterion.campaign = campaign_service.campaign_path(
        customer_id, campaign_id
    )

    # Besides using location_id, you can also search by location names from
    # GeoTargetConstantService.suggest_geo_target_constants() and directly
    # apply GeoTargetConstant.resource_name here. An example can be found
    # in get_geo_target_constant_by_names.py.
    campaign_criterion.location.geo_target_constant = (
        geo_target_constant_service.geo_target_constant_path(location_id)
    )

    return campaign_criterion_operation
      

Ruby

def create_location(client, customer_id, campaign_id, location_id)
  client.operation.create_resource.campaign_criterion do |criterion|
    criterion.campaign = client.path.campaign(customer_id, campaign_id)

    criterion.location = client.resource.location_info do  |li|
      # Besides using location_id, you can also search by location names from
      # GeoTargetConstantService.suggest_geo_target_constants() and directly
      # apply GeoTargetConstant.resource_name here. An example can be found
      # in get_geo_target_constant_by_names.rb.
      li.geo_target_constant = client.path.geo_target_constant(location_id)
    end
  end
end
      

Perl

sub create_location_campaign_criterion_operation {
  my ($location_id, $campaign_resource_name) = @_;

  # Construct a campaign criterion for the specified campaign using the
  # specified location ID.
  my $campaign_criterion =
    Google::Ads::GoogleAds::V25::Resources::CampaignCriterion->new({
      # Create a location using the specified location ID.
      location => Google::Ads::GoogleAds::V25::Common::LocationInfo->new({
          # Besides using location ID, you can also search by location names
          # using GeoTargetConstantService::suggest() and directly apply
          # GeoTargetConstant->{resourceName} here. An example can be found
          # in get_geo_target_constants_by_names.pl.
          geoTargetConstant =>
            Google::Ads::GoogleAds::V25::Utils::ResourceNames::geo_target_constant(
            $location_id)}
      ),
      campaign => $campaign_resource_name
    });

  return
    Google::Ads::GoogleAds::V25::Services::CampaignCriterionService::CampaignCriterionOperation
    ->new({
      create => $campaign_criterion
    });
}
      

curl

Google может время от времени прекращать поддержку некоторых критериев местоположения по разным причинам, например из-за изменения границ или геополитических изменений. Чтобы узнать, подтвержден ли адрес, проверьте поле status объекта GeoTargetConstant. Оно может иметь значение ENABLED или REMOVAL_PLANNED.

Поиск по названию местоположения

Вы также можете найти идентификатор критерия по названию местоположения с помощью GeoTargetConstantService.SuggestGeoTargetConstants. В примере кода ниже показано, как найти идентификатор критерия местоположения по названию местоположения.

Java

private void runExample(GoogleAdsClient googleAdsClient) {
  try (GeoTargetConstantServiceClient geoTargetClient =
      googleAdsClient.getLatestVersion().createGeoTargetConstantServiceClient()) {

    SuggestGeoTargetConstantsRequest.Builder requestBuilder =
        SuggestGeoTargetConstantsRequest.newBuilder();

    // Locale is using ISO 639-1 format. If an invalid locale is given, 'en' is used by default.
    requestBuilder.setLocale("en");

    // A list of country codes can be referenced here:
    // https://developers.google.com/google-ads/api/reference/data/geotargets
    requestBuilder.setCountryCode("FR");

    requestBuilder
        .getLocationNamesBuilder()
        .addAllNames(ImmutableList.of("Paris", "Quebec", "Spain", "Deutschland"));

    SuggestGeoTargetConstantsResponse response =
        geoTargetClient.suggestGeoTargetConstants(requestBuilder.build());

    for (GeoTargetConstantSuggestion suggestion :
        response.getGeoTargetConstantSuggestionsList()) {
      System.out.printf(
          "%s (%s,%s,%s,%s) is found in locale (%s) with reach (%d) for search term (%s).%n",
          suggestion.getGeoTargetConstant().getResourceName(),
          suggestion.getGeoTargetConstant().getName(),
          suggestion.getGeoTargetConstant().getCountryCode(),
          suggestion.getGeoTargetConstant().getTargetType(),
          suggestion.getGeoTargetConstant().getStatus().name(),
          suggestion.getLocale(),
          suggestion.getReach(),
          suggestion.getSearchTerm());
    }
  }
}
      

C#

public void Run(GoogleAdsClient client)
{
    // Get the GeoTargetConstantServiceClient.
    GeoTargetConstantServiceClient geoService =
        client.GetService(Services.V25.GeoTargetConstantService);

    // Locale is using ISO 639-1 format. If an invalid locale is given,
    // 'en' is used by default.
    string locale = "en";

    // A list of country codes can be referenced here:
    // https://developers.google.com/google-ads/api/reference/data/geotargets
    string countryCode = "FR";

    string[] locations = { "Paris", "Quebec", "Spain", "Deutschland" };

    SuggestGeoTargetConstantsRequest request = new SuggestGeoTargetConstantsRequest()
    {
        Locale = locale,
        CountryCode = countryCode,
        LocationNames = new SuggestGeoTargetConstantsRequest.Types.LocationNames()
    };

    request.LocationNames.Names.AddRange(locations);

    try
    {
        SuggestGeoTargetConstantsResponse response =
            geoService.SuggestGeoTargetConstants(request);

        foreach (GeoTargetConstantSuggestion suggestion
            in response.GeoTargetConstantSuggestions)
        {
            Console.WriteLine(
                $"{suggestion.GeoTargetConstant.ResourceName} " +
                $"({suggestion.GeoTargetConstant.Name}, " +
                $"{suggestion.GeoTargetConstant.CountryCode}, " +
                $"{suggestion.GeoTargetConstant.TargetType}, " +
                $"{suggestion.GeoTargetConstant.Status}) is found in locale " +
                $"({suggestion.Locale}) with reach ({suggestion.Reach}) " +
                $"for search term ({suggestion.SearchTerm}).");
        }
    }
    catch (GoogleAdsException e)
    {
        Console.WriteLine("Failure:");
        Console.WriteLine($"Message: {e.Message}");
        Console.WriteLine($"Failure: {e.Failure}");
        Console.WriteLine($"Request ID: {e.RequestId}");
        throw;
    }
}
      

PHP

public static function runExample(
    GoogleAdsClient $googleAdsClient,
    array $locationNames,
    string $locale,
    string $countryCode
) {
    $geoTargetConstantServiceClient = $googleAdsClient->getGeoTargetConstantServiceClient();

    $response = $geoTargetConstantServiceClient->suggestGeoTargetConstants(
        new SuggestGeoTargetConstantsRequest([
            'locale' => $locale,
            'country_code' => $countryCode,
            'location_names' => new LocationNames(['names' => $locationNames])
        ])
    );

    // Iterates over all geo target constant suggestion objects and prints the requested field
    // values for each one.
    foreach ($response->getGeoTargetConstantSuggestions() as $geoTargetConstantSuggestion) {
        /** @var GeoTargetConstantSuggestion $geoTargetConstantSuggestion */
        printf(
            "Found '%s' ('%s','%s','%s',%s) in locale '%s' with reach %d"
            . " for the search term '%s'.%s",
            $geoTargetConstantSuggestion->getGeoTargetConstant()->getResourceName(),
            $geoTargetConstantSuggestion->getGeoTargetConstant()->getName(),
            $geoTargetConstantSuggestion->getGeoTargetConstant()->getCountryCode(),
            $geoTargetConstantSuggestion->getGeoTargetConstant()->getTargetType(),
            GeoTargetConstantStatus::name(
                $geoTargetConstantSuggestion->getGeoTargetConstant()->getStatus()
            ),
            $geoTargetConstantSuggestion->getLocale(),
            $geoTargetConstantSuggestion->getReach(),
            $geoTargetConstantSuggestion->getSearchTerm(),
            PHP_EOL
        );
    }
}
      

Python

def main(client: GoogleAdsClient) -> None:
    gtc_service: GeoTargetConstantServiceClient = client.get_service(
        "GeoTargetConstantService"
    )

    gtc_request: SuggestGeoTargetConstantsRequest = client.get_type(
        "SuggestGeoTargetConstantsRequest"
    )
    gtc_request.locale = LOCALE
    gtc_request.country_code = COUNTRY_CODE

    # The location names to get suggested geo target constants.
    # Type hint for gtc_request.location_names.names is not straightforward
    # as it's part of a complex protobuf object.
    gtc_request.location_names.names.extend(
        ["Paris", "Quebec", "Spain", "Deutschland"]
    )

    results: SuggestGeoTargetConstantsResponse = (
        gtc_service.suggest_geo_target_constants(gtc_request)
    )

    suggestion: GeoTargetConstantSuggestion
    for suggestion in results.geo_target_constant_suggestions:
        geo_target_constant: GeoTargetConstant = suggestion.geo_target_constant
        print(
            f"{geo_target_constant.resource_name} "
            f"({geo_target_constant.name}, "
            f"{geo_target_constant.country_code}, "
            f"{geo_target_constant.target_type}, "
            f"{geo_target_constant.status.name}) "
            f"is found in locale ({suggestion.locale}) "
            f"with reach ({suggestion.reach}) "
            f"from search term ({suggestion.search_term})."
        )
      

Ruby

def get_geo_target_constants_by_names
  # GoogleAdsClient will read a config file from
  # ENV['HOME']/google_ads_config.rb when called without parameters
  client = Google::Ads::GoogleAds::GoogleAdsClient.new

  gtc_service = client.service.geo_target_constant

  location_names = client.resource.location_names do |ln|
    ['Paris', 'Quebec', 'Spain', 'Deutschland'].each do |name|
      ln.names << name
    end
  end

  # Locale is using ISO 639-1 format. If an invalid locale is given,
  # 'en' is used by default.
  locale = 'en'

  # A list of country codes can be referenced here:
  # https://developers.google.com/google-ads/api/reference/data/geotargets
  country_code = 'FR'

  response = gtc_service.suggest_geo_target_constants(
    locale: locale,
    country_code: country_code,
    location_names: location_names
  )

  response.geo_target_constant_suggestions.each do |suggestion|
    puts sprintf("%s (%s,%s,%s,%s) is found in locale (%s) with reach (%d)" \
        " from search term (%s).", suggestion.geo_target_constant.resource_name,
        suggestion.geo_target_constant.name,
        suggestion.geo_target_constant.country_code,
        suggestion.geo_target_constant.target_type,
        suggestion.geo_target_constant.status,
        suggestion.locale,
        suggestion.reach,
        suggestion.search_term)
  end
end
      

Perl

sub get_geo_target_constants_by_names {
  my ($api_client, $location_names, $locale, $country_code) = @_;

  my $suggest_response = $api_client->GeoTargetConstantService()->suggest({
      locale        => $locale,
      countryCode   => $country_code,
      locationNames =>
        Google::Ads::GoogleAds::V25::Services::GeoTargetConstantService::LocationNames
        ->new({
          names => $location_names
        })});

  # Iterate over all geo target constant suggestion objects and print the requested
  # field values for each one.
  foreach my $geo_target_constant_suggestion (
    @{$suggest_response->{geoTargetConstantSuggestions}})
  {
    printf "Found '%s' ('%s','%s','%s',%s) in locale '%s' with reach %d" .
      " for the search term '%s'.\n",
      $geo_target_constant_suggestion->{geoTargetConstant}{resourceName},
      $geo_target_constant_suggestion->{geoTargetConstant}{name},
      $geo_target_constant_suggestion->{geoTargetConstant}{countryCode},
      $geo_target_constant_suggestion->{geoTargetConstant}{targetType},
      $geo_target_constant_suggestion->{geoTargetConstant}{status},
      $geo_target_constant_suggestion->{locale},
      $geo_target_constant_suggestion->{reach},
      $geo_target_constant_suggestion->{searchTerm};
  }

  return 1;
}
      

curl

Как настроить таргетинг кампаний на местоположения в определенном радиусе

Иногда вам может потребоваться более точный таргетинг, чем по городу или стране. Например, вы можете рекламировать свои супермаркеты в радиусе 10 км от магазина. В таких случаях можно использовать таргетинг в радиусе. Код для создания целевого местоположения поблизости похож на код для добавления целевого местоположения, но вместо объекта LocationInfo нужно создать объект ProximityInfo.

Java

private static CampaignCriterion buildProximityLocation(String campaignResourceName) {
  Builder builder = CampaignCriterion.newBuilder().setCampaign(campaignResourceName);

  ProximityInfo.Builder proximityBuilder = builder.getProximityBuilder();
  proximityBuilder.setRadius(10.0).setRadiusUnits(ProximityRadiusUnits.MILES);

  AddressInfo.Builder addressBuilder = proximityBuilder.getAddressBuilder();
  addressBuilder
      .setStreetAddress("38 avenue de l'Opéra")
      .setCityName("Paris")
      .setPostalCode("75002")
      .setCountryCode("FR");

  return builder.build();
}
      

C#

private CampaignCriterion buildProximityCriterion(string campaignResourceName)
{
    ProximityInfo proximity = new ProximityInfo()
    {
        Address = new AddressInfo()
        {
            StreetAddress = "38 avenue de l'Opéra",
            CityName = "Paris",
            PostalCode = "75002",
            CountryCode = "FR"
        },
        Radius = 10d,
        // Default is kilometers.
        RadiusUnits = ProximityRadiusUnits.Miles
    };

    return new CampaignCriterion()
    {
        Campaign = campaignResourceName,
        Proximity = proximity
    };
}
      

PHP

private static function createProximityCampaignCriterionOperation(string $campaignResourceName)
{
    // Constructs a campaign criterion as a proximity.
    $campaignCriterion = new CampaignCriterion([
        'proximity' => new ProximityInfo([
            'address' => new AddressInfo([
                'street_address' => '38 avenue de l\'Opéra',
                'city_name' => 'Paris',
                'postal_code' => '75002',
                'country_code' => 'FR',
            ]),
            'radius' => 10.0,
            // Default is kilometers.
            'radius_units' => ProximityRadiusUnits::MILES
        ]),
        'campaign' => $campaignResourceName
    ]);

    return new CampaignCriterionOperation(['create' => $campaignCriterion]);
}
      

Python

def create_proximity_op(
    client: GoogleAdsClient, customer_id: str, campaign_id: str
) -> CampaignCriterionOperation:
    campaign_service: CampaignServiceClient = client.get_service(
        "CampaignService"
    )

    # Create the campaign criterion.
    campaign_criterion_operation: CampaignCriterionOperation = client.get_type(
        "CampaignCriterionOperation"
    )
    campaign_criterion: CampaignCriterion = campaign_criterion_operation.create
    campaign_criterion.campaign = campaign_service.campaign_path(
        customer_id, campaign_id
    )
    campaign_criterion.proximity.address.street_address = "38 avenue de l'Opera"
    campaign_criterion.proximity.address.city_name = "Paris"
    campaign_criterion.proximity.address.postal_code = "75002"
    campaign_criterion.proximity.address.country_code = "FR"
    campaign_criterion.proximity.radius = 10
    # Default is kilometers.
    campaign_criterion.proximity.radius_units = (
        client.enums.ProximityRadiusUnitsEnum.MILES
    )

    return campaign_criterion_operation
      

Ruby

def create_proximity(client, customer_id, campaign_id)
  client.operation.create_resource.campaign_criterion do |criterion|
    criterion.campaign = client.path.campaign(customer_id, campaign_id)

    criterion.proximity = client.resource.proximity_info do |proximity|
      proximity.address = client.resource.address_info do |address|
        address.street_address = "38 avenue de l'Opéra"
        address.city_name = "Paris"
        address.postal_code = "75002"
        address.country_code = "FR"
      end

      proximity.radius = 10
      proximity.radius_units = :MILES
    end
  end
end
      

Perl

sub create_proximity_campaign_criterion_operation {
  my ($campaign_resource_name) = @_;

  # Construct a campaign criterion as a proximity.
  my $campaign_criterion =
    Google::Ads::GoogleAds::V25::Resources::CampaignCriterion->new({
      proximity => Google::Ads::GoogleAds::V25::Common::ProximityInfo->new({
          address => Google::Ads::GoogleAds::V25::Common::AddressInfo->new({
              streetAddress => "38 avenue de l'Opéra",
              cityName      => "cityName",
              postalCode    => "75002",
              countryCode   => "FR"
            }
          ),
          radius => 10.0,
          # Default is kilometers.
          radiusUnits => MILES
        }
      ),
      campaign => $campaign_resource_name
    });

  return
    Google::Ads::GoogleAds::V25::Services::CampaignCriterionService::CampaignCriterionOperation
    ->new({
      create => $campaign_criterion
    });
}
      

curl

Как получить географические цели

Получить области геотаргетинга для кампании можно с помощью GoogleAdsService.SearchStream. Включив campaign_criterion.type и campaign_criterion.resource_name в предложение SELECT, вы сможете различать критерии LOCATION и PROXIMITY и записывать названия ресурсов для последующих обновлений или удалений.

SELECT
  campaign_criterion.resource_name,
  campaign_criterion.campaign,
  campaign_criterion.type,
  campaign_criterion.location.geo_target_constant,
  campaign_criterion.proximity.geo_point.longitude_in_micro_degrees,
  campaign_criterion.proximity.geo_point.latitude_in_micro_degrees,
  campaign_criterion.proximity.radius,
  campaign_criterion.proximity.radius_units,
  campaign_criterion.proximity.address.street_address,
  campaign_criterion.proximity.address.city_name,
  campaign_criterion.proximity.address.postal_code,
  campaign_criterion.proximity.address.country_code,
  campaign_criterion.negative
FROM campaign_criterion
WHERE
  campaign_criterion.campaign = 'customers/{customer_id}/campaigns/{campaign_id}'
  AND campaign_criterion.type IN ('LOCATION', 'PROXIMITY')

Обновить геотаргетинг

Критерии местоположения в кампании нельзя изменить после ее создания, поэтому для обновления геотаргетинга кампании необходимо заменить устаревшие цели новыми в одном атомарном запросе CampaignCriterionService.MutateCampaignCriteria:

  1. Запросите существующие критерии LOCATION и PROXIMITY кампании, используя запрос GAQL в разделе Получение геотаргетинга.
  2. Сравните существующие критерии с целевым списком.
  3. Для каждого устаревшего критерия создайте объект CampaignCriterionOperation, в котором для поля remove задано значение resource_name существующего критерия.
  4. Для каждого нового местоположения или целевой области в радиусе создайте объект CampaignCriterionOperation, в котором для поля create задан новый критерий LocationInfo или ProximityInfo.
  5. Передайте операции remove и create в одном вызове MutateCampaignCriteria, чтобы переход произошел атомарно.

Исключение местоположений

Вы также можете исключить LocationInfo, но не ProximityInfo. Эта функция наиболее полезна, если вы хотите настроить таргетинг на регион, но исключить субрегион (например, настроить таргетинг на всю Россию, за исключением Москвы). Чтобы исключить регион, задайте для поля negative в CampaignCriterion значение true.

Как настроить таргетинг на несколько географических регионов

Если вы используете LocationGroupInfo, то можете настроить таргетинг кампании на несколько географических регионов, центры которых определяются объектами адресов или фильтруются по географическому региону:

  • Наборы объектов адресов. Задайте значение enable_customer_level_location_asset_set = true (чтобы настроить таргетинг на набор объектов адресов клиента) или location_group_asset_sets (чтобы настроить таргетинг на определенные названия ресурсов AssetSet). Эти два поля нельзя задавать вместе, а также нельзя сочетать их с полем geo_target_constants.
  • Радиус и единицы измерения. Радиус, заданный в LocationGroupInfo, определяет круглую область вокруг каждого местоположения и требует наличия как radius, так и radius_units (LocationGroupRadiusUnitsEnum):
    • При использовании наборов объектов адресов (enable_customer_level_location_asset_set или location_group_asset_sets) поддерживаются следующие значения radius_units: MILLI_MILES и METERS.
    • При фильтрации по параметру geo_target_constants (где допускается не более одного идентификатора критерия, а поля AssetSet не заданы) поддерживаемые значения radius_units – MILES и METERS.

Расширенные настройки геотаргетинга в GeoTargetTypeSetting

Вы можете не только указать целевые и исключенные местоположения, но и настроить, как Google Реклама будет сопоставлять пользователей с этими местоположениями, с помощью расширенных параметров местоположения. Эти настройки задаются в Campaign.GeoTargetTypeSetting.

Эта настройка состоит из двух полей:

  • positive_geo_target_type – определяет, как пользователи сопоставляются с целевыми местоположениями.
  • negative_geo_target_type – определяет, как пользователи сопоставляются с исключенными местоположениями.

Настройки таргетинга (positive_geo_target_type)

Для целевых местоположений можно выбрать один из следующих вариантов, используя значения из PositiveGeoTargetTypeEnum:

  • PRESENCE_OR_INTEREST (рекомендуется по умолчанию)

    • Охватывает людей, которые, скорее всего, находятся в целевых местоположениях или регулярно бывают в них, а также людей, которые проявляют интерес к целевым местоположениям.
    • Интерес может быть выражен в поисковых запросах, посещениях или контенте, связанном с местоположением.
    • Этот вариант обеспечивает самый широкий охват.
  • PRESENCE:

    • Объявления показываются только тем, кто, скорее всего, находится в целевых местоположениях или регулярно посещает их.
    • Это более строгий вариант, который подходит, если ваши товары или услуги предназначены только для тех, кто физически находится в определенном регионе.

Настройки минус-таргетинга (negative_geo_target_type)

Для местоположений, которые вы хотите исключить, используйте NegativeGeoTargetTypeEnum:

  • PRESENCE (рекомендуется по умолчанию)
    • Исключает пользователей, которые с высокой вероятностью находятся в исключенных местоположениях.
    • Пользователи, находящиеся за пределами исключенных областей, могут видеть вашу рекламу, даже если они интересуются этими областями, при условии, что они соответствуют вашим настройкам таргетинга.

Как управлять расширенными настройками геотаргетинга

Вы можете управлять этими настройками, обновляя объект Campaign.geo_target_type_setting. В примере ниже показана структура обновления CampaignOperation, которое задает для positive_geo_target_type значение PRESENCE.

// Conceptual structure for a Campaign update operation
operations {
  update {
    resource_name: "customers/{customer_id}/campaigns/{campaign_id}"
    geo_target_type_setting {
      positive_geo_target_type: PRESENCE
      // negative_geo_target_type remains at its default PRESENCE
    }
  }
  update_mask {
    paths: "geo_target_type_setting.positive_geo_target_type"
  }
}

Чтобы получить текущие настройки, включите campaign.geo_target_type_setting.positive_geo_target_type и campaign.geo_target_type_setting.negative_geo_target_type в поисковый запрос GoogleAdsService.

Настроив эти параметры, вы сможете более точно управлять тем, кому показывается ваша реклама, в зависимости от географического местоположения, указанного вами, и таким образом лучше достигать своих бизнес-целей.

Рекомендации

  • Выберите PRESENCE, если ваш товар или услуга доступны только людям, которые физически находятся в определенном месте. Например, если вы продаете товары только в магазине или доставляете их только в пределах города.
  • Выберите PRESENCE_OR_INTEREST, если ваши товары или услуги могут быть полезны людям, которые интересуются определенным местоположением, даже если они не находятся там физически. Например, пользователь, планирующий отпуск, может интересоваться отелями в городе назначения.
  • Используйте исключение местоположений, чтобы уточнить охват. Если вы настроили таргетинг на США с помощью кода PRESENCE_OR_INTEREST, но не доставляете товары в определенный штат, вы можете исключить его, используя код negative=true в критерии LocationInfo. В сочетании с параметром negative_geo_target_type, для которого задано значение PRESENCE, это позволит не показывать объявления пользователям из этого штата, но охватывать пользователей за его пределами, которые могут интересоваться местоположениями в США.

Дальнейшие действия