把網路服務使用情形最佳化

注意事項:Google 地圖平台付費方案不再開放註冊或提供給新客戶。

總覽

當您的應用程式用量超過 Google 地圖平台網路服務的用量限制,系統就會傳回錯誤訊息。如果持續超出限制,應用程式可能會遭到封鎖,而無法存取網路服務,在某些情況下甚至會收到「403 禁止」回應。

如果應用程式的網路服務要求收到錯誤訊息,您可以執行下列操作:

  1. 藉由將應用程式最佳化來降低用量,進而提高網路服務使用效率。
  2. 如果可行,建議購買額外的 Maps API 抵免額,提高用量上限。

事前準備

在將應用程式的網路服務使用情形進行最佳化之前,請先確認您已根據用途需求,選用合適的服務及正確的 Maps API 授權。

確認用途需求

假如應用程式不需要使用者即時輸入內容,或不會用到網路瀏覽器,就非常適合採用 Google 地圖平台網路服務。舉例來說,如果應用程式使用的資料集與使用者輸入內容彼此獨立 (像是房地產網站上需要進行地理編碼的一組固定地址),則應使用網路服務。

請注意,採用網路服務時,不管發送的 IP 位址要求有多少個,您的付費方案授權都有每秒查詢次數 (QPS) 上限。

另外,Maps JavaScript API 用戶端服務的每瀏覽器工作階段也有頻率限制,因此系統會在所有使用者之間平均分配可傳送的要求數,並隨著人數增長來調整資源配置。基於上述原因,會由使用者即時輸入地理編碼地址的應用程式最適合採用用戶端服務,例如可讓使用者搜尋自家地址附近門市據點的店家搜尋器。

如需網路服務適用時機的詳細介紹,請參閱地理編碼策略。雖然上文是以地理編碼為例,但本文件中提供的相關建議也適用於所有網路服務,其中會說明適合採用伺服器端及用戶端網路服務的時機。

使用 Google 地圖平台付費方案授權

確認您的應用程式要求內含 Google 地圖平台付費方案授權的正確驗證詳細資料,即您的用戶端 ID 或 Google Cloud Platform Console 付費方案的 API 金鑰。

如果您的應用程式未正確使用付費方案授權,就會受限於標準方案的用量限制及 Google 地圖平台服務條款的授權限制規定。而且您將無法享有付費方案服務水準協議的權益,也無法獲得應用程式技術支援。

如何將網路服務使用情形最佳化

如要提升網路服務的使用效率,您可以只在有需要時才傳送要求,並平均分配用量以免超過限制,藉此減少整體用量。

快取結果

根據《Google 地圖平台服務條款》第 3.2.4.b 節的規定,您可以暫時快取 Google 地圖資料 (最多保留 30 天),以提升應用程式效能。快取網路服務的回應可避免應用程式在短時間內傳送重複的要求。實際上,網路服務回應一律會包含 Cache-Control HTTP 標頭,指出您可以將快取結果留存多長的時間,例如 Cache-Control: public, max-age=86400。為提高效率,請確保應用程式快取結果至少保留長達該標頭指示的期間,但不要超過《Google 地圖平台服務條款》規定的時間。

您可以使用網路 Proxy 來導入快取,其中大部分功能都可立即執行。 或者,您可以使用自己的網路 Proxy 服務。請注意,部分 HTTP 用戶端程式庫也會快取 HTTP 回應。

如要提高快取命中率,請務必將緯度/經度座標標準化 (四捨五入至小數點後第 6 位),以達到赤道周圍約 11 公分的精確度。網路服務的結果不會因為小數位數增加而改變,但快取命中率會降低。

調節要求數

為避免超出用量限制,您可以設定應用程式,將要求排入佇列以掌握要求傳送時間,藉此調節要求數量。假如應用程式在超過每秒查詢次數限制後又收到額外要求,則應檢查第一個要求的時間戳記並等待 1 秒鐘。

即使已有調節限制,應用程式仍可能會收到狀態碼為 OVER_QUERY_LIMIT 的回應。您可以將應用程式設為在收到這類回應時,先稍微延遲 (20 毫秒) 再重試。

提高每秒查詢次數限制

假如您已正確導入調節設定,則應用程式應該就不會傳送超出用量限制的要求數。不過,應用程式可能會收到過大的輸入內容,或是傳送頻率高於 Google 地圖平台網路服務用量限制 (每秒查詢 50 次)。在這種情況下,調節佇列可能會變得很長,因而產生待處理要求。此外,Places API 的初始限制為每秒查詢 50 次。如果您的應用程式持續收到這類待處理作業 (無論是每天特定時段或整天都會收到),可能就需要提高 Google 地圖平台付費方案的每秒查詢次數限制。如要申請提高每秒查詢次數,請聯絡您的 Google 地圖平台銷售客戶經理。