Этот продукт или функция находится в статусе Legacy. Для получения дополнительной информации о статусе Legacy см. раздел Legacy products and features . Чтобы перейти на API Places для iOS (New), см. руководство по миграции .
Place Autocomplete (Legacy) использует токены сеанса для группировки фаз запроса и выбора поиска автозаполнения пользователя в отдельный сеанс для выставления счетов. Сеанс начинается, когда пользователь начинает вводить запрос, и завершается, когда он выбирает место и выполняется вызов Place Details (Legacy). Каждый сеанс может иметь несколько запросов автозаполнения, за которыми следует один выбор места. Ключ(и) API, используемые для каждого запроса в сеансе, должны принадлежать одному проекту консоли Google Cloud. После завершения сеанса токен больше не действителен; ваше приложение должно генерировать новый токен для каждого сеанса. Если параметр sessiontoken пропущен или если вы повторно используете токен сеанса, сеанс тарифицируется так, как если бы токен сеанса не был предоставлен (каждый запрос тарифицируется отдельно).
Мы рекомендуем следующие рекомендации:
Используйте токены сеанса для всех сеансов автозаполнения.
Убедитесь, что ключ(и) API, используемые для всех запросов Place Autocomplete (Legacy) и Place Details (Legacy) в рамках сеанса, принадлежат одному и тому же проекту консоли Google Cloud.
Обязательно передайте уникальный токен сеанса для каждого нового сеанса. Использование одного и того же токена для более чем одного сеанса приведет к тому, что каждый запрос будет выставлен по отдельности.
При желании вы можете опустить токен сеанса автозаполнения из запроса. Если токен сеанса опущен, каждый запрос оплачивается отдельно, активируя SKU Autocomplete - Per Request . Если вы повторно используете токен сеанса, сеанс считается недействительным, и запросы оплачиваются так, как если бы токен сеанса не был предоставлен.
Пример
Когда пользователь вводит запрос, запрос автозаполнения вызывается каждые несколько нажатий клавиш (не посимвольно), и возвращается список возможных результатов. Когда пользователь делает выбор из списка результатов, выбор считается запросом, и все запросы, сделанные во время поиска, объединяются и учитываются как один запрос. Если пользователь выбирает место, поисковый запрос доступен бесплатно, и взимается только за запрос данных о месте. Если пользователь не делает выбор в течение нескольких минут с начала сеанса, взимается только за поисковый запрос.
Давайте рассмотрим этот поток событий с точки зрения приложения.
Пользователь начинает вводить запрос для поиска «Париж, Франция».
При обнаружении пользовательского ввода приложение создает новый токен сеанса — «Токен А».
По мере того, как пользователь печатает, API каждые несколько символов выполняет запрос автозаполнения, отображая новый список потенциальных результатов для каждого из них: "П" "Пар" "Париж," "Париж, Фр"
Когда пользователь делает выбор:
Все запросы, полученные в результате запроса, группируются и добавляются в сеанс, представленный «Токеном A», как один запрос.
Выбор пользователя учитывается как запрос сведений о месте и добавляется к сеансу, представленному «Токеном A».
Сеанс завершается, и приложение сбрасывает «Токен А».
[[["Прост для понимания","easyToUnderstand","thumb-up"],["Помог мне решить мою проблему","solvedMyProblem","thumb-up"],["Другое","otherUp","thumb-up"]],[["Отсутствует нужная мне информация","missingTheInformationINeed","thumb-down"],["Слишком сложен/слишком много шагов","tooComplicatedTooManySteps","thumb-down"],["Устарел","outOfDate","thumb-down"],["Проблема с переводом текста","translationIssue","thumb-down"],["Проблемы образцов/кода","samplesCodeIssue","thumb-down"],["Другое","otherDown","thumb-down"]],["Последнее обновление: 2025-09-03 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)."]]