Nhắm mục tiêu theo vị trí

Hướng dẫn này mô tả tiêu chí nhắm mục tiêu theo vị trí và cách bạn có thể sử dụng Google Ads API để thêm, truy xuất và cập nhật tiêu chí nhắm mục tiêu theo vị trí cho chiến dịch của mình.

Để biết thông tin về hạn mức nhắm mục tiêu, hãy xem phần Hạn mức nhắm mục tiêu trong bài viết Giới thiệu về các hạn mức trên tài khoản Google Ads.

Tại sao tính năng nhắm mục tiêu theo vị trí địa lý lại quan trọng?

Nhắm mục tiêu theo vị trí giúp bạn phân phát quảng cáo cho người dùng ở một khu vực địa lý cụ thể. Ví dụ: Giả sử bạn đang quảng cáo cho một chuỗi siêu thị. Nếu không có tiêu chí nhắm mục tiêu theo vị trí, quảng cáo của bạn sẽ xuất hiện ở tất cả các khu vực trên toàn thế giới và quảng cáo của bạn có thể nhận được lượt nhấp từ người dùng ở những khu vực mà bạn không có vị trí siêu thị. Điều này tạo ra chi phí mà không mang lại khả năng thu hồi vốn đầu tư. Với tính năng nhắm mục tiêu theo vị trí, chiến dịch của bạn chỉ hiển thị quảng cáo ở những khu vực có siêu thị đang hoạt động. Phương pháp này cũng cho phép bạn nhắm mục tiêu trực tiếp đến những khách hàng đang tìm kiếm siêu thị tại địa phương.

API Google Ads cho phép bạn nhắm mục tiêu quảng cáo theo quốc gia, khu vực hoặc vùng lân cận xung quanh một điểm địa lý cụ thể.

Chiến dịch nhắm mục tiêu theo vị trí địa lý cho một khu vực

Bạn có thể nhắm mục tiêu chiến dịch đến bất kỳ khu vực địa lý nào mà Google Ads hỗ trợ tính năng nhắm mục tiêu theo vị trí, chẳng hạn như một quốc gia, tiểu bang, thành phố hoặc khu vực bưu chính. Mỗi vị trí có thể nhắm đến đều được xác định riêng bằng một Mã tiêu chí. Bạn có thể tra cứu mã tiêu chí bằng cách sử dụng GeoTargetConstantService.SuggestGeoTargetConstants. resource_name của mỗi GeoTargetConstant có dạng geoTargetConstants/{Criterion ID}. Ví dụ: giá trị resource_name của tiểu bang New York là geoTargetConstants/21167.

Bạn có thể thêm mục tiêu địa lý vào chiến dịch bằng cách sử dụng biểu tượng CampaignCriterionService (hoặc ở cấp nhóm quảng cáo bằng cách sử dụng biểu tượng AdGroupCriterion cho các loại chiến dịch được hỗ trợ, chẳng hạn như chiến dịch Tạo nhu cầu có bật upgraded_targeting). Đoạn mã sau đây cho biết cách nhắm đến chiến dịch của bạn bằng một mã tiêu chí.

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

Đôi khi, Google có thể loại bỏ một số tiêu chí về vị trí vì nhiều lý do: vị trí có thể được tái cấu trúc thành các khu vực nhỏ hơn hoặc lớn hơn, thay đổi về địa chính trị, v.v. Tham khảo trường status của đối tượng GeoTargetConstant để xác định xem một vị trí có phải là ENABLED hay REMOVAL_PLANNED hay không.

Tìm kiếm theo tên vị trí

Bạn cũng có thể tra cứu mã tiêu chí theo tên vị trí bằng cách sử dụng GeoTargetConstantService.SuggestGeoTargetConstants. Ví dụ về mã sau đây cho thấy cách tra cứu mã tiêu chí về vị trí theo tên vị trí.

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

Nhắm mục tiêu chiến dịch theo vùng lân cận của một vị trí

Đôi khi, bạn có thể muốn nhắm đến mục tiêu chính xác hơn cả một thành phố hoặc quốc gia. Ví dụ: bạn có thể muốn quảng cáo siêu thị của mình trong phạm vi 10 km tính từ vị trí cửa hàng. Trong những trường hợp như vậy, bạn có thể sử dụng tính năng nhắm mục tiêu theo khoảng cách. Mã để tạo mục tiêu lân cận tương tự như mã để thêm mục tiêu vị trí, ngoại trừ việc bạn phải tạo đối tượng ProximityInfo thay vì đối tượng LocationInfo.

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

