טירגוט למיקום גיאוגרפי

במדריך הזה מוסבר מהו טירגוט למיקום גיאוגרפי ואיך משתמשים ב-Google Ads API כדי להוסיף, לאחזר ולעדכן את הטירגוט למיקום גיאוגרפי בקמפיינים.

מידע נוסף על מגבלות הטירגוט זמין בקטע "מגבלות טירגוט" במאמר מידע על מגבלות בחשבון Google Ads.

למה טירגוט גיאוגרפי חשוב?

טירגוט למיקום גיאוגרפי מאפשר להציג מודעות למשתמשים באזור גיאוגרפי מסוים. לדוגמה, נניח שאתם מפרסמים רשת של סופרמרקטים. אם לא תגדירו טירגוט למיקום גיאוגרפי, המודעות יוצגו בכל האזורים בעולם, ויכול להיות שהן יקבלו קליקים ממשתמשים באזורים שבהם אין לכם סניפים של סופרמרקטים. הקליקים האלה מייצרים עלות, אבל אין סיכוי להחזר על ההשקעה. בעזרת טירגוט למיקום גיאוגרפי, הקמפיינים שלכם מציגים מודעות רק באזורים שבהם יש לכם סופרמרקטים פתוחים. בנוסף, הגישה הזו מאפשרת לכם לטרגט ישירות לקוחות שמחפשים סופרמרקטים באזור שלהם.

‫Google Ads API מאפשר לכם לטרגט את המודעות לפי מדינה, אזור או קרבה לנקודה גיאוגרפית ספציפית.

טירגוט גיאוגרפי של קמפיינים לאזור מסוים

אתם יכולים לטרגט קמפיינים לכל אזור גיאוגרפי שבו Google Ads תומך בטירגוט לפי מיקום, כמו מדינה, מדינה בארה"ב, עיר או אזור מיקוד. כל מיקום שאפשר לטרגט מזוהה באופן ייחודי באמצעות מזהה קריטריון. אפשר לחפש מזהה קריטריון באמצעות 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 מפסיקה להשתמש בקריטריונים מסוימים למיקום מסיבות שונות: יכול להיות שהמיקום עבר שינוי מבני לאזורים קטנים או גדולים יותר, שינויים גיאופוליטיים וכו'. כדי לבדוק אם מיקום מסוים הוא ENABLED או REMOVAL_PLANNED, צריך לעיין בשדה status של אובייקט GeoTargetConstant.

חיפוש לפי שם המיקום

אפשר גם לחפש את מזהה הקריטריון לפי שם המיקום באמצעות 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. הכללת 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. מריצים שאילתת GAQL באחזור מיקומים גיאוגרפיים לטירגוט כדי לאחזר את הקריטריונים הקיימים של הקמפיין LOCATION וPROXIMITY.
  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 Ads מתאימה משתמשים למיקומים האלה. ההגדרות האלה מנוהלות דרך 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 מונע את הצגת המודעות למשתמשים במדינה הזו, אבל מאפשר להציג אותן למשתמשים מחוץ למדינה הזו שעשויים להתעניין במיקומים בארה"ב.

המאמרים הבאים