Optimieren der Webdienstnutzung

Übersicht

Wenn Ihre Anwendung die Nutzungsbeschränkungen für einen Google Maps APIs-Webdienst überschreitet, gibt der Dienst eine Fehlermeldung zurück. Werden die Nutzungsbeschränkungen von Ihrer Anwendung auch weiterhin überschritten, wird der Zugriff durch die Anwendung auf den Webdienst möglicherweise gesperrt und Sie erhalten in einigen Fällen Antworten vom Typ „403 Forbidden“.

Falls als Antwort auf die Webdienstanforderungen Ihrer Anwendung Fehlermeldungen eingehen, können Sie folgende Schritte durchführen:

  1. Senken der Nutzung, indem Sie Anwendungen für eine effizientere Nutzung der Webdienste optimieren.
  2. Erhöhen der Nutzungsbeschränkung, sofern möglich, durch Erwerb zusätzlicher Maps APIs Credits.

Vor dem Start

Bevor Sie die Webdienstnutzung Ihrer Anwendung optimieren, müssen Sie überprüfen, ob Sie den richtigen Dienst für den gewünschten Anwendungsfall und die richtige Maps APIs-Lizenz verwenden.

Anwendungsfall überprüfen

Google Maps APIs-Webdienste eignen sich am besten für Anwendungen, bei denen keine Eingabe in Echtzeit von Nutzern erforderlich ist oder wenn kein Webbrowser verwendet wird. Sie sollten beispielsweise dann Webdienste verwenden, wenn Ihre Anwendung ein Dataset nutzt, das von der Nutzereingabe unabhängig ist. Dies kann zum Beispiel ein fester Satz von Adressen auf einer Immobilienwebsite sein, die geocodiert werden müssen.

Beachten Sie, dass sich bei Verwendung von Webdiensten der QPS-Grenzwert (Queries per Second, Abfragen pro Sekunde) auf Ihre Premium Plan-Lizenz bezieht, unabhängig davon, von wie vielen IP-Adressen Anforderungen gesendet wurden.

Andererseits gelten für die clientseitigen Dienste, die mit der Google Maps JavaScript API verfügbar sind, Beschränkungen pro Browsersitzung, sodass Anforderungen auf alle Nutzer verteilt und skaliert werden, wenn die Nutzeranzahl steigt. Daher sind clientseitige Dienste am besten für Anwendungen geeignet, die Adresseingaben von Nutzern in Echtzeit geocodieren. Dies kann zum Beispiel ein Filialfinder sein, der in der Nähe der Adresse eines Nutzers nach Filialen sucht.

Eine eingehendere Erläuterung, wann Webdienste verwendet werden sollten, finden Sie unter Geocoding-Strategien. Obwohl sie speziell für Geocoding verfasst wurden, gelten die Empfehlungen in diesem Dokument für alle Webdienste. Darin wird erläutert, wann Sie serverseitige und wann clientseitige Webdienste verwenden sollten.

Google Maps APIs Premium Plan-Lizenz verwenden

Stellen Sie sicher, dass die Anforderungen Ihrer Anwendung die richtigen Authentifizierungsdaten für Ihre Google Maps APIs Premium Plan-Lizenz enthalten, d. h. Ihre Client-ID oder einen API-Schlüssel aus Ihrem Premium Plan-Projekt in der Google API Console.

Wenn die Premium Plan-Lizenz von Ihrer Anwendung nicht korrekt verwendet wird, unterliegt sie den Nutzungsbeschränkungen des Standard Plans und den Bedingungen der Nutzungsbeschränkungen und ist nicht durch das Premium Plan-SLA abgedeckt. Darüber hinaus erhalten Sie keinen technischen Support für die Anwendung.

Optimieren der Webdienstnutzung

Um Webdienste effizienter zu verwenden, können Sie die Nutzung senken, indem Sie Anforderungen nur dann senden, wenn dies erforderlich ist. Zudem können Sie die Nutzung gleichmäßig verteilen, damit die Grenzwerte nicht überschritten werden.

