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

במדריך הזה מוסבר מהו טירגוט למיקום גיאוגרפי ואיך אפשר להשתמש ב-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::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 עשויה להוציא משימוש קריטריונים מסוימים של מיקום מסיבות שונות: יכול להיות שהמיקום יחולק מחדש לאזורים קטנים או גדולים יותר, שינויים גיאופוליטיים וכו'. כדי לבדוק אם מיקום מסוים הוא 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.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 קילומטרים מהמיקום של החנות. במקרים כאלה, אפשר להשתמש בטירגוט לפי קרבה. הקוד ליצירת טירגוט לפי קרבה דומה לקוד להוספת מיקום גיאוגרפי לטירגוט, אבל צריך ליצור אובייקט 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::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. הכללת campaign_criterion.type ו-campaign_criterion.resource_name בסעיף SELECT מאפשרת להבחין בין קריטריונים של LOCATION ו-PROXIMITY ולתעד את שמות המשאבים לצורך עדכונים או הסרות בהמשך.

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

עדכון של מיקומים גיאוגרפיים לטירגוט

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

  1. שולחים שאילתה לגבי הקריטריונים הקיימים של LOCATION ו-PROXIMITY בקמפיין באמצעות שאילתת GAQL באחזור של מיקומים גיאוגרפיים לטירגוט.
  2. השוו בין הקריטריונים הקיימים לבין רשימת היעדים הרצויה.
  3. לכל קריטריון מיושן, יוצרים CampaignCriterionOperation עם remove שמוגדר ל-resource_name של הקריטריון הקיים.
  4. לכל מיקום חדש או יעד קרבה חדש, יוצרים CampaignCriterionOperation עם create שמאוכלס בקריטריון החדש של LocationInfo או ProximityInfo.
  5. מעבירים את שתי הפעולות, remove ו-create, בקריאה אחת ל-MutateCampaignCriteria כדי שהמעבר יתבצע באופן אטומי.

החרגה של מיקומים גיאוגרפיים לטירגוט

אפשר גם להחריג את LocationInfo, אבל לא את ProximityInfo. התכונה הזו שימושית במיוחד אם רוצים לטרגט אזור מסוים, אבל להחריג אזור משנה (לדוגמה, לטרגט את כל ארצות הברית, חוץ מהעיר ניו יורק). כדי להחריג אזור, מגדירים את השדה negative ב-CampaignCriterion לערך true.

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

אם אתם משתמשים בLocationGroupInfo, אתם יכולים להפעיל קמפיין שמטרגט כמה אזורים גיאוגרפיים שמתמקדים במיקומים שמוגדרים על ידי נכסי מיקום או מסוננים לפי אזור גיאוגרפי:

  • קבוצות של נכסי מיקום: מגדירים את הערך enable_customer_level_location_asset_set = true (כדי לטרגט את קבוצת נכסי המיקום של הלקוח) או את הערך location_group_asset_sets (כדי לטרגט שמות ספציפיים של משאבי AssetSet). אי אפשר להגדיר את שני השדות האלה ביחד, ואי אפשר לשלב אף אחד מהם עם geo_target_constants.
  • רדיוס ויחידות: הרדיוס ב-LocationGroupInfo מגדיר אזור מעגלי מסביב לכל מיקום, וצריך לציין גם את radius וגם את radius_units (LocationGroupRadiusUnitsEnum):
    • כשמשתמשים בקבוצות של נכסי מיקום (enable_customer_level_location_asset_set או location_group_asset_sets), הערכים הנתמכים של radius_units הם MILLI_MILES ו-METERS.
    • כשמסננים לפי geo_target_constants (כאשר מותר להשתמש לכל היותר במזהה קריטריון אחד, והשדות AssetSet לא מוגדרים), הערכים הנתמכים של radius_units הם MILES ו-METERS.

אפשרויות מיקום מתקדמות עם GeoTargetTypeSetting

בנוסף להגדרת מיקומים לטירגוט או להחרגה, אתם יכולים להשתמש באפשרויות מיקום מתקדמות כדי לשפר את האופן שבו מערכת Google 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, זה מונע מהמודעות שלכם להופיע למשתמשים במדינה הזו, אבל עדיין מאפשר להגיע למשתמשים מחוץ למדינה הזו שעשויים להתעניין במיקומים בארה"ב.

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