正式發布前檢查清單

在 Google Cloud Console 中管理用戶端 ID 的位置

付費方案用戶端 ID 管理功能會從地圖「憑證」頁面上 Google Cloud 的支援入口網站,遷移至「服務帳戶」部分下方。

「憑證」頁面上新的用戶端 ID 部分

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

確認團隊成員具有必要資源的存取權限

妥善保存您收到的 Google 地圖平台付費方案歡迎信

重要性:這封歡迎信除了提供 Google 地圖平台付費方案入門套件,或許還能協助您初步排解平台相關問題。信中隨附多項重要資訊,例如您剛開始採用付費方案時,所需要用到的 Google Cloud Platform Console 專案 ID、用戶端 ID 和加密編譯金鑰;如果您有任何 Google Maps API 相關技術問題,需要聯絡付費方案支援團隊,從這封信中也能找到所有必要資訊。

使用 Google Cloud Console

重要性:您可以透過 Google Cloud Console 取得使用情況報表最新動態消息等資訊,還能存取開發人員資源。更重要的是,如果您在開發或發布過程中遇到任何技術問題,也可以透過這個 Cloud Console 向付費方案支援團隊提交客服案件

在發布之前,請將 Cloud Console 存取權授予所有負責維護應用程式的開發人員。這樣在遇到技術問題時,只要進入 Cloud Console,您的團隊成員就能與支援團隊聯絡,Google 支援團隊也能夠直接聯繫貴機構的相關人員。舉例來說,一旦系統偵測到可能會造成您應用程式故障的異常流量或行為,支援團隊就會視情況與貴機構聯絡。確保支援團隊能直接與相關開發人員聯繫,有助於及早採取對策來避免服務中斷,而不是等到服務突然中斷才想辦法解決問題。

訂閱通知電子郵件群組

重要性:建議您訂閱下列一或多個電子郵件群組,以利隨時掌握有關 Maps API 開發與異動的最新資訊。

訂閱相關通知動態消息

重要性:建議您訂閱相關通知動態消息 (請見常見問題的說明),以利隨時掌握有關 Maps API 開發與異動的最新資訊。

您也可以透過下列網址,訂閱「Google Maps Premier API 公告:服務中斷、最新消息與服務通知)」的 RSS 動態消息

http://google.force.com/services/xml/MapsRSS

記下支援專線,以備不時之需

美國地區的客戶支援服務電話號碼是 1-877-355-5787,美國境外客戶請撥打 +1 404-978-9282

重要性:熱線是您與支援團隊電話聯絡的管道。Cloud Console 會顯示各個國家/地區適用的電話號碼以及 PIN 碼。不過,雖然我們歡迎您透過支援熱線向支援團隊回報技術問題,但這支電話號碼主要是用在正式版應用程式故障,以及服務無法使用的情況。請參閱本文件中的說明,瞭解支援要求的優先順序:

最佳化應用程式

妥善設定防火牆以允許存取 Google 地圖平台服務

重要性:Google 地圖平台服務採用多個網域,但其中有部分並不屬於 *google.com 網域。如果您設定了防火牆來保護應用程式,請務必允許應用程式存取各個 Maps API 服務使用的網域。如果防火牆不允許存取這些網域,API 要求就會失敗,您的應用程式可能因此無法正常運作。請參閱 Maps API 使用的完整網域清單

由於與這些網域相關聯的 IP 並非靜態,因此我們不建議依 IP 位址管理防火牆限制。

注意事項:Google 地圖平台服務使用通訊埠 80 (http) 和 443 (https) 來處理連入和連出流量。這些服務也需要 GET、POST、PUT、DELETE 和 HEAD 要求,因此請根據 API 和用途設定防火牆,以允許這些通訊埠的流量和上述要求。

透過正確的安全資料傳輸層 (SSL) 主機名稱載入 API

重要性:如果應用程式是透過安全資料傳輸層 (SSL) 載入 Maps API,則應從 https://maps.googleapis.com 載入 (而非舊版主機名稱 https://maps-api-ssl.google.com)。

授權安全資料傳輸層 (SSL) 網域,以便搭配 Maps JavaScript API 使用

重要性:搭配安全資料傳輸層 (SSL) 網域使用 Maps JavaScript API 時,請務必明確授權 HTTPS 網域,確保要求不會遭到拒絕。請注意,授權 http://yourdomain.com 並不會自動啟用其安全資料傳輸層 (SSL) 對等項目 https://yourdomain.com;在 Cloud Console 中向下捲動到「用戶端 ID」部分,即可查看授權網域清單。要是搭配安全資料傳輸層 (SSL) 網域使用用戶端 API 時發生錯誤,需要排解,請檢查是否有任何網頁元素是透過 HTTP 載入。請參閱授權疑難排解指南。