Ergebnisse zwischenspeichern

In Abschnitt 10.5.d der Nutzungsbedingungen für die Maps API ist festgelegt, dass Sie Google Maps-Daten vorübergehend für einen Zeitraum von bis zu 30 Tagen zwischenspeichern können, um die Leistung Ihrer Anwendung zu verbessern. Durch das Zwischenspeichern von Webdienstantworten kann Ihre Anwendung vermeiden, dass in kurzen zeitlichen Abständen doppelte Anforderungen gesendet werden. Antworten von Webdiensten enthalten immer den HTTP-Header Cache-Control, der den Zeitraum angibt, für den das Ergebnis zwischengespeichert werden kann. Beispiel: Cache-Control: public, max-age=86400. Aus Effizienzgründen sollten Sie sicherstellen, dass Ihre Anwendung Ergebnisse immer mindestens so lange zwischenspeichert, wie in diesem Header angegeben ist. Der in den Nutzungsbedingungen der Maps APIs angegebene maximale Zeitraum darf aber nicht überschritten werden.

Caching kann mithilfe von Webproxys implementiert werden. Die Durchführung dieser Funktion ist im Lieferumfang der meisten Webproxys enthalten. Sie können aber auch Ihre eigene Webproxy-Implementierung verwenden. Beachten Sie, dass HTTP-Antworten auch von einigen HTTP-Clientbibliotheken zwischengespeichert werden.

Zur Erhöhung der Cache-Trefferraten sollten Längen-/Breitenkoordinaten („lat/long“) durch Rundung auf 6 Dezimalstellen normalisiert werden. Dadurch wird eine Genauigkeit von ca. 11 Zentimetern rund um den Äquator erzielt. Werden weitere Dezimalstellen hinzugefügt, ändern sich die Ergebnisse der Webdienste nicht, aber die Cache-Trefferraten sinken.

Anforderungen begrenzen

Um ein Überschreiten der Nutzungsbeschränkungen zu verhindern, können Sie eine Anforderungsbegrenzung für Ihre Anwendung konfigurieren, indem Sie die Anforderungen in eine Warteschlange stellen, die nachverfolgt, wann die Anforderungen gesendet wurden. Wenn Ihre Anwendung eine zusätzliche Anforderung erhält, die über den QPS-Grenzwert hinausgeht, sollte der Zeitstempel der ersten Anforderung geprüft und dann 1 Sekunde lang gewartet werden.

Auch wenn die Begrenzung eingesetzt wird, erhalten Anwendungen möglicherweise weiterhin Antworten mit dem Statuscode OVER_QUERY_LIMIT. Konfigurieren Sie Ihre Anwendung so, dass eine kurze Verzögerung (20 ms) eingefügt wird, und versuchen Sie es erneut, wenn eine solche Antwort eingeht.

QPS-Grenzwert erhöhen

Wenn die Begrenzung korrekt implementiert wurde, sollte Ihre Anwendung keine über die Nutzungsbeschränkungen hinausgehenden Anforderungen senden. Es kann jedoch geschehen, dass Ihre Anwendung Eingaben in größerem Umfang oder mit höheren Geschwindigkeiten erhält, als aufgrund der Nutzungsbeschränkungen für die Webdienste zulässig ist (üblicherweise 50 QPS). Die Warteschlangen zur Begrenzung können dann erheblich anwachsen, sodass ein Backlog mit ausstehenden Anforderungen entsteht. Der Places API Web Service ist außerdem anfangs auf 5 QPS begrenzt. Wenn Ihre Anwendung durchgängig ein solches Backlog erhält, und zwar entweder täglich zu bestimmten Zeiten oder ganztägig, müssen Sie möglicherweise die QPS-Grenzwerte für Ihre Google Maps APIs Premium Plan-Lizenz erhöhen. Wenn Sie höhere QPS-Grenzwerte benötigen, wenden Sie sich an Ihren Google Maps APIs Sales Account Manager.