Konum verileriyle çalışma

Bu eğitimde, konum verilerinin nasıl oluşturulacağı ve düzenleneceği gösterilmektedir. My Business Business Information API, aşağıdaki işlemleri yapmanıza olanak tanır:

Konumlar Google Ads'de kullanılabilir ancak Arama ve Haritalar'da gösterilmeye uygun olmaları için doğrulanmaları gerekir. Konum verileri, accounts.locations koleksiyonuyla temsil edilir.

Başlamadan önce

My Business Business Information API'yi kullanmadan önce uygulamanızı kaydetmeniz ve OAuth 2.0 kimlik bilgilerini almanız gerekir. My Business Business Information API'yi kullanmaya başlama hakkında ayrıntılı bilgi için Temel kurulum başlıklı makaleyi inceleyin.

Konum oluşturma

accounts.locations.create ile bir işletme için yeni bir konum oluşturmak üzere My Business Business Information API'yi kullanabilirsiniz.

Konum oluşturmak için aşağıdakileri kullanın:

HTTP
POST
https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?requestId=requestId&validateOnly=True|False

{
    "storeCode": "GOOG-SYD",
    "languageCode": "en-AU",
    "title": "Google Sydney",
    "phoneNumbers": {
      "primaryPhone": "02 9374 4000"
     },
    "storefrontAddress": {
      "addressLines": [
        "Level 5",
        "48 Pirrama Road"
      ],
      "locality": "Pyrmont",
      "postalCode": "2009",
      "administrativeArea": "NSW",
      "regionCode": "AU"
    },
    "websiteUri": "https://www.google.com.au/",
    "regularHours": {
      "periods": [
        {
          "openDay": "MONDAY",
          "closeDay": "MONDAY",
          "openTime": "09:00",
          "closeTime": "17:00"
        },
        {
          "openDay": "TUESDAY",
          "closeDay": "TUESDAY",
          "openTime": "09:00",
          "closeTime": "17:00"
        },
        {
          "openDay": "WEDNESDAY",
          "closeDay": "WEDNESDAY",
          "openTime": "09:00",
          "closeTime": "17:00"
        },
        {
          "openDay": "THURSDAY",
          "closeDay": "THURSDAY",
          "openTime": "09:00",
          "closeTime": "17:00"
        },
        {
          "openDay": "FRIDAY",
          "closeDay": "FRIDAY",
          "openTime": "09:00",
          "closeTime": "17:00"
        }
      ]
    },
    "categories": {
      "primaryCategory": {
        "name": "gcid:software_company"
      }
     }
}

Konum silme

locations.delete ile bir konumu silmek için My Business Business Information API'yi kullanabilirsiniz.

Bir konumu silmek için aşağıdakileri kullanın:

HTTP
DELETE
https://mybusinessbusinessinformation.googleapis.com/v1/locations/{locationId}

Konumu ada göre alma

Hesabınızla ilişkili çok sayıda işletmeniz varsa tek bir konum almak isteyebilirsiniz. locations.get ile belirli bir konumu almak için işletme adına göre filtreleme yapabilirsiniz.

Bir konumu ada göre almak için aşağıdakileri kullanın. Belirli alanları almak için bir readMask belirtmeniz gerekir. :

HTTP
GET
https://mybusinessbusinessinformation.googleapis.com/v1/locations/{locationId}?readMask={commaSeparatedFieldsToRetrieve}

Google Haritalar sürümünü döndürme

HTTP

Bir konumun Google Haritalar sürümünü döndürmek için istek URL'sine aşağıdaki örnekte olduğu gibi googleUpdated ekleyin:

GET
https://mybusinessbusinessinformation.googleapis.com/v1/locations/{locationId}:googleUpdated?readMask={commaSeparatedFieldsToRetrieve}

Sonuç yoksa 404 NOT FOUND HTTP durum kodu döndürülür. Google güncellemelerini yönetme hakkında daha fazla bilgi için Güncellemeleri kabul etme veya reddetme başlıklı makaleyi inceleyin.