選取適當的 API 版本

重要性:著手開發應用程式前,務必先確認有哪些 API 版本已經淘汰。採用有效的 API 版本來開發應用程式,就不必在已淘汰的 API 無法使用時另尋替代版本,不但有助縮短開發時間,長期下來還能節省成本。

此外,請務必瞭解 Maps JavaScript API 採用的版本管理架構,以免在環境中誤用不恰當的 API 版本。

舉例來說,您可以在開發或測試環境中使用實驗版 API,但我們強烈建議不要在實際執行環境中使用實驗版。我們的服務水準協議僅適用於穩定版 API,因此請務必在實際執行環境中使用該版本。

詳情請參閱 Maps JavaScript API 版本指南。

選擇用戶端或伺服器端設計

重要性:為確保應用程式能夠穩定運作且易於擴充,請務必根據架構來選擇用戶端或伺服器端設計。大致上,伺服器端設計應用於離線記錄 (即不在應用程式內的記錄) 的預先及後續處理作業,用戶端設計則適合用在應用程式與使用者互動的部分 (也就是即時處理使用者提交的要求)。

會發生超出配額及應用程式無法正常運作的情況,通常都是因為在該採用用戶端設計的部分部署了伺服器端設計。我們極力建議您先參閱地理編碼策略,再著手設計或發布需要仰賴伺服器端呼叫的應用程式。

最佳化配額用量

重要性:瞭解應用程式使用配額 (又稱為 Maps API 抵免額) 的方式有助於降低費用。舉例來說,如果您使用 Maps JavaScript API,每次您的應用程式載入地圖都會耗用 Maps API 抵免額。詳情請參閱付費方案使用費率和用量限制指南。

管理網路服務配額用量

重要性:根據預設,共用網路服務配額的每日免費要求為 100,000 次。如需各個 API 的配額明細,請參閱用量限制說明文件。您可以在 Cloud Console 中查看配額;如果有任何配額問題,請提交客服案件

在發布服務之前,請務必瞭解各種配額相關錯誤 (例如 OVER_QUERY_LIMITUser Rate Limit Exceeded),並在應用程式中設定適當的邏輯,這樣才能在超出配額時回應相關錯誤。建議您先詳閱用量限制常見問題。如要進一步瞭解各項 API 傳回的狀態碼,請參閱該 API 適用的開發人員指南;Directions API 狀態碼指南也有範例可供參考。瞭解相關概念並採行對應做法,能有效避免應用程式因耗用配額超出上限,而遭 Google 封鎖和/或服務中斷的情況。

對應用程式執行負載測試

重要性:對應用程式進行負載測試可確保應用程式能夠順利處理大量要求,而且不超出 Maps API 抵免額。

如果對即時 Google 服務進行負載測試,有可能導致應用程式耗用的配額超出上限,並遭到 Google 封鎖。Google 地圖平台能夠處理龐大的要求,比方說 2012 年時,聖誕老人追蹤器每秒處理的要求量就高達 160 萬筆,足以證明 Google 服務效能,因此您不需要另外對 Google 服務進行負載測試。不過您可以對自家應用程式進行負載測試,確保應用程式能夠處理大量要求,並且不超出 Maps API 抵免額。舉例來說,如果您的 Geocoding API 配額為 20 QPS (即每秒查詢 20 次),進行負載測試時,應確保自家應用程式能夠處理 600 QPS,但最多只傳送 20 QPS 給 Geocoding API。

如不想意外耗用配額,請以模擬 API 進行負載測試。模擬 API 可接收大量要求並傳回有效的回應,「不需要」經由 Google 地圖平台處理,因此您可以放心地對應用程式進行負載測試,不必擔心應用程式遭 Google 地圖平台封鎖。

請參考這個模擬 API 範例,其中以小型 Google App Engine 應用程式進行導入示範。您可以將這個範例上傳至您的 App Engine 應用程式 (請先在 appengine.google.com 登錄一個應用程式),然後讓應用程式傳送要求給該範例,而不是傳送給 maps.googleapis.com。

預設的 (免費) App Engine 配額通常就足夠用來對應用程式進行負載測試,不會超出 Maps API 網路服務配額。請確認您的應用程式已設定正確的User-Agent標頭,能啟用回應壓縮功能;啟用該功能可維持頻寬使用效率,對於傳送大量純文字 (JSON/XML) 回應的 App Engine 應用程式而言尤其重要。假如 App Engine 應用程式需要更多配額,您也可以啟用計費功能,不過通常不需要這麼做。

將應用程式從標準授權遷移至付費授權

在 API 要求中納入用戶端 ID 或 API 金鑰

