Place Autocomplete는 세션 토큰을 사용하여 사용자 자동 완성 검색의 쿼리 및 선택 단계를 결제 목적의 개별 세션으로 그룹화합니다. 세션은 사용자가 쿼리를 입력하기 시작하면 시작되고 장소를 선택하고 Place Details를 호출하면 종료됩니다. 세션마다 여러 개의 자동 완성 쿼리가 포함될 수 있으며 하나의 장소가 선택됩니다. 세션 내 각 요청에 사용되는 API 키는 동일한 Google Cloud 콘솔 프로젝트에 속해야 합니다. 세션이 종료되면 토큰이 더 이상 유효하지 않습니다. 앱에서 각 세션에 대해 새 토큰을 생성해야 합니다. sessiontoken
매개변수가 생략되거나 세션 토큰을 재사용하는 경우 세션 토큰이 제공되지 않은 것처럼 세션에 대해 요금이 청구됩니다 (각 요청에 대해 별도로 요금이 청구됨).
다음 가이드라인이 권장됩니다.
- 모든 자동 완성 세션에 세션 토큰을 사용합니다.
- 각 세션에 대해 새 토큰을 생성합니다.
- 세션 내의 모든 장소 자동 완성 및 장소 세부정보 요청에 사용된 API 키가 동일한 Google Cloud 콘솔 프로젝트에 속하는지 확인합니다.
- 새 세션마다 고유한 세션 토큰을 전달해야 합니다. 두 개 이상의 세션에 동일한 토큰을 사용하면 각 요청에 대해 개별적으로 요금이 청구됩니다.
원하는 경우 요청에서 자동 완성 세션 토큰을 생략할 수 있습니다. 세션 토큰이 생략되면 각 요청에 대해 별도로 요금이 청구되어 Autocomplete - Per Request SKU가 트리거됩니다. 세션 토큰을 재사용하면 세션이 유효하지 않은 것으로 간주되어 세션 토큰이 제공되지 않은 것처럼 요청에 대해 요금이 청구됩니다.
예
사용자가 검색어를 입력하면 자동 완성 요청이 문자별이 아닌 몇 번의 키 입력마다 호출되고 가능한 결과 목록이 반환됩니다. 사용자가 결과 목록에서 항목을 선택하면 선택사항이 요청으로 집계되고 검색 중에 이루어진 모든 요청이 번들로 묶여 단일 요청으로 집계됩니다. 사용자가 장소를 선택하면 검색어는 무료로 사용할 수 있으며 장소 데이터 요청에 대해서만 요금이 청구됩니다. 사용자가 세션이 시작된 후 몇 분 이내에 선택하지 않으면 검색어 요금만 청구됩니다.
앱의 관점에서 이 이벤트 흐름을 살펴보겠습니다.
- 사용자가 '프랑스 파리'를 검색하기 위해 검색어를 입력하기 시작합니다.
- 사용자 입력을 감지하면 앱은 새 세션 토큰 '토큰 A'를 만듭니다.
- 사용자가 입력할 때마다 API는 몇 개의 문자마다 자동 완성 요청을 실행하여 각 문자에 대해 잠재적인 결과의 새 목록을 표시합니다.
"P"
"Par"
"Paris,"
"Paris, Fr"
- 사용자가 선택하면 다음과 같이 처리됩니다.
- 쿼리에서 발생한 모든 요청은 그룹화되어 '토큰 A'로 표시된 세션에 단일 요청으로 추가됩니다.
- 사용자의 선택사항은 장소 세부정보 요청으로 집계되고 '토큰 A'로 표시된 세션에 추가됩니다.
- 세션이 종료되고 앱에서 '토큰 A'를 삭제합니다.
자동 완성 요청에 대한 자세한 요금 청구 방식은 사용량 및 결제를 참고하세요.
세션 토큰 만들기
세션 토큰을 만들려면 GMSAutocompleteSessionToken.init()
를 호출합니다.