Genişletilmiş konum verilerini ve düzenleme durumunu döndürme (v1alpha)

Hem satıcı tarafından sağlanan konum verilerini hem de tüketiciye yönelik konum verilerini, alan bazında düzenleme yaşam döngüsü aşamaları (ör. EDIT_LIFECYCLE_STAGE_PENDING veya EDIT_LIFECYCLE_STAGE_REJECTED), düzenleme kaynağı (SOURCE_API veya SOURCE_UI) ve politika ihlali nedenleriyle birlikte tek bir çağrıda almak için v1alpha içinde locations.getExtended kullanın:

HTTP
GET
https://mybusinessbusinessinformation.googleapis.com/v1alpha/locations/{locationId}:getExtended

Tam yanıt örnekleri ve alan bazında düzenleme durumunu ve politika ihlallerini yorumlama hakkında ayrıntılı bilgi için Konumlar ve özellikler için düzenleme durumunu kontrol etme başlıklı makaleyi inceleyin.

Konumları listeleyin

Bir veya daha fazla konumu yönetirken hesabınızla ilişkili tüm konumları listelemek isteyebilirsiniz. Bir kullanıcıyla ilişkili tüm konumları listelemek için accounts.locations.list API'sini kullanın.

Kimliği doğrulanmış bir kullanıcının doğrudan sahip olduğu veya yönettiği tüm konumları listelemek için aşağıdakileri kullanın:

HTTP
GET
https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}

Dolaylı olarak sahip olunan (bir grup aracılığıyla sahip olunan veya yönetilen) girişleri dahil etmek için istek URL'sinde hesap için '-' joker karakterini kullanın:

HTTP
GET
https://mybusinessbusinessinformation.googleapis.com/v1/accounts/-/locations?readMask={commaSeparatedFieldsToRetrieve}

Konumları listelerken sonuçları filtreleme

HTTP

accounts.locations.list yöntemini çağırdığınızda döndürülen sonuçları sınırlamak için filtreleri kullanabilirsiniz. Bir isteği filtrelemek için bu örnekte gösterildiği gibi ana URL'ye bir filtre ifadesi ekleyin:

GET
https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter={FIELD_NAME}=%22{YOUR_QUERY}%22

Temel sorgu söz dizimi

Kısıtlamanın söz dizimi şu şekildedir: <field><operator><value>, Burada operatör EQUALS (=) veya HAS (:) şeklindedir. EQUALS (=) ve HAS (:) operatörleri, locationName hariç tüm alanlar için eşdeğerdir (aşağıdaki tabloya bakın).

Tırnak işaretleri "%22" olarak, boşluklar ise artı işaretleri (+) olarak kodlanır.

Aksi belirtilmedikçe, tüm karşılaştırmalar büyük/küçük harfe duyarlı olmayan jeton karşılaştırmalarıdır. Örneğin, "4 drive", "4, Privet Drive" ile eşleşir.

Filtre sorgusunda birden fazla alanı birleştirme

API, tüm alan kısıtlamalarını bağlamak için AND operatörüne izin verir. Ancak VEYA anahtar kelimesi söz konusu olduğunda tüm kısıtlamaların aynı alana uygulanması gerekir. Örneğin: locationName=A VEYA labels=B ifadesine izin verilmez.

Örnek

Aşağıdaki örnekte, "Pepé Le Pew" adlı tüm konumları döndüren bir filtre ifadesi gösterilmektedir. "french_restaurant" veya "european_restaurant" kategorilerini ve "newly open" etiketini gösterir.

locationName=%22Pepé+Le+Pew%22+AND+
(categories=%22french_restaurant%22+OR+
categories=%22european_restaurant%22)+AND+
labels=%22newly+open%22

Mesafeye veya hesaba göre arama yapma

Aşağıdaki örnekte, bir coğrafi noktaya belirli bir mesafedeki konumları nasıl arayabileceğiniz gösterilmektedir:

