Este producto o función tiene el estado Heredado. Para obtener más información sobre el estado heredado, consulta Productos y funciones heredados. Para migrar a la API de Places (nueva), consulta la guía de migración.
Place Autocomplete (heredado) usa tokens de sesión para agrupar las etapas de consulta y selección de la búsqueda con autocompletado de un usuario en una sesión discreta para realizar la facturación correspondiente. La sesión comienza cuando el usuario comienza a escribir una consulta y termina cuando selecciona un lugar y se realiza una llamada a Place Details (heredado). Cada sesión puede tener varias consultas de Autocomplete, seguidas de una selección de lugar. Las claves de API que se usan para cada solicitud dentro de una sesión deben pertenecer al mismo proyecto de la consola de Google Cloud. Una vez que finaliza la sesión, el token deja de ser válido. Tu app debe generar un token nuevo para cada sesión. Si se omite el parámetro sessiontoken, o si reutilizas un token de sesión, la sesión se cobrará como si no se hubiera proporcionado un token de sesión (cada solicitud se factura por separado).
Recomendamos los siguientes lineamientos:
Usa tokens de sesión para todas las sesiones de autocompletado.
Asegúrate de que las claves de API que se usan para todas las solicitudes de Place Autocomplete (heredado) y Place Details (heredado) dentro de una sesión pertenezcan al mismo proyecto de la consola de Google Cloud.
Asegúrate de pasar un token de sesión único para cada sesión nueva. Si usas el mismo token en más de una sesión, cada solicitud se facturará de forma individual.
De forma opcional, puedes omitir el token de sesión de Autocomplete de una solicitud. Si se omite el token de sesión, cada solicitud se factura por separado, lo que activa el SKU Autocomplete - Per Request. Si vuelves a usar el token para otra sesión, esta se considera no válida y las solicitudes se cobran como si no se hubiera proporcionado un token de sesión.
Ejemplo
A medida que el usuario escribe una consulta, se llama a una solicitud de autocompletado cada algunas teclas presionadas (no por carácter) y se muestra una lista de resultados posibles.
Cuando el usuario realiza una selección en la lista de resultados, esta se registra como una solicitud, y todas las solicitudes realizadas durante la búsqueda se agrupan y se registran como una sola solicitud. Si el usuario selecciona un lugar, la búsqueda está disponible sin cargo, y solo se cobra la solicitud de datos de Place. Si el usuario no realiza una selección en unos minutos después de que comienza la sesión, solo se cobra la búsqueda.
Examinemos este flujo de eventos desde la perspectiva de una app.
Un usuario comienza a escribir una consulta para buscar "París, Francia".
Cuando detecta la entrada del usuario, la app crea un nuevo token de sesión, "Token A".
A medida que el usuario escribe, la API realiza una solicitud de autocompletado cada pocos caracteres y muestra una nueva lista de posibles resultados para cada uno:
"P"
"Par"
"Paris,"
"Paris, Fr"
Cuando el usuario realiza una selección, ocurre lo siguiente:
Todas las solicitudes que resultan de la consulta se agrupan y se agregan a la sesión representada por "Token A", como una sola solicitud.
La selección del usuario se cuenta como una solicitud de Place Details y se agrega a la sesión representada por "Token A".
La sesión finaliza y la app descarta el "Token A".
Para obtener más información sobre cómo se facturan las solicitudes de Place Autocomplete (heredado), consulta Uso y facturación.
Crea tokens de sesión
Puedes crear tokens de sesión con el mecanismo programático que prefieras. Recomendamos usar un UUID de versión 4 para los tokens de sesión.
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 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/web-service/usage-and-billing#about-autocomplete-sessions).\n\nCreate session tokens\n---------------------\n\n\nYou can create session tokens using whichever programmatic mechanism you\nprefer. We recommend using a [version 4 UUID](https://tools.ietf.org/html/rfc4122)\nfor session tokens."]]