أثناء كتابة المستخدم لطلب بحث، يتم استدعاء طلب إكمال تلقائي كل بضع ضغطات على المفاتيح (وليس لكل حرف)، ويتم عرض قائمة بالنتائج المحتملة. عندما يختار المستخدم نتيجة من قائمة النتائج، يتم احتساب هذا الاختيار كطلب، ويتم تجميع كل الطلبات التي تم إجراؤها أثناء البحث واحتسابها كطلب واحد. إذا اختار المستخدم مكانًا، سيتوفّر طلب البحث بدون أي رسوم، وسيتم تحصيل رسوم طلب بيانات المكان فقط. إذا لم يحدّد المستخدم أي اختيار خلال بضع دقائق من بداية الجلسة، سيتم تحصيل رسوم مقابل طلب البحث فقط.
لنلقِ نظرة على تسلسل الأحداث هذا من منظور تطبيق.
يبدأ المستخدم في كتابة طلب بحث عن "باريس، فرنسا".
عند رصد إدخال من المستخدم، ينشئ التطبيق رمزًا مميزًا جديدًا للجلسة، وهو "الرمز المميز أ".
أثناء كتابة المستخدم، يرسل واجهة برمجة التطبيقات طلب إكمال تلقائي كل بضعة أحرف، ويعرض قائمة جديدة بالنتائج المحتملة لكل منها:
"P"
"Par"
"باريس"
"باريس، فرنسا"
عندما يحدّد المستخدم خيارًا:
يتم تجميع جميع الطلبات الناتجة عن طلب البحث وإضافتها إلى الجلسة الممثّلة بالرمز المميز "أ"، وذلك كطلب واحد.
يتم احتساب اختيار المستخدم كطلب تفاصيل مكان، ويتم إضافته إلى الجلسة الممثّلة بالرمز المميز "الرمز المميز أ".
تنتهي الجلسة، ويتجاهل التطبيق الرمز المميّز "أ".
لمزيد من المعلومات حول كيفية احتساب تكلفة طلبات الإكمال التلقائي، يُرجى الاطّلاع على الاستخدام والفوترة.
تاريخ التعديل الأخير: 2025-08-31 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2025-08-31 (حسب التوقيت العالمي المتفَّق عليه)"],[[["\u003cp\u003eSession tokens are used to group autocomplete search queries and selections for billing purposes.\u003c/p\u003e\n"],["\u003cp\u003eEach session requires a unique token, ideally a version 4 UUID.\u003c/p\u003e\n"],["\u003cp\u003eAutocomplete requests are bundled and billed as a single request when a user makes a selection.\u003c/p\u003e\n"],["\u003cp\u003eIf no selection is made, only the search query is charged after a few minutes.\u003c/p\u003e\n"],["\u003cp\u003eSession tokens can be shared across different Google Cloud projects, but must be unique within a single project.\u003c/p\u003e\n"]]],["This document details the use of session tokens with the Places API. A session token groups a user's autocomplete search into a single session for billing. Users must create unique session tokens (version 4 UUIDs recommended) for each session, ensuring uniqueness within a project. Requests are bundled into a session. If a user selects a place, only the place details are charged; otherwise, only the search query is charged. Each session ends after a user's selection or inactivity, at which point the token is discarded.\n"],null,["# Use session tokens\n\n\u003cbr /\u003e\n\n| This feature requires that you enable Places API (New), the next generation of the Places API. For more information, see [Enable APIs](/maps/documentation/places/ios-sdk/cloud-setup#enabling-apis).\n\n\u003cbr /\u003e\n\n\nSelect platform: [Android](/maps/documentation/places/android-sdk/using-session-tokens \"View this page for the Android platform docs.\") [iOS](/maps/documentation/places/ios-sdk/using-session-tokens \"View this page for the iOS platform docs.\") [Web Service](/maps/documentation/places/web-service/using-session-tokens \"View this page for the Web Service platform docs.\")\n\n\u003cbr /\u003e\n\nSession tokens group the query and selection phases of a user autocomplete\nsearch into a discrete session for billing purposes.\n\nCreate a session token\n----------------------\n\nUsers are responsible for generating unique session\ntokens for each session. Google recommends using [version 4\nUUIDs](https://tools.ietf.org/html/rfc4122).\n| **Note:** Session tokens can overlap across Google Cloud Console projects, but they must be unique per project. For example, an app using Project A and an app using Project B can use the same session token, but multiple apps using Project A cannot use the same session token.\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. When\nthe user makes a selection from the result list, the selection counts as a\nrequest, and all of the requests made during the search are bundled and counted\nas a single request. If the user selects a place, the search query is available\nat no charge, and only the Place data request is charged. If the user does not\nmake a selection 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\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\".\n- The session is concluded, and the app discards \"Token A\".\n\nFor more information about how Autocomplete requests are billed, see [Usage and\nBilling](/maps/documentation/places/ios-sdk/usage-and-billing)."]]