HTTP
GET
https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=distance(latlng, geopoint({latitude}, {longitude}))<{distance}

Boulder, Colorado, ABD'ye 1.600 km mesafedeki konumları filtrelemek için:

GET
https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=distance(latlng, geopoint(40.01, -105.27))<1000.0

Desteklenen tüm filtre alanlarının listesi

Aşağıda, filtreleme için kullanılabilecek tüm alanların kapsamlı bir listesi verilmiştir:

Alanlar Açıklama ve örnek
Dize eşleştirme alanları
title

İşletmenin gerçek dünyadaki adı

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=title:"Bajis" (Alt dize olarak "Bajis" içeren tüm konum adlarıyla eşleşir.)

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=title="Bajis" (jeton/kelime olarak "Bajis" içeren tüm konum adlarıyla eşleşir)

categories

Birincil kategori ile ek kategorilerin birleşimi. "gcid:" ifadesinin çıkarılması gerektiğini unutmayın. Birden fazla kategori varsa bu filtre, en az bir kategori bu kalıpla eşleştiğinde eşleşir.

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=categories="french_restaurant"

phone_numbers.primary_phone

E.164 biçimindeki birincil telefon numarası (ör. "+441234567890").

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=phone_numbers.primary_phone="+441234567890"

storefront_address.region_code

Adresin bulunduğu ülkenin/bölgenin CLDR bölge kodu

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=storefront_address.region_code="US"

storefront_address.administrative_area

Bir ülke veya bölgenin posta adresleri için kullanılan en yüksek idari alt bölüm

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=storefront_address.administrative_area="CA"

storefront_address.locality

Adresin şehir/ilçe kısmı

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=storefront_address.locality="New York"

storefront_address.postal_code

Adresin posta kodu

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=storefront_address.postal_code="12345"

metadata.place_id

Bu konum doğrulanmışsa ve Google Haritalar'a bağlıysa/Google Haritalar'da görünüyorsa bu alan, konumun yer kimliğine eşittir.

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=metadata.place_id="12345"

openInfo.status

Konumun şu anda açık olup olmadığını belirtir (OPEN, CLOSED_PERMANENTLY).

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=openInfo.status="OPEN"

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=openInfo.status="CLOSED_PERMANENTLY"

labels

İşletmenizi etiketlemenize olanak tanıyan serbest biçimli dizelerden oluşan bir koleksiyon. Diğer tüm alanların aksine, bu değer yalnızca bir jetonla değil, büyük/küçük harf kullanımı da dahil olmak üzere tam bir etiketle tam olarak eşleşmelidir. Örneğin, bir etiket "XX YY" ise "XX" veya "xx yy" eşleşmez.

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=labels="newly open"

storeCode

Bu konumun harici tanımlayıcısı (belirli bir hesapta benzersiz olmalıdır)

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=storeCode="12345"

İşlevler
distance

Konumun coğrafi bir noktaya olan uzaklığına göre filtreleme yapmanıza olanak tanır.

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=distance(latlng, geopoint(1.0, -25.0))<1000.0

Sorgu alanına göre sıralama

Sonuçları işletme adına veya mağaza koduna göre artan ya da azalan düzende sıralayabilirsiniz. Birden fazla sıralama ölçütü, aşağıdaki örnekte olduğu gibi orderBy dizesinde virgülle ayrılır:

HTTP
GET
https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&orderBy=locationName,storeCode

Bir konumu güncelleme

locations.patch ile bir konumun bir veya daha fazla alanını güncellemek için My Business Business Information API'yi kullanın.

Bir konumun bir veya daha fazla alanını değiştirmek için aşağıdakileri kullanın:

HTTP

Alanları ve güncellenen değerleri konum alanıyla birlikte ekleyin ve fieldMask değeri olarak güncellenen alanların virgülle ayrılmış bir listesini kullanın.

PATCH
https://mybusinessbusinessinformation.googleapis.com/v1/locations/{locationId}?languageCode=language&validateOnly=True|False&updateMask=title
{
    "title": "Google Shoes"
}