Błąd: kGMSPlacesRateLimitExceeded
Pakiet SDK Miejsc na iOS korzysta z modelu płatności według wykorzystania. Żądania pakietu Places API dla iOS dotyczące interfejsu Places API są rozliczane według kodu SKU. Oprócz ogólnych Warunków korzystania z usług Google obowiązują limity wykorzystania związane z pakietem Places SDK na iOS. Zarządzaj kosztami i korzystaniem z nich za pomocą narzędzi dostępnych w Google Cloud Console.
Sposób rozliczania pakietu SDK Miejsc na iOS
Pakiet SDK Miejsc na iOS wykorzystuje model płatności według wykorzystania. Interfejsy API i pakiety SDK Google Maps Platform są rozliczane zgodnie z kodami SKU. Wykorzystanie jest śledzone dla każdego kodu SKU, a każdy interfejs API lub pakiet SDK może mieć więcej niż 1 kod SKU produktu. Koszt jest obliczany przez
Za pomocą naszego kalkulatora cen i użycia możesz oszacować koszt wykorzystania interfejsu API lub pakietu SDK. Kwalifikujące się kody SKU Google Maps Platform są dostępne w przypadku każdego konta rozliczeniowego w wysokości 200 USD miesięcznie. Te środki są automatycznie stosowane1 do kwalifikujących się kodów SKU.
Cennik pakietu Places SDK dla iOS
Sesje autouzupełniania
Sesja autouzupełniania zawiera kilka żądań autouzupełniania (aby pobrać sugestie dotyczące miejsca w przypadku danego typu użytkownika) i maksymalnie jedno żądanie szczegółów dotyczących miejsc (aby uzyskać szczegółowe informacje o miejscu wybranym przez użytkownika). Ten sam token sesji jest przekazywany do autouzupełniania i kolejnego żądania szczegółów miejsca. Sesja rozpoczyna się od pierwszego żądania autouzupełniania (co zwykle ma miejsce, gdy użytkownik zaczyna pisać). Wywołanie informacji o miejscach jest wykonywane, gdy użytkownik wybierze jedną z sugestii autouzupełniania. Jeśli użytkownik nie wybierze sugestii, wywołanie szczegółów miejsca nie zostanie wykonane.
Gdy użytkownik wybierze miejsce (tj. nastąpi wywołanie szczegółów miejsca), musisz rozpocząć nową sesję, używając nowego tokena sesji.
Sesje autouzupełniania mogą być generowane za pomocą tych interfejsów API:
- Usługa autouzupełniania miejsc w interfejsie Places API lub usługa autouzupełniania w interfejsie Maps JavaScript API. Musisz zaprojektować aplikację, aby dostarczyć tokeny sesji (może być konieczna zmiana istniejącego kodu).
- Widżet autouzupełniania w interfejsie Maps JavaScript API. Płatności w oparciu o sesje są automatycznie włączone w tych widżetach bez konieczności wprowadzania zmian w kodzie.
Token sesji jest przydatny w przypadku jednej sesji użytkownika, a nie więcej niż 1 sesji użytkownika. Jeśli ponownie użyjesz tokena sesji, zostanie ona uznana za nieprawidłową, a opłaty za żądania będą wyglądać tak, jakby nie został podany token sesji.
Żądania autouzupełniania i żądania szczegółów miejsc korzystające z sesji są rozliczane na podstawie różnych kodów SKU.
Informacje o kodach SKU danych
Trzy kody SKU danych z Miejsc to: Dane podstawowe, Dane kontaktowe i Dane dotyczące atmosfery.Co najmniej 1 kod SKU danych jest aktywowany dla:
- Android: każde żądanie kierowane na platformę
fetchPlace()
lubfindCurrentPlace()
- iOS: każde wywołanie
fetchPlaceFromPlaceID:
lubfindPlaceLikelihoodsFromCurrentLocationWithPlaceFields:
. - Usługa internetowa: każde żądanie dotyczące Miejsc w zależności od pól określonych w żądaniu.
Za SKU, które wywołały żądanie, są zawsze pobierane dodatkowe kody SKU. Na przykład żądanie dotyczące szczegółów miejsca, w tym pola danych podstawowych, zostanie obciążone zarówno SKU danych podstawowych, jak i kodem SKU szczegółów miejsca.
SKU: dane podstawowe
Używając parametru pól w żądaniu szczegółów miejsca lub żądania Znajdź miejsce, możesz ograniczyć odpowiedź tylko do tych pól. Pola w kategorii Podstawowe są zawarte w podstawowym koszcie żądania dotyczącego miejsc i nie powodują naliczania dodatkowych opłat. Kod SKU danych podstawowych jest wywoływany, gdy dowolne z tych pól jest żądane:
-
Android:
Place.Field.ADDRESS
,Place.Field.ADDRESS_COMPONENTS
,Place.Field.BUSINESS_STATUS
,Place.Field.ICON_BACKGROUND_COLOR
,Place.Field.ICON_URL
,Place.Field.ID
,Place.Field.LAT_LNG
,Place.Field.NAME
,Place.Field.PHOTO_METADATAS
,Place.Field.PLUS_CODE
,Place.Field.TYPES
,Place.Field.VIEWPORT
,Place.Field.UTC_OFFSET
lubPlace.Field.WHEELCHAIR_ACCESSIBLE_ENTRANCE
-
iOS:
GMSPlaceFieldFormattedAddress
,GMSPlaceFieldBusinesssStatus
,GMSPlaceFieldID
,GMSPlaceFieldCoordinate
,GMSPlaceFieldName
,GMSPlaceFieldPhotos
,GMSPlaceFieldPlusCode
,GMSPlaceFieldTypes
lubGMSPlaceFieldViewport
-
Usługa internetowa:
address_component
,adr_address
,business_status
,formatted_address
,geometry
,icon
,name
,permanently_closed
,photo
,place_id
,plus_code
,type
,url
,utc_offset
,vicinity
lubwheelchair_accessible_entrance
ZAKRES LICZBA DANYCH MIESIĘCZNYCH (cena za połączenie) |
||
---|---|---|
Koszt zamówionych miejsc + 0,00 USD |
Koszt zamówionych miejsc + 0,00 USD |
Koszt zamówionych miejsc + 0,00 USD |
SKU: dane kontaktowe
Używając parametru pól w szczegółach miejsca lub żądania Znajdź miejsce dla usług internetowych albo tablicy Place.Field
w przypadku Androida lub iOS, możesz ograniczyć odpowiedź tylko do tych określonych pól. Pola w kategorii Kontakt powodują naliczenie dodatkowej opłaty. Kod SKU danych kontaktowych jest wywoływany, gdy wymagane jest dowolne z tych pól:
-
Android:
Place.Field.CURRENT_OPENING_HOURS
,Place.Field.OPENING_HOURS
,Place.Field.PHONE_NUMBER
,Place.Field.SECONDARY_OPENING_HOURS
lubPlace.Field.WEBSITE_URI
-
iOS:
GMSPlaceFieldOpeningHours
,GMSPlaceFieldPhoneNumber
lubGMSPlaceFieldWebsite
-
Usługa internetowa:
formatted_phone_number
,international_phone_number
,opening_hours
,current_opening_hours
,secondary_opening_hours
lubwebsite
ZAKRES LICZBA DANYCH MIESIĘCZNYCH (cena za połączenie) |
||
---|---|---|
Koszt wniosku o miejsca + 0,003 USD za każde zamówienie (+ 3,00 USD za 1000) |
Koszt żądania dotyczącego miejsc + 0,0024 USD za każde zamówienie (+ 2,40 USD za 1000) |
Skontaktuj się z zespołem sprzedaży, żeby zapytać o cenę sprzedaży. |
SKU: dane o atmosferze
Używając parametru pól w żądaniu szczegółów miejsca lub żądania Znajdź miejsce, możesz ograniczyć odpowiedź tylko do tych pól. Pola w kategorii Atmosfera powodują naliczenie dodatkowej opłaty. Kod SKU danych atmosfery jest wywoływany, gdy wymagane jest dowolne z tych pól:
- Android:
Place.Field.CURBSIDE_PICKUP
,Place.Field.DELIVERY
,Place.Field.EDITORIAL_SUMMARY
,Place.Field.DINE_IN
,Place.Field.PRICE_LEVEL
,Place.Field.RATING
,Place.Field.RESERVABLE
,Place.Field.SERVES_BEER
,Place.Field.SERVES_BREAKFAST
,Place.Field.SERVES_BRUNCH
,Place.Field.SERVES_DINNER
,Place.Field.SERVES_LUNCH
,Place.Field.SERVES_VEGETARIAN_FOOD
,Place.Field.SERVES_WINE
,Place.Field.TAKEOUT
lubPlace.Field.USER_RATINGS_TOTAL
- iOS:
GMSPlaceFieldPriceLevel
,GMSPlaceFieldRating
,GMSPlaceFieldUserRatingsTotal
,GMSPlaceFieldTakeout
,GMSPlaceFieldDelivery
,GMSPlaceFieldDineIn
,GMSPlaceFieldCurbsidePickup
,GMSPlaceFieldReservable
,GMSPlaceFieldServesBreakfast
,GMSPlaceFieldServesLunch
,GMSPlaceFieldServesDinner
,GMSPlaceFieldServesBeer
,GMSPlaceFieldServesWine
,GMSPlaceFieldServesBrunch
lubGMSPlaceFieldServesVegetarianFood
. - JavaScript: zobacz Pola (szczegóły miejsca).
- Usługa internetowa:
curbside_pickup
,delivery
,dine_in
,editorial_summary
,price_level
,rating
,reservable
,reviews
,serves_beer
,serves_breakfast
,serves_brunch
,serves_dinner
,serves_lunch
,serves_vegetarian_food
,serves_wine
,takeout
lubuser_ratings_total
.
ZAKRES LICZBA DANYCH MIESIĘCZNYCH (cena za połączenie) |
||
---|---|---|
Koszt wniosku o miejsca + 0,005 USD za każde (+ 5,00 USD za 1000) |
Koszt żądania dotyczącego miejsc + 0,004 USD za każde zamówienie (+ 4,00 USD za 1000) |
Skontaktuj się z zespołem sprzedaży, żeby zapytać o cenę sprzedaży. |
SKU: autouzupełnianie – na żądanie
Kod SKU autouzupełniania na żądanie jest obciążany w przypadku wszelkich wywołań lub żądań, które nie zawierają tokena sesji.
- Android:
findAutocompletePredictions()
- iOS:
findAutocompletePredictionsFromQuery:
- JavaScript: usługa autouzupełniania interfejsu JavaScript API Map Google
- Usługa internetowa: usługa autouzupełniania miejsc w interfejsie Place API
Za połączenia nawiązane z nieprawidłowej sesji autouzupełniania (na przykład za pomocą tokena ponownie użytego w sesji) pobierany jest też koszt autouzupełniania na żądanie.
Żądania autouzupełniania z widżetu autouzupełniania w interfejsie JavaScript Map Google mogą być obciążane opłatami za autouzupełnianie w przypadku żądań wywołania z nieprawidłowej sesji autouzupełniania. Może się to zdarzyć, gdy użytkownik wpisuje wiele różnych adresów lub kopiuje i wkleja różne adresy do widżetu i nie zawsze wybierają podpowiedzi autouzupełniania.
ZAKRES LICZBA DANYCH MIESIĘCZNYCH (cena za żądanie) |
||
---|---|---|
0,00283 USD za każde (2,83 USD za 1000) |
0,00227 USD za każde (2,27 USD za 1000) |
Skontaktuj się z zespołem sprzedaży, żeby zapytać o cenę sprzedaży. |
SKU: autouzupełnianie bez szczegółowych informacji o miejscu – za sesję
Kod SKU autouzupełniania bez szczegółowych informacji o miejscu jest naliczany za sesję autouzupełniania, która nie obejmuje żądania informacji o miejscu (w ciągu kilku minut od rozpoczęcia sesji).
ZAKRES LICZBA DANYCH MIESIĘCZNYCH (cena za serię) |
||
---|---|---|
0,017 USD za każde (17,00 USD za 1000) |
0,0136 USD za każde (13,60 USD za 1000) |
Skontaktuj się z zespołem sprzedaży, żeby zapytać o cenę sprzedaży. |
Przykład
Jeśli Twoja aplikacja wywoła te 2 połączenia w ramach 1 sesji:
Android
- findAutocompletePredictions() (.setQuery(par), .setSessionToken(XYZ))
- findAutocompletePredictions() (.setQuery(”pary”), .setSessionToken(XYZ))
iOS
- placesClient?.findAutocompletePredictions(fromQuery: "par" ...
- placesClient?.findAutocompletePredictions(fromQuery: "paryski" ...
Usługa internetowa
- Żądanie autouzupełniania miejsca (input=”par”, session_token: XYZ)
- Żądanie autouzupełniania miejsca (input=”paris”, session_token: XYZ)
Na Twoim rachunku pojawi się numer SKU (podczas wyświetlania rachunku według kodu SKU):
- Autouzupełnianie bez szczegółowych informacji o miejscu – za sesję (cena od 0,017 USD za sesję)
SKU: autouzupełnianie (wraz ze szczegółami miejsca) – na sesję
Opłata za autouzupełnianie (wraz ze szczegółami miejsca) – na sesję jest naliczana za każdą sesję autouzupełniania, która obejmuje:
- Android: połączenie z numerem
fetchPlace()
- iOS: połączenie z numerem
fetchPlaceFromPlaceID:
- Usługa internetowa: żądanie szczegółów dotyczących miejsca
Prośba o autouzupełnianie jest dostępna bezpłatnie, a kolejne wywołanie szczegółów miejsca jest obciążane standardowymi cenami szczegółów miejsca.
Żądanie szczegółów miejsca generuje kody SKU danych (podstawowe, kontaktowe lub atmosferowe) w zależności od pól określonych w żądaniu.
Jeśli nie określisz pól w żądaniu szczegółów miejsca, zostaną aktywowane wszystkie kody SKU danych (podstawowe, kontakt i atmosfera).
Żądania odświeżania identyfikatora miejsca (żądania, które podczas pola autouzupełniania używają tylko pola place_id
) są rozliczane według SKU: Autouzupełnianie bez szczegółów miejsca – na sesję.
ZAKRES LICZBA DANYCH MIESIĘCZNYCH (cena za serię) |
||
---|---|---|
0,00 USD | 0,00 USD | 0,00 USD |
Przykład
Jeśli aplikacja wywoła w ramach jednej sesji te 3 wywołania:
Android
- findAutocompletePredictions() (.setQuery(par), .setSessionToken(XYZ))
- findAutocompletePredictions() (.setQuery(”pary”), .setSessionToken(XYZ))
- fetchPlace() (z
FetchPlaceRequest
, w tym identyfikatorem miejsca i polem ADDRESS)
iOS
- placesClient?.findAutocompletePredictions(fromQuery: "par" ...
- placesClient?.findAutocompletePredictions(fromQuery: "paryski" ...
- fetchPlaceFromPlaceID:
(w tym identyfikator miejsca i pole
GMSPlaceFieldFormattedAddress
)
Usługa internetowa
- Żądanie autouzupełniania miejsc (input=”par”, session_token: XYZ)
- Żądanie autouzupełniania miejsc (input=”paris”, session_token: XYZ)
- Miejsca – szczegóły (place_id, session_token: XYZ, fields:formatted_address)
Na rachunku będą widoczne te kody SKU (podczas wyświetlania rachunku według kodów SKU):
- Autouzupełnianie (z uwzględnieniem szczegółów miejsca) – za sesję (opłata 0,00 USD)
- Szczegóły miejsca (cena od 0,017 USD za sesję)
- Dane podstawowe (opłata 0.00 PLN)
SKU: szczegóły miejsca
Opłaty za połączenia z informacjami o miejscu są naliczane w ten sposób:
ZAKRES LICZBA DANYCH MIESIĘCZNYCH (cena za połączenie) |
||
---|---|---|
0,017 USD za każde (17,00 USD za 1000) |
0,0136 USD za każde (13,60 USD za 1000) |
Skontaktuj się z zespołem sprzedaży, żeby zapytać o cenę sprzedaży. |
Kod SKU miejsca jest generowany na podstawie tych interfejsów API:
- Android: pakiet SDK Miejsc na Androida (
fetchPlace()
) - iOS: pakiet SDK Miejsc na iOS (
fetchPlaceFromPlaceID:
) - JavaScript:
usługa szczegółów miejsca interfejsu Maps JavaScript API (
getDetails
). - JavaScript:
widżet autouzupełniania w interfejsie Maps JavaScript API (
getPlace
) - JavaScript:
Widżet widżetu PlaceSearchBox interfejsu API JavaScript Map: metoda
getPlaces()
, gdy użytkownik wybierze wynik miejsca (ikona: pinezka), *nie* (ikona: lupa), jak widać na tej ilustracji:Gdy zobaczysz w polu wyszukiwania widżet „pizza”, zobaczysz, że obok niego znajduje się pinezka, a nie jest oznaczona pinezką – (i i tak). - Usługa internetowa: Usługa szczegółów miejsca w interfejsie Places API
Za pomocą internetowego interfejsu API i usług kod SKU szczegółów miejsca jest naliczany niezależnie od tego, czy token sesji został dostarczony.
Wywołanie lub żądanie szczegółów miejsca generuje też kody SKU (podstawowe, kontakt lub atmosfera) w zależności od pól określonych w wywołaniu lub żądaniu. Jeśli w wywołaniu lub żądaniu miejsca podasz informacje o polu NIE, wywoływane są WSZYSTKIE kody SKU danych, a za opłatę za wywołanie lub żądanie informacji o miejscach pobierana jest opłata oraz koszt wszystkich danych.
Przykłady
- Wykonaj jedną z tych połączeń lub próśb:
- W przypadku urządzeń mobilnych: wywołaj funkcję
fetchPlace()
na Androidzie lubfetchPlaceFromPlaceID:
na urządzeniu z iOS i określ tylko poleADDRESS
- Interfejs Web API lub usługa: wyślij żądanie dotyczące szczegółów miejsca i podaj tylko pole adresu:
getPlaceDetails(fields: formatted_address)
- Szczegóły miejsca (cena od 0,017 USD za sesję)
- Dane podstawowe (opłata 0.00 PLN)
- W przypadku urządzeń mobilnych: wywołaj funkcję
- Wykonaj jedną z tych połączeń lub próśb:
- W przypadku urządzeń mobilnych: wywołaj funkcję
fetchPlace()
na Androidzie lubfetchPlaceFromPlaceID:
na urządzeniu z iOS i określ tylko polePHONE_NUMBER
- Interfejs Web API lub usługa: wyślij żądanie dotyczące szczegółów miejsca i określ pole numeru telefonu:
getPlaceDetails(fields: formatted_phone_number)
- Szczegóły miejsca (cena od 0,017 USD za sesję)
- Dane kontaktowe (cena już od 0,003 USD za żądanie)
- W przypadku urządzeń mobilnych: wywołaj funkcję
- Wykonaj jedną z tych połączeń lub próśb:
- Komórka: wywołaj funkcję
fetchPlace()
na Androidzie lubfetchPlaceFromPlaceID:
na urządzeniu z iOS i określ wszystkie pola - Interfejs Web API lub usługa: wyślij żądanie dotyczące szczegółów miejsca i określ wszystkie pola (tego typu żądania są domyślne, jeśli nie określisz żadnych pól):
getPlaceDetails()
.
- Szczegóły miejsca (cena od 0,017 USD za sesję)
- Dane podstawowe (opłata 0.00 PLN)
- Dane kontaktowe (cena już od 0,003 USD za żądanie)
- Dane dotyczące atmosfery (cena od 0,005 USD za żądanie)
- Komórka: wywołaj funkcję
SKU: znajdź bieżące miejsce
Opłata za Znajdowanie bieżącego miejsca jest naliczana za połączenia do findCurrentPlace()
(Android) lub findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:
(iOS).
ZAKRES LICZBA DANYCH MIESIĘCZNYCH (cena za połączenie) |
||
---|---|---|
0,030 USD za każde (30,00 USD za 1000) |
0,024 USD za każde (24,00 USD za 1000) |
Skontaktuj się z zespołem sprzedaży, żeby zapytać o cenę sprzedaży. |
Wywołania findCurrentPlace()
(Android) lub findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:
(iOS) także generują kody SKU (podstawowe, kontaktowe lub atmosferowe) w zależności od pól określonych w wywołaniu.
Określ pola danych, aby ograniczyć odpowiedzi tylko do tych pól. Zapłacisz za wywołanie Znajdź bieżące miejsce oraz wymagane dane.
Przykłady
- Wywołujesz metodę
findCurrentPlace()
(Android) lubfindPlaceLikelihoodsFromCurrentLocationWithPlaceFields:
(iOS) i po prostu podajesz poleADDRESS
. Na rachunku będą widoczne te kody SKU (podczas wyświetlania rachunku według kodów SKU):- Znajdź aktualne miejsce (cena od 0,030 USD za żądanie)
- Dane podstawowe (opłata 0.00 PLN)
- Wywołujesz metodę
findCurrentPlace()
(Android) lubfindPlaceLikelihoodsFromCurrentLocationWithPlaceFields:
(iOS) i określasz polePHONE_NUMBER
. Na rachunku będą widoczne te kody SKU (podczas wyświetlania rachunku według kodów SKU):- Znajdź aktualne miejsce (cena od 0,030 USD za żądanie)
- Dane kontaktowe (cena już od 0,003 USD za żądanie)
- Wywołujesz metodę
findCurrentPlace()
(Android) lubfindPlaceLikelihoodsFromCurrentLocationWithPlaceFields:
(iOS) i określasz pola ze wszystkich 3 zasobników typów danych. Na rachunku będą widoczne te kody SKU (podczas wyświetlania rachunku według kodów SKU):- Znajdź aktualne miejsce (cena od 0,030 USD za żądanie)
- Dane podstawowe (opłata 0.00 PLN)
- Dane kontaktowe (cena już od 0,003 USD za żądanie)
- Dane dotyczące atmosfery (cena od 0,005 USD za żądanie)
SKU: zdjęcie miejsca
Kod SKU zdjęcia miejsca jest naliczany za:
- Android: połączenia z numerem
fetchPhoto()
- iOS: połączenia z numerem
loadPlacePhoto:
- JavaScript: do biblioteki miejsc. Usługa Place Place API interfejsu Maps JavaScript wysyła żądanie danych z adresów URL zwróconych przez
PlacePhoto.getUrl()
, aby wczytać dane piksela obrazów. - Usługa internetowa: żądania wysyłane do usługi Zdjęcia miejsca interfejsu API Miejsc
W przypadku usługi JavaScript wywołanie metody PlacePhoto.getUrl()
nie powoduje naliczania opłat, dopóki URL nie zostanie użyty do uzyskania danych pikselowych.
ZAKRES LICZBA DANYCH MIESIĘCZNYCH (cena za połączenie) |
||
---|---|---|
0,007 USD za każde (7,00 USD za 1000) |
0,0056 USD za każde (5,60 USD za 1000) |
Skontaktuj się z zespołem sprzedaży, żeby zapytać o cenę sprzedaży. |
Inne limity wykorzystania
Chociaż nie ma maksymalnej liczby żądań dziennie, podczas korzystania z pakietu Places SDK dla iOS nadal obowiązują te limity wykorzystania:
- Ograniczenie liczby żądań na minutę to 6000. Jest to suma żądań po stronie klienta i po stronie serwera wszystkich aplikacji korzystających z danych logowania tego samego projektu.
Ograniczenia korzystania z usługi
Informacje na temat warunków korzystania z usługi znajdziesz w sekcji dotyczącej ograniczeń licencji Warunków korzystania z usługi Google Maps Platform.
Zarządzanie kosztami użytkowania
Aby zarządzać kosztami korzystania z pakietu SDK Miejsc na iOS lub spełniać wymagania dotyczące ruchu produkcyjnego, ustaw dzienne limity dla wszystkich żądań do dowolnego interfejsu API. Limity dzienne są resetowane o północy czasu pacyficznego.
Aby wyświetlić lub zmienić limity dotyczące pakietu Places SDK dla iOS:
- W Cloud Console otwórz stronę Limity Google Maps Platform.
- Kliknij menu Interfejsy API i wybierz Places SDK for iOS.
- Aby zobaczyć limit, przewiń w dół do karty Żądania.
W tabeli znajdziesz nazwy i limity. - Aby zmienić limit, kliknij obok niego ikonę Edit (Edytuj).
W wyświetlonym oknie w polu Limit przydziału wpisz preferowaną kwotę do obciążenia dziennego (w razie potrzeby określ ją przez Google), a potem kliknij Zapisz.
Jeśli wykorzystanie interfejsu API któregoś dnia osiągnie określony przez Ciebie limit, aplikacja nie będzie mogła uzyskać do niego dostępu do końca tego dnia.
Powiązane materiały o zarządzaniu kosztami
-
Aby móc otrzymać środki na Google Maps Platform, użytkownicy w Indiach muszą utworzyć konto rozliczeniowe Google Cloud Platform. ↩