重要性:在應用程式方面,其中一個重要步驟是將用戶端 ID (gme-yourclientid) 或 API 金鑰 (看起來像這樣:AIzaSyBdVl-cTICSwYKrZ95SuvNw7dbMuDt1KG0) 加進 API 要求中。有了用戶端 ID 或 API 金鑰,系統才會將您的要求視為 Google 地圖平台付費方案要求。

也就是說,您必須在應用程式中納入用戶端 ID 或 API 金鑰,才能使用付費方案提供的所有功能、享有技術支援服務,並確保應用程式受到服務水準協議的保障。

大多數 API 都可讓您選擇是要納入用戶端 ID,還是 API 金鑰。貴機構主要聯絡人收到的電子郵件歡迎信中會隨附用戶端 ID,或者,您也可以到 Google Cloud Platform Console 產生專用的 API 金鑰。

詳情請參閱驗證和授權指南。

在 API 要求中納入 API 金鑰或用戶端 ID (兩者只能擇一)

重要性:用戶端 ID 和 API 金鑰兩者只能「擇一納入」,這樣系統才能正確載入 Maps JavaScript API 或傳送要求給其他 Google Maps API。如果選擇使用用戶端 ID,請務必移除所有的 key 參數。如果要求中同時含有用戶端 ID 和金鑰,應用程式可能會發生非預期的行為或錯誤。

請參閱驗證與授權指南,詳細瞭解如何為每個 API 設定正確的付費方案要求格式。

使用用戶端 ID 時,請授權給網域,以便搭配 Maps JavaScript API 使用

重要性:為避免未經授權的網站使用您的用戶端 ID,您必須與 Google 支援團隊合作,將權限授予每個會使用用戶端 ID 的網站所屬的網域,以利使用 Maps JavaScript API (如果您使用 API 金鑰,則不需要註冊網址)。如果獲權使用用戶端 ID 的網址,與嘗試使用用戶端 ID 的網站不相符,您的網站就無法透過該用戶端 ID 來使用 API。您隨時都可以授權給網域,請務必在發布前,確認您已經將權限授予所有網站的所屬網域。

您可以在 Cloud Console 中查看授權網域清單,方法是前往「憑證」頁面,然後捲動至「用戶端 ID」部分。

如遇授權相關問題,建議您先參閱授權疑難排解指南,沒辦法自行排解再提交客服案件。

使用用戶端 ID 時,透過私人加密編譯金鑰產生的簽章來簽署網路服務要求

重要性:私人加密編譯金鑰可用來產生數位簽章,藉此告訴 Google 該要求來自可信任的來源。根據網路服務 API 規定,如果您使用用戶端 ID 進行驗證,則必須在要求中加入數位簽章,藉此多加一層安全防護,進一步保障用戶端 ID 的相關配額。貴機構主要聯絡人收到的電子郵件歡迎信中會隨附加密編譯金鑰 (例如 vNIXE0xscrmjlyV-12Nj_BvUPaw=)。

注意事項:加密編譯金鑰用來產生簽章,因此請勿將其當做簽章附加到要求中。此外,加密編譯金鑰就像是自動提款機的 PIN 碼,用來在存取帳戶時進行驗證,因此切勿透露或提供給不可靠的來源。我們的伺服器會拒絕未正確簽署的付費方案網路服務要求,因此您的應用程式必須在發布前正確簽署要求,詳情參閱驗證與授權指南。

追蹤應用程式使用情況

重要性:付費方案客戶可以查看應用程式使用情況的詳細報表,包括送出的要求數、耗用的抵免額及傳回的錯誤等等,詳情請見報表指南。

channel 參數是選用參數,可讓您為各個應用程式指派不同管道,藉此追蹤用戶端 ID 的使用情況。登錄管道參數時不需要提供用戶端 ID,只要將管道參數加進 API 要求,在 1 到 2 天內,支援入口網站的使用情況報表就會開始顯示各管道的使用情況結果。要在何處導入管道及使用情況資料的匯總方式,完全由您決定;請在發布應用程式前,決定是否要為應用程式整合管道參數,以追蹤應用程式使用情況。

channel 參數必須使用以下格式:

  • 必須是 ASCII 英數字串。
  • 可使用半形句號 (.)、底線 (_) 和連字號 (-) 字元。
  • channel 參數不區分大小寫;系統會合併全大寫、混合大小寫和全小寫的 channel 參數,只留下全小寫的參數。舉例來說,系統會將 CUSTOMER 管道的使用情況資料合併至 customer 管道。

每個用戶端 ID 最多可導入 2,000 個不同管道。

如要使用 channel 參數,請將該參數和用來傳送用戶端 ID 的 client 參數一併納進要求網址。

請注意,指定給每個應用程式的管道參數必須是靜態值,不可以用動態產生值來追蹤個別使用者。