Truy xuất mục tiêu địa lý

Bạn có thể truy xuất mục tiêu địa lý cho một chiến dịch bằng cách sử dụng GoogleAdsService.SearchStream. Việc thêm campaign_criterion.type và campaign_criterion.resource_name vào mệnh đề SELECT cho phép bạn phân biệt giữa tiêu chí LOCATION và PROXIMITY, đồng thời ghi lại tên tài nguyên cho các lần cập nhật hoặc xoá sau này.

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')

Cập nhật tiêu chí nhắm mục tiêu theo địa lý

Tiêu chí vị trí của một chiến dịch sẽ không thay đổi sau khi được tạo, vì vậy, để cập nhật mục tiêu địa lý của chiến dịch, bạn cần thay thế các mục tiêu lỗi thời bằng mục tiêu mới trong một yêu cầu CampaignCriterionService.MutateCampaignCriteria nguyên tử duy nhất:

  1. Truy vấn tiêu chí LOCATION và PROXIMITY hiện có của chiến dịch bằng cách sử dụng truy vấn GAQL trong Truy xuất mục tiêu địa lý.
  2. So sánh tiêu chí hiện tại với danh sách mục tiêu mà bạn muốn.
  3. Đối với mỗi tiêu chí không còn được dùng, hãy tạo một CampaignCriterionOperation có remove được đặt thành resource_name của tiêu chí hiện có.
  4. Đối với mỗi vị trí hoặc mục tiêu lân cận mới, hãy tạo một CampaignCriterionOperation có create được điền sẵn tiêu chí LocationInfo hoặc ProximityInfo mới.
  5. Truyền cả hai thao tác remove và create trong một lệnh gọi MutateCampaignCriteria duy nhất để quá trình chuyển đổi diễn ra một cách nguyên tử.

Loại trừ mục tiêu địa lý

Bạn cũng có thể loại trừ LocationInfo, nhưng không thể loại trừ ProximityInfo. Tính năng này hữu ích nhất nếu bạn muốn nhắm đến một khu vực, nhưng loại trừ một khu vực nhỏ (ví dụ: nhắm đến toàn bộ Hoa Kỳ, ngoại trừ Thành phố New York). Để loại trừ một khu vực, hãy đặt trường negative trong CampaignCriterion thành true.

Nhắm đến nhiều khu vực địa lý

Nếu sử dụng LocationGroupInfo, bạn có thể cho phép một chiến dịch nhắm đến nhiều khu vực địa lý tập trung vào các vị trí do thành phần địa điểm xác định hoặc được lọc theo khu vực địa lý:

  • Bộ thành phần vị trí: Đặt enable_customer_level_location_asset_set = true (để nhắm đến bộ thành phần vị trí của khách hàng) hoặc location_group_asset_sets (để nhắm đến tên tài nguyên AssetSet cụ thể). Bạn không thể đặt hai trường này cùng nhau và cũng không thể kết hợp hai trường này với geo_target_constants.
  • Bán kính và đơn vị: Bán kính trên LocationGroupInfo xác định một vùng hình tròn xung quanh mỗi vị trí và yêu cầu cả radius và radius_units (LocationGroupRadiusUnitsEnum):
    • Khi sử dụng nhóm thành phần vị trí (enable_customer_level_location_asset_set hoặc location_group_asset_sets), các giá trị radius_units được hỗ trợ là MILLI_MILES và METERS.
    • Khi lọc theo geo_target_constants (trong đó bạn chỉ được phép dùng tối đa một mã tiêu chí và các trường AssetSet không được đặt), các giá trị radius_units được hỗ trợ là MILES và METERS.

Các lựa chọn vị trí nâng cao với GeoTargetTypeSetting

Ngoài việc chỉ định vị trí để nhắm đến hoặc loại trừ, bạn có thể tinh chỉnh cách Google Ads so khớp người dùng với những vị trí này bằng cách sử dụng các tuỳ chọn nâng cao về vị trí. Các chế độ cài đặt này được quản lý thông qua Campaign.GeoTargetTypeSetting.

Chế độ cài đặt này bao gồm 2 trường:

  • positive_geo_target_type: Xác định cách người dùng được so khớp cho những vị trí mà bạn nhắm đến.
  • negative_geo_target_type: Xác định cách người dùng được so khớp cho những vị trí mà bạn loại trừ.

