การกำหนดเป้าหมายตามสถานที่

คู่มือนี้อธิบายการกำหนดเป้าหมายตามสถานที่ และวิธีใช้ Google Ads API เพื่อเพิ่ม ดึงข้อมูล และอัปเดตการกำหนดเป้าหมายตามสถานที่สำหรับแคมเปญ

ดูข้อมูลเกี่ยวกับขีดจำกัดการกำหนดเป้าหมายได้ในส่วนขีดจำกัดการกำหนดเป้าหมายของ ข้อมูลเกี่ยวกับขีดจำกัดบัญชี Google Ads

เหตุใดการกำหนดเป้าหมายตามภูมิศาสตร์จึงมีความสำคัญ

การกำหนดเป้าหมายตามสถานที่ช่วยให้คุณแสดงโฆษณาต่อผู้ใช้ในภูมิภาคทางภูมิศาสตร์ที่เฉพาะเจาะจงได้ ตัวอย่างเช่น สมมติว่าคุณโฆษณาเครือข่ายซูเปอร์มาร์เก็ต หากไม่มีการกำหนดเป้าหมายตามสถานที่ โฆษณาจะแสดงในทุกภูมิภาคทั่วโลก และโฆษณาอาจได้รับการคลิกจากผู้ใช้ในภูมิภาคที่คุณไม่มีซูเปอร์มาร์เก็ต ซึ่งจะทำให้เกิดค่าใช้จ่ายโดยไม่มีโอกาสได้รับผลตอบแทนจากการลงทุน การกำหนดเป้าหมายตามสถานที่ช่วยให้แคมเปญแสดงโฆษณาเฉพาะในภูมิภาคที่คุณมีซูเปอร์มาร์เก็ตที่เปิดทำการ แนวทางนี้ยังช่วยให้คุณกำหนดเป้าหมายลูกค้าที่ค้นหาซูเปอร์มาร์เก็ตในพื้นที่ได้โดยตรง

Google Ads API ช่วยให้คุณกำหนดเป้าหมายโฆษณาตามประเทศ ภูมิภาค หรือความใกล้เคียงรอบๆ จุดทางภูมิศาสตร์ที่เฉพาะเจาะจงได้

ดูข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดเป้าหมายโฆษณาตามสถานที่ตั้งทางภูมิศาสตร์

กำหนดเป้าหมายตามภูมิศาสตร์สำหรับแคมเปญในภูมิภาค

คุณกำหนดเป้าหมายแคมเปญไปยังภูมิภาคทางภูมิศาสตร์ใดก็ได้ที่ Google Ads รองรับการกำหนดเป้าหมายตามสถานที่ เช่น ประเทศ รัฐ เมือง หรือภูมิภาคทางไปรษณีย์ ระบบจะระบุสถานที่ที่กำหนดเป้าหมายได้แต่ละแห่งด้วยรหัสเกณฑ์ที่ไม่ซ้ำกัน คุณ สามารถค้นหารหัสเกณฑ์ได้โดยใช้ GeoTargetConstantService.SuggestGeoTargetConstants resource_name ของแต่ละGeoTargetConstantจะมีรูปแบบเป็น geoTargetConstants/{Criterion ID} เช่น ค่า resource_name ของรัฐนิวยอร์กคือ geoTargetConstants/21167

คุณสามารถเพิ่มเป้าหมายทางภูมิศาสตร์ลงในแคมเปญได้โดยใช้ CampaignCriterionService ข้อมูลโค้ดต่อไปนี้แสดงวิธีกำหนดเป้าหมายแคมเปญด้วยรหัสเกณฑ์

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 กิโลเมตรจากที่ตั้งร้านค้า ในกรณีเช่นนี้ คุณสามารถใช้ การกำหนดเป้าหมายตามความใกล้เคียงได้ โค้ดสำหรับสร้างเป้าหมายที่ใกล้เคียงกันจะคล้ายกับการเพิ่มเป้าหมายตามสถานที่ ยกเว้นว่าคุณต้องสร้างออบเจ็กต์ ProximityInfo แทนออบเจ็กต์ 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

