使用位置資料

本教學課程說明如何建立及編輯位置資料。My Business Business Information API 可讓你執行下列操作:

地點可用於 Google Ads,但必須通過驗證,才能在 Google 搜尋和 Google 地圖上顯示。位置資料是以 accounts.locations 集合表示。

事前準備

使用 My Business Information API 前,您必須先註冊應用程式並取得 OAuth 2.0 憑證。如要進一步瞭解如何開始使用 My Business Business Information API,請參閱「基本設定」。

建立地點

您可以使用 My Business Information API,透過 accounts.locations.create 為商家建立新的地點。

如要建立地點,請使用下列指令:

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"
      }
     }
}

刪除位置

您可以使用 My Business Business Information API 刪除 locations.delete 中的地點。

如要刪除位置,請按照下列步驟進行:

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

按名稱取得地點

如果您的帳戶有多個相關聯的商家,建議您取得單一地點。您可以依商家名稱進行篩選,使用 locations.get 取得特定位置。

如要按名稱取得地點,請使用下列指令。您必須指定 readMask 來擷取特定欄位。:

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

傳回 Google 地圖版本

HTTP

如要傳回地點的 Google 地圖版本,請在要求網址中加入 googleUpdated,如以下範例所示:

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

如果沒有結果,系統會傳回 404 NOT FOUND HTTP 狀態碼。如要進一步瞭解如何管理 Google 資訊更新,請參閱這篇文章

列出位置

管理一或多個地點時,建議您列出與您帳戶相關聯的所有地點。使用 accounts.locations.list API 列出與使用者相關聯的所有地點,

如要列出已驗證使用者直接擁有或管理的所有位置,請使用下列指令:

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

在要求網址中,為帳戶使用 '-' 萬用字元,納入間接擁有的商家資訊 (透過群組擁有或管理):

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

列出位置時篩選結果

HTTP

您可以使用篩選器來限制呼叫 accounts.locations.list 時傳回的結果。 如要篩選要求,請將篩選運算式附加至基本網址,如以下範例所示:

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

基本查詢語法

限制的語法如下:<field><operator><value>,其中運算子為 EQUALS (=) 或 HAS (:)。EQUALS (=) 和 HAS (:) 運算子等於所有欄位,但 locationName 除外 (請參閱下表)。

半形引號的編碼為「%22」,空格則以加號 (+) 表示。

除非另有註明,否則所有比較均不區分大小寫。舉例來說,「4 雲端硬碟」的比對結果會與「4, Privet Drive」相符。

在篩選器查詢中合併多個欄位

API 允許 AND 連結所有欄位限制。不過,如果是 OR 關鍵字,所有限制都必須套用至同一個欄位。例如:不得使用 locationName=Alabels=B

範例

以下範例顯示的篩選器運算式會傳回所有名為「Pepé Le Pew」的位置。它會顯示「french_restaurant」或「european_restaurant」的類別,以及「新開放」標籤。

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

依距離或帳戶搜尋

以下範例說明如何從某個地理位置搜尋特定距離內的地點:

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

如要篩選美國科羅拉多州博爾德 1000 英里內的地點:

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

所有支援的篩選器欄位清單

以下完整列出可用於篩選的所有欄位:

Fields 說明和範例
字串比對欄位
title

商家的實際名稱

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=title:"Bajis" (比對任何地點名稱並以「Bajis」為子字串)

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=title="Bajis" (比對任何地點名稱,以「Bajis」做為符記/字詞)

categories

主要類別和其他類別的組合。 請注意,「gcid:」必須省略。如有多個類別,只要至少有一個類別與這個模式相符,這個篩選器就會進行比對。

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

phone_numbers.primary_phone

主要電話號碼,格式為 E.164 (例如「+441234567890」)。

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

storefront_address.region_code

地址所在國家/地區的 CLDR 區碼

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

storefront_address.administrative_area

國家/地區郵寄地址最高的行政區

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

storefront_address.locality

地址的縣市/鄉鎮部分

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

storefront_address.postal_code

地址的郵遞區號

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

metadata.place_id

如果這個地點已通過驗證,且已連結到/顯示在 Google 地圖上,則這個欄位會等於該地點的地點 ID

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

openInfo.status

指出該地點目前是否營業中 (OPENCLOSED_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

一組任意形式的字串,讓您可以標記商家。與其他所有欄位相比,這個值必須與包含大小寫在內的完整標籤完全相符,而非只有符記。舉例來說,如果標籤是「XX YY」,則「XX」或「xx yy」都不相符。

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

storeCode

這個位置的外部 ID,在單一帳戶中不得重複

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

函式
distance

可讓您根據地點與地理位置之間的距離進行篩選。

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

按照查詢欄位排序

您可依商家名稱或商店代碼,以遞增或遞減順序排列結果。如有多項排序條件,請在 orderBy 字串中以半形逗號分隔,如以下範例所示:

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

修補位置

使用 My Business Information API,透過 locations.patch 更新地點的一或多個欄位。

如要變更某個地點的一或多個欄位,請使用下列方式:

HTTP

根據位置欄位新增欄位和更新的值,並使用以半形逗號分隔的已更新欄位清單做為 fieldMask 的值。

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