Chế độ cài đặt tiêu chí nhắm mục tiêu khẳng định (positive_geo_target_type)

Bạn có thể chọn trong số các lựa chọn sau cho tiêu chí nhắm mục tiêu theo vị trí tích cực, bằng cách sử dụng các giá trị từ PositiveGeoTargetTypeEnum:

  • PRESENCE_OR_INTEREST (Mặc định nên dùng):

    • Tiếp cận những người có khả năng đang ở hoặc thường xuyên ở những vị trí mà bạn nhắm đến, cũng như những người đã thể hiện sự quan tâm đến những vị trí mà bạn nhắm đến.
    • Mức độ quan tâm có thể được thể hiện bằng cụm từ tìm kiếm, lượt ghé thăm trước đây hoặc nội dung đã sử dụng liên quan đến vị trí.
    • Lựa chọn này giúp bạn tiếp cận phạm vi rộng nhất.
  • PRESENCE:

    • Chỉ tiếp cận những người có khả năng ở các vị trí thực tế mà bạn nhắm đến hoặc thường xuyên ở các vị trí đó.
    • Điều này hạn chế hơn và hữu ích nếu dịch vụ hoặc sản phẩm của bạn chỉ dành cho những người có mặt tại một khu vực.

Chế độ cài đặt tiêu chí nhắm mục tiêu phủ định (negative_geo_target_type)

Đối với các vị trí mà bạn muốn loại trừ, hãy sử dụng NegativeGeoTargetTypeEnum:

  • PRESENCE (Mặc định nên dùng):
    • Loại trừ những người có khả năng đang ở các vị trí thực tế mà bạn đã loại trừ.
    • Những người ở bên ngoài các khu vực bị loại trừ, ngay cả khi quan tâm đến các khu vực đó, vẫn có thể nhìn thấy quảng cáo của bạn, miễn là họ phù hợp với tiêu chí nhắm mục tiêu tích cực của bạn.

Quản lý các lựa chọn vị trí nâng cao

Bạn có thể kiểm soát các chế độ cài đặt này bằng cách cập nhật đối tượng Campaign.geo_target_type_setting. Ví dụ sau đây cho thấy cấu trúc của một bản cập nhật CampaignOperation đặt positive_geo_target_type thành 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"
  }
}

Để tìm nạp chế độ cài đặt hiện tại, hãy thêm campaign.geo_target_type_setting.positive_geo_target_type và campaign.geo_target_type_setting.negative_geo_target_type vào cụm từ tìm kiếm GoogleAdsService của bạn.

Bằng cách định cấu hình các chế độ cài đặt này, bạn sẽ có quyền kiểm soát thật chi tiết hơn đối với những người nhìn thấy quảng cáo của bạn dựa trên mối quan hệ của họ với các vị trí địa lý mà bạn đã chỉ định, từ đó phù hợp hơn với mục tiêu kinh doanh của bạn.

Các phương pháp hay nhất

  • Chọn PRESENCE nếu sản phẩm hoặc dịch vụ của bạn chỉ dành cho những người có mặt tại một địa điểm. Ví dụ: giả sử bạn yêu cầu người dùng đến cửa hàng hoặc yêu cầu giao hàng tại địa phương.
  • Chọn PRESENCE_OR_INTEREST nếu sản phẩm hoặc dịch vụ của bạn cũng có thể mang lại lợi ích cho những người quan tâm đến một vị trí, ngay cả khi họ không có mặt tại đó. Ví dụ: người dùng đang lên kế hoạch cho một kỳ nghỉ có thể quan tâm đến các khách sạn ở thành phố mà họ sẽ đến.
  • Sử dụng tiêu chí nhắm mục tiêu theo vị trí phủ định để tinh chỉnh phạm vi tiếp cận. Nếu nhắm đến Hoa Kỳ bằng PRESENCE_OR_INTEREST nhưng không vận chuyển đến một tiểu bang cụ thể, bạn có thể loại trừ tiểu bang đó bằng cách sử dụng negative=true trên tiêu chí LocationInfo. Khi kết hợp với negative_geo_target_type được đặt thành PRESENCE, chế độ này sẽ ngăn quảng cáo của bạn hiển thị cho người dùng ở tiểu bang đó, đồng thời vẫn tiếp cận được những người dùng bên ngoài tiểu bang đó có thể quan tâm đến các vị trí ở Hoa Kỳ.

Bước tiếp theo