ดึงข้อมูลเป้าหมายทางภูมิศาสตร์

คุณสามารถดึงข้อมูลเป้าหมายทางภูมิศาสตร์สำหรับแคมเปญได้โดยใช้ GoogleAdsService.SearchStream และกรองผลลัพธ์ในคําสั่ง WHERE ได้

SELECT
  campaign_criterion.campaign,
  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.negative
FROM campaign_criterion
WHERE
  campaign_criterion.campaign = 'customers/{customer_id}/campaigns/{campaign_id}'
  AND campaign_criterion.type IN (LOCATION, PROXIMITY)

อัปเดตเป้าหมายทางภูมิศาสตร์

หากต้องการอัปเดตเป้าหมายตามสถานที่สำหรับแคมเปญ คุณต้องดึงข้อมูลรายการเป้าหมายทางภูมิศาสตร์ที่มีอยู่และเปรียบเทียบกับรายการเป้าหมายใหม่ จากนั้นใช้การดำเนินการ remove เพื่อนำเป้าหมายที่ไม่ต้องการออก และใช้การดำเนินการ create เพื่อเพิ่มเป้าหมายทางภูมิศาสตร์ใหม่ที่ต้องการ (แต่ไม่มีในแคมเปญที่มีอยู่)

ยกเว้นเป้าหมายทางภูมิศาสตร์

นอกจากนี้ คุณยังยกเว้น LocationInfo ได้ แต่ยกเว้น ProximityInfo ไม่ได้ ฟีเจอร์นี้มีประโยชน์มากที่สุดหากคุณต้องการกำหนดเป้าหมายภูมิภาคหนึ่ง แต่ยกเว้นภูมิภาคย่อย (เช่น กำหนดเป้าหมายทั้งสหรัฐอเมริกา ยกเว้นนิวยอร์กซิตี้) หากต้องการ ยกเว้นภูมิภาค ให้ตั้งค่าช่อง negative ใน CampaignCriterion เป็น true

กำหนดเป้าหมายภูมิภาคทางภูมิศาสตร์หลายแห่ง

หากใช้ LocationGroupInfo คุณจะเปิดใช้แคมเปญเพื่อกำหนดเป้าหมาย ภูมิภาคทางภูมิศาสตร์หลายแห่งได้ ภูมิภาคจะอยู่ตรงกลางสถานที่ที่กำหนดโดยส่วนขยายสถานที่ตั้งของแคมเปญ

รัศมีที่กำหนดไว้ใน LocationGroupInfo จะกำหนดภูมิภาคเป็นวงกลมรอบๆ แต่ละสถานที่ และประกอบด้วยออบเจ็กต์ radius ความยาว และ radius_units ซึ่งอาจเป็น เมตรหรือไมล์โดยใช้ LocationGroupRadiusUnitsEnum

คุณสามารถกรองสถานที่ใน LocationGroupInfo ตามรายการรหัสเกณฑ์การกำหนดเป้าหมายตามภูมิศาสตร์ ที่กำหนดไว้ในช่อง geo_target_constant หากมีการกำหนดไว้, ระบบจะไม่กำหนดเป้าหมายสถานที่ที่อยู่นอกรหัสเกณฑ์ที่ระบุ

ตัวเลือกสถานที่ตั้งขั้นสูงที่มี GeoTargetTypeSetting

นอกเหนือจากการระบุสถานที่ที่จะกำหนดเป้าหมายหรือยกเว้นแล้ว คุณยังปรับแต่งวิธีที่ Google Ads จับคู่ผู้ใช้กับสถานที่เหล่านี้ได้โดยใช้ตัวเลือกสถานที่ตั้งขั้นสูง คุณจัดการการตั้งค่าเหล่านี้ได้ผ่าน Campaign.GeoTargetTypeSetting

