地域ターゲティング

このガイドでは、地域ターゲティングの概要と、Google Ads API を使ってキャンペーンの地域ターゲティングを追加、取得、更新する方法について説明します。

ターゲティングの上限については、Google 広告アカウントの制限についての「ターゲティングの上限」をご覧ください。

地域ターゲティングが重要な理由

地域ターゲティングを使用すると、特定の地域のユーザーに広告を配信できます。たとえば、スーパーマーケット チェーンの広告を掲載しているとします。地域ターゲティングを使用しない場合、広告は世界中のすべての地域で表示され、スーパーマーケットの店舗がない地域のユーザーからクリックされる可能性があります。これでは費用が発生するだけで、費用対効果を改善できません。キャンペーンに地域ターゲティングを設定すれば、スーパーマーケットの店舗がある地域でのみ広告を掲載できます。このアプローチでは、地域でスーパーマーケットを検索しているユーザーを直接ターゲットにすることもできます。

Google Ads API を使用すると、国、地域、または特定の地理的位置の周辺を基準に広告をターゲットに設定できます。

地域を対象とした地域ターゲティング キャンペーン

キャンペーンのターゲットには、Google 広告で地域ターゲティングがサポートされている任意の地域(国、州、都市、郵便番号など)を設定できます。ターゲットに設定可能な各地域は、条件 ID によって一意に識別されます。条件 ID は GeoTargetConstantService.SuggestGeoTargetConstants を使用して検索できます。各 GeoTargetConstant の resource_name は geoTargetConstants/{Criterion ID} の形式です。たとえば、ニューヨーク州の resource_name 値は geoTargetConstants/21167 です。

CampaignCriterionService を使用して、キャンペーンに地域ターゲティングを追加できます(または、upgraded_targeting が有効になっているデマンド ジェネレーション キャンペーンなど、サポートされているキャンペーン タイプの場合は、AdGroupCriterion を使用して広告グループ単位で追加できます)。次のコード スニペットは、条件 ID を使用してキャンペーンをターゲットに設定する方法を示しています。

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::V26::Resources::CampaignCriterion->new({
      # Create a location using the specified location ID.
      location => Google::Ads::GoogleAds::V26::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::V26::Utils::ResourceNames::geo_target_constant(
            $location_id)}
      ),
      campaign => $campaign_resource_name
    });

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

curl

Google では、さまざまな理由で一部の地域条件を段階的に廃止することがあります。たとえば、地域がより小さなエリアまたはより大きなエリアに再編されたり、地政学的な変化があったりした場合などです。GeoTargetConstant オブジェクトの status フィールドを参照して、ロケーションが ENABLED か REMOVAL_PLANNED かを判断します。

地域名で検索する

GeoTargetConstantService.SuggestGeoTargetConstants を使用して、地域名で条件 ID を検索することもできます。次のコード例は、地域名で地域条件 ID を検索する方法を示しています。

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.V26.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::V26::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 km 圏内に絞って広告を掲載する場合です。このような場合は、近接ターゲティングを使用できます。近隣地域ターゲットを作成するコードは、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::V26::Resources::CampaignCriterion->new({
      proximity => Google::Ads::GoogleAds::V26::Common::ProximityInfo->new({
          address => Google::Ads::GoogleAds::V26::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::V26::Services::CampaignCriterionService::CampaignCriterionOperation
    ->new({
      create => $campaign_criterion
    });
}
      

curl

地域ターゲティングを取得する

キャンペーンの地域ターゲティングは、GoogleAdsService.SearchStream を使用して取得できます。SELECT 句に campaign_criterion.type と campaign_criterion.resource_name を含めると、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')

地域ターゲティングを更新する

キャンペーンの地域条件は作成後に変更できないため、キャンペーンの地域ターゲティングを更新するには、1 つのアトミックな CampaignCriterionService.MutateCampaignCriteria リクエストで、古いターゲットを新しいターゲットに置き換える必要があります。

  1. 地域ターゲティングを取得するの GAQL クエリを使用して、キャンペーンの既存の LOCATION 条件と PROXIMITY 条件をクエリします。
  2. 既存の条件と、目的のターゲット リストを比較します。
  3. 廃止された条件ごとに、remove を既存の条件の resource_name に設定して CampaignCriterionOperation を作成します。
  4. 新しい地域または近隣地域ターゲットごとに、CampaignCriterionOperation を作成し、create に新しい LocationInfo または ProximityInfo 条件を設定します。
  5. remove オペレーションと create オペレーションの両方を 1 つの MutateCampaignCriteria 呼び出しで渡して、遷移がアトミックに行われるようにします。

地域ターゲティングを除外する

LocationInfo を除外することもできますが、ProximityInfo は除外できません。この機能は、地域をターゲットに設定し、サブリージョンを除外する場合に最も役立ちます(たとえば、ニューヨーク市を除く米国全体をターゲットに設定する場合)。リージョンを除外するには、CampaignCriterion の negative フィールドを true に設定します。

複数の地域をターゲットに設定する

LocationGroupInfo を使用すると、住所アセットで定義された場所、または地域でフィルタされた場所を中心とする複数の地域をターゲットに設定できます。

  • 住所アセットセット: enable_customer_level_location_asset_set = true(お客様の住所アセットセットをターゲットに設定する場合)または location_group_asset_sets(特定の AssetSet リソース名をターゲットに設定する場合)のいずれかを設定します。これら 2 つのフィールドを同時に設定することはできません。また、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 でフィルタする場合(最大 1 つの条件 ID が許可され、AssetSet フィールドが設定されていない場合)、サポートされている radius_units 値は MILES と METERS です。

GeoTargetTypeSetting の地域ターゲティングの詳細設定

ターゲットに設定する地域や除外する地域を指定するだけでなく、ターゲット地域の詳細設定を使用して、Google 広告でユーザーをこれらの地域に一致させる方法を調整できます。これらの設定は Campaign.GeoTargetTypeSetting で管理されます。

この設定は、次の 2 つのフィールドで構成されています。

  • 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 オブジェクトを更新することで制御できます。次の例は、positive_geo_target_type を PRESENCE に設定する CampaignOperation 更新の構造を示しています。

// 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"
  }
}

現在の設定を取得するには、GoogleAdsService 検索クエリに campaign.geo_target_type_setting.positive_geo_target_type と campaign.geo_target_type_setting.negative_geo_target_type を含めます。

これらの設定を構成することで、指定した地理的位置との関係に基づいて、広告を表示するユーザーをより細かく制御し、ビジネス目標に沿った広告を配信できます。

ベスト プラクティス

  • PRESENCE を選択するケース: 商品やサービスが、特定の地域に実際にいるユーザーのみを対象としている場合。たとえば、ユーザーが店舗にいる必要がある場合や、ローカル配送が必要な場合です。
  • PRESENCE_OR_INTEREST を選択するケース: 物理的にその地域にいない場合でも、その地域に関心のあるユーザーに商品やサービスが役立つ場合。たとえば、休暇を計画しているユーザーは、目的地の都市にあるホテルに関心がある可能性があります。
  • 除外地域ターゲティングを使用してリーチを絞り込む。PRESENCE_OR_INTEREST で米国をターゲットに設定しているが、特定の州に配送しない場合は、LocationInfo 条件で negative=true を使用してその州を除外できます。negative_geo_target_type を PRESENCE に設定すると、その州のユーザーには広告が表示されなくなりますが、その州以外のユーザーで米国の地域に関心があるユーザーには広告が表示されます。

次のステップ