Questo prodotto o questa funzionalità è in stato Legacy. Per ulteriori informazioni sullo stato Legacy, consulta Funzionalità e prodotti legacy. Per eseguire la migrazione all'API Places per iOS(nuova), consulta la guida alla migrazione.
Il completamento automatico dei luoghi (legacy) utilizza i token di sessione per raggruppare le fasi di query e selezione di una ricerca di completamento automatico dell'utente in una sessione distinta a fini di fatturazione. La sessione inizia quando l'utente inizia a digitare una query e termina quando seleziona un luogo e viene effettuata una chiamata a Dettagli dei luoghi (legacy). Ogni sessione può avere più query di completamento automatico, seguite dalla selezione di un luogo. Le chiavi API utilizzate per ogni richiesta all'interno di una sessione devono appartenere allo stesso progetto della console Google Cloud. Al termine di una sessione, il token non è più valido. L'app deve generare un nuovo token per ogni sessione. Se il parametro sessiontoken viene omesso o se riutilizzi un token sessione, la sessione viene addebitata come se non fosse stato fornito alcun token sessione (ogni richiesta viene fatturata separatamente).
Ti consigliamo di seguire le seguenti linee guida:
Utilizza i token di sessione per tutte le sessioni di completamento automatico.
Assicurati che le chiavi API utilizzate per tutte le richieste di completamento automatico dei luoghi (legacy) e dei dettagli dei luoghi (legacy)
all'interno di una sessione appartengano allo stesso progetto della console Google Cloud.
Assicurati di passare un token di sessione univoco per ogni nuova sessione. L'utilizzo dello stesso token per più sessioni comporterà l'addebito di ogni richiesta singolarmente.
Se vuoi, puoi omettere il token di sessione di completamento automatico da una richiesta. Se il token sessione viene omesso, ogni richiesta viene fatturata separatamente, attivando lo SKU
Autocomplete - Per richiesta. Se riutilizzi un token della sessione, la sessione viene considerata non valida e le richieste vengono addebitate come se non fosse stato fornito alcun token della sessione.
Esempio
Man mano che l'utente digita una query, viene chiamata una richiesta di completamento automatico ogni alcune tastiere (non per carattere) e viene restituito un elenco di possibili risultati.
Quando l'utente effettua una selezione dall'elenco dei risultati, la selezione viene conteggiata come richiesta e tutte le richieste effettuate durante la ricerca vengono raggruppate e conteggiate come una singola richiesta. Se l'utente seleziona un luogo, la query di ricerca è disponibile senza costi e viene addebitato solo il costo della richiesta di dati del luogo. Se l'utente non effettua una selezione entro pochi minuti dall'inizio della sessione, viene addebitato solo il costo della query di ricerca.
Esaminiamo questo flusso di eventi dal punto di vista di un'app.
Un utente inizia a digitare una query per cercare "Parigi, Francia".
Al rilevamento dell'input dell'utente, l'app crea un nuovo
token di sessione, "Token A".
Man mano che l'utente digita, l'API invia una richiesta di completamento automatico ogni pochi caratteri, visualizzando un nuovo elenco di potenziali risultati per ciascuno:
"P"
"Par"
"Parigi"
"Parigi, Francia"
Quando l'utente effettua una selezione:
Tutte le richieste risultanti dalla query vengono raggruppate e aggiunte alla
sessione rappresentata da "Token A", come una singola richiesta.
La selezione dell'utente viene conteggiata come richiesta di dettagli sui luoghi e aggiunta
alla sessione rappresentata da "Token A".
La sessione è conclusa e l'app elimina "Token A".
Per ulteriori informazioni su come vengono fatturate le richieste di completamento automatico dei luoghi (legacy), consulta
Utilizzo e fatturazione.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-09-04 UTC."],[],[],null,["# Session Tokens\n\nSelect platform: [Android](/maps/documentation/places/android-sdk/session-tokens \"View this page for the Android platform docs.\") [iOS](/maps/documentation/places/ios-sdk/session-tokens \"View this page for the iOS platform docs.\") [JavaScript](/maps/documentation/javascript/places-autocomplete#session_tokens \"View this page for the JavaScript platform docs.\") [Web Service](/maps/documentation/places/web-service/session-tokens \"View this page for the Web Service platform docs.\")\n\nPlace Autocomplete (Legacy) uses session tokens to group the query and selection\nphases of a user autocomplete search into a discrete session for billing\npurposes. The session begins when the user starts typing a query, and concludes\nwhen they select a place and a call to Place Details (Legacy) is made. Each session can\nhave multiple autocomplete queries, followed by one place selection. The API\nkey(s) used for each request within a session must belong to the same\nGoogle Cloud console project. Once a session has concluded, the token is no longer\nvalid; your app must generate a fresh token for each session. If the\n`sessiontoken` parameter is omitted, or if you reuse a session\ntoken, the session is charged as if no session token was provided (each request\nis billed separately).\n\nWe recommend the following guidelines:\n\n- Use session tokens for all autocomplete sessions.\n- [Generate a fresh token](#create-session-tokens) for each session.\n- Ensure that the API key(s) used for all Place Autocomplete (Legacy) and Place Details (Legacy) requests within a session belong to the same Google Cloud console project.\n- Be sure to pass a unique session token for each new session. Using the same token for more than one session will result in each request being billed individually.\n\nYou can optionally omit the autocomplete session token from a request. If\nthe session token is omitted, each request is billed separately, triggering the\n\n[Autocomplete - Per Request](/maps/billing-and-pricing/sku-details#autocomplete-request-new-ess-sku)\n\n\nSKU. If you reuse a session token, the session is considered invalid and the\nrequests are charged as if no session token was provided.\n\nExample\n-------\n\nAs the user types a query, an autocomplete request is called every few\nkeystrokes (not per-character), and a list of possible results is returned.\nWhen the user makes a selection from the result list, the selection counts as\na request, and all of the requests made during the search are bundled and\ncounted as a single request. If the user selects a place, the search query is\navailable at no charge, and only the Place data request is charged. If the user does not make a\nselection within a few minutes of the beginning of the session, only the\nsearch query is charged.\n\nLet's examine this flow of events from the perspective of an app.\n\n1. A user begins typing a query to search for \"Paris, France\".\n2. Upon detecting user input, the app creates a new session token, \"Token A\".\n3. As the user types, the API makes an autocomplete request every few characters, displaying a new list of potential results for each: \n \"P\" \n \"Par\" \n \"Paris,\" \n \"Paris, Fr\" \n4. When the user makes a selection:\n - All requests resulting from the query are grouped and added to the session represented by \"Token A\", as a single request.\n - The user's selection is counted as a Place Detail request, and added to the session represented by \"Token A\".\n5. The session is concluded, and the app discards \"Token A\".\n\nFor more information about how Place Autocomplete (Legacy) requests are billed, see\n\n[Usage and Billing](/maps/documentation/places/ios-sdk/usage-and-billing).\n\nCreate session tokens\n---------------------\n\n\nTo create a session token, call\n[`GMSAutocompleteSessionToken.init()`](/maps/documentation/places/ios-sdk/reference/interface_g_m_s_autocomplete_session_token)."]]