การตั้งค่านี้ประกอบด้วย 2 ช่อง ได้แก่

  • positive_geo_target_type: กำหนดวิธีจับคู่ผู้ใช้กับสถานที่ที่คุณกำหนดเป้าหมาย
  • negative_geo_target_type: กำหนดวิธีจับคู่ผู้ใช้กับสถานที่ที่คุณยกเว้น

การตั้งค่าการกำหนดเป้าหมายเชิงบวก (positive_geo_target_type)

คุณเลือกตัวเลือกต่อไปนี้สำหรับการกำหนดเป้าหมายตามสถานที่เชิงบวกได้ โดยใช้ค่าจาก PositiveGeoTargetTypeEnum

  1. PRESENCE_OR_INTEREST (ค่าเริ่มต้นที่แนะนำ):

    • เข้าถึงผู้ที่น่าจะอยู่ในหรือปกติแล้วอยู่ในสถานที่เป้าหมาย PLUS ผู้ที่แสดงความสนใจในสถานที่เป้าหมาย
    • ความสนใจอาจแสดงออกมาจากคำค้นหา การเข้าชมที่ผ่านมา หรือเนื้อหาที่ใช้ซึ่งเกี่ยวข้องกับสถานที่
    • ตัวเลือกนี้ให้การเข้าถึงที่กว้างที่สุด
  2. PRESENCE:

    • เข้าถึงเฉพาะผู้ที่น่าจะอยู่ในสถานที่เป้าหมายหรือปกติแล้วอยู่ในสถานที่เป้าหมาย
    • ตัวเลือกนี้มีข้อจำกัดมากกว่าและมีประโยชน์หากบริการหรือผลิตภัณฑ์ของคุณจำกัดไว้สำหรับผู้ที่อยู่ในพื้นที่นั้นๆ เท่านั้น

หมายเหตุ: ค่าอื่นๆ เช่น SEARCH_INTEREST เลิกใช้งานแล้วและตั้งค่าไม่ได้ สำหรับแคมเปญส่วนใหญ่

การตั้งค่าการกำหนดเป้าหมายเชิงลบ (negative_geo_target_type)

สำหรับสถานที่ที่ต้องการยกเว้น ให้ใช้ NegativeGeoTargetTypeEnum

  1. PRESENCE (ค่าเริ่มต้นที่แนะนำ):
    • ยกเว้นผู้ที่น่าจะอยู่ในสถานที่ที่คุณยกเว้น
    • ผู้ที่อยู่นอกพื้นที่ที่ยกเว้นอาจยังคงเห็นโฆษณา แม้ว่าจะสนใจพื้นที่ดังกล่าวก็ตาม ทั้งนี้ขึ้นอยู่กับว่าผู้ใช้ตรงกับการกำหนดเป้าหมายเชิงบวกของคุณหรือไม่

หมายเหตุ: โดยทั่วไปแล้วค่า PRESENCE_OR_INTEREST ไม่รองรับการกำหนดเป้าหมายตามภูมิศาสตร์เชิงลบ ในแคมเปญส่วนใหญ่

จัดการตัวเลือกสถานที่ตั้งขั้นสูง

คุณสามารถควบคุมการตั้งค่าเหล่านี้ได้โดยการอัปเดตออบเจ็กต์ Campaign.geo_target_type_setting

ตัวอย่าง: ตั้งค่าแคมเปญให้กำหนดเป้าหมายตาม PRESENCE เท่านั้น

ต่อไปนี้เป็นตัวอย่างแนวคิดเกี่ยวกับวิธีสร้างการเรียก API เพื่อแก้ไข positive_geo_target_type โค้ดจริงจะแตกต่างกันไปตามภาษาของไลบรารีของไคลเอ็นต์

// 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 if not specified
    }
  }
  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 จะทำให้โฆษณาไม่แสดงต่อผู้ใช้ในรัฐนั้นๆ แต่ยังคงเข้าถึงผู้ใช้นอกรัฐนั้นๆ ที่อาจสนใจสถานที่ในสหรัฐอเมริกา

ขั้นตอนถัดไป