Topics API를 사용하면 서드 파티 쿠키를 사용하지 않고도 관심 기반 광고를 게재할 수 있습니다.
How the Topics API works
The Topics API can be used to observe and provide access to topics that appear to be of interest to the user, based on their activity. The Topics API can then give API callers (such as ad tech platforms) access to a user's topics of interest, but without revealing additional information about the user's activity.
Key concepts
- A topic is a human-readable topic of interest for the current user and is part of the Topics taxonomy.
- A caller is an entity, such as an app, a third-party SDK, a website, or service, that makes a request to the Topics API to observe or access a user's interests.
- A topic is observed by a caller, if the caller made a Topics API request from a web page or app associated with this topic during the past three epochs.
- An epoch is a period of topic computation, which defaults to one week.
- A taxonomy is a hierarchical list of categories, which includes, for example, such categories as
/Arts & Entertainment/Music & Audio/Soul & R&B
and/Business & Industrial/Business Services/Corporate Events
. - Topics are derived using a classifier model that maps user activity to zero or more topics.
Topics API flow core steps
The Topics API lifecycle has three main steps:
- Observe user activity, such as when they visit the web page
https://cats.example/tabby/index.html
or download the appcats
. - Derive topics from user activity, for example
/Pets & Animals/Pets/Cats
. - Access topics previously observed for the user, for example as a signal to select relevant advertising (such as a cat food promotion).
Observe topics
Callers can only access topics of interest that they've observed. A caller observes a topic when they make a Topics API request from a context associated with this topic. To illustrate this concept, consider the following simplified example.
- Suppose there are two Topics API callers: A and B.
- There are two contexts:
- Greenhouse, for example an app named Greenhouse or a website greenhouse.example, associated with the topic
Home & Garden
. - Tennis exercises, for example an app named Tennis Exercises or a website tennis.example, associated with the topic
Sports/Tennis
.
- Greenhouse, for example an app named Greenhouse or a website greenhouse.example, associated with the topic
- Both caller A and B are present in the context of Greenhouse.
- Only the caller B is present in the context of Tennis exercises.
- Assume that no topics were observed for the user before epoch 1, for the sake of simplification.
- The user visits the Greenhouse app, and callers A and B make a Topics API call to record the user visit to the page or app (see the implementation guide suggested in Next steps to find out how to call the Topics API). This record (a hostname or app data) is later used to derive topics of interest. The Topics API will later mark the topic
Home & Garden
as observed by both callers A and B. - The user visits the Tennis exercises app. Only the caller B sends a Topics API request. The Topics API will later mark the topic
Sports/Tennis
as observed by the caller B. - By the end of the epoch, the Topics API refreshes the user's top topics and determines the callers that observed these topics based on user activity.
- Later, when the caller B makes another Topics API call, it can get either
Home & Garden
orSports/Tennis
topic (or, with a 5% chance, a random topic) for this user in the response array. - Caller A can only access the topic
Home & Garden
, as it has never observed the topicSports/Tennis
. This means that a third-party will only learn about a user's topic of interest within the specific context (app or website) where it is present.

Derive topics
Topics derives topics of interest from user activity. The topics are selected from a predefined open-source taxonomy. Once per epoch, Topics refreshes the user's top five topics and the callers that observed them during the epoch. The Topics classifier model derives topics from user activity: hostname for a web page visit, app information on Android.
Caller accesses user's topics of interest
The API returns only topics that have been observed by the caller within the most recent three epochs. A maximum of three topics may be returned to a caller,one topic for each of the three recent epochs (if the caller observed topics for that epoch). The returned topics can be used by the caller to supplement any contextual information and can be combined to help find a more relevant ad for the user.
Epochs
The Topics API must ensure that the topics of interest it provides are kept up to date. The topics are inferred for a user based on their activity during a period of time known as an epoch, one week by default. Each user has their own epochs (epochs are "per user") and the initial start time is randomized.
Once each epoch, the Topics API computes the user's top five topics and determines which callers observed those topics using on-device information. The topic selected for each epoch is randomly selected from the user's top five topics for that time period. To further enhance privacy and ensure that all topics may be represented, there is a 5% chance the topic is randomly selected from all possible topics in the taxonomy of interests.
웹 주제 실습
웹에서는 사용자가 방문하는 페이지의 호스트 이름에서 주제가 추론됩니다. 예를 들어 dogs.example 웹사이트에 대해 추론된 주제는 /Pets & Animals/Pets/Dogs일 수 있습니다.
다음 다이어그램은 광고 기술 플랫폼에서 적절한 광고를 선택하는 데 Topics API를 사용하는 방법을 간단한 예를 통해 보여줍니다. 이 예에서는 사용자의 브라우저에 이미 웹사이트 호스트 이름을 주제에 매핑하는 모델이 있다고 가정합니다.

브라우저는 Topics API를 호출하는 코드의 컨텍스트에서 호출자의 출처를 확인합니다. 실제로는 Topics 사용자가 출처의 iframe에서 API를 호출하거나 출처의 가져오기에 주제를 포함합니다.
예를 들어 공급측 플랫폼 (SSP)은 여러 게시자 사이트에 삽입할 수 있습니다. 그러면 SSP는 출처의 iframe 내에서 Topics API를 호출하여 게시자 사이트에서 사용자와 연결된 주제를 관찰할 수 있습니다. 이러한 주제를 수요측 플랫폼 (DSP)과 공유하여 사용자에게 관련성 높은 광고를 선택할 수 있습니다.
API가 어떤 호출자에게 어떤 주제를 표시할지 결정하는 방법
API 호출자는 최근에 관찰한 주제만 수신하며 사용자의 주제는 에포크마다 한 번씩 새로고침됩니다. 에포크는 Chrome 구현에서 1주일로 설정된 기간입니다. 즉, API는 정해진 호출자가 관찰된 주제를 수신할 수 있는 롤링 시간을 제공합니다.
다음 표는 단일 에포크 동안 사용자의 가상 방문 기록의 예시를 보여줍니다 (비현실적으로 작음). 방문한 사이트와 연결된 주제와 각 사이트에 있는 API 호출자 (사이트에 포함된 JavaScript 코드에서 document.browsingTopics()
를 호출하는 항목)를 보여줍니다.
사이트 | 주제 | 사이트의 API 호출자 |
---|---|---|
running.example | Running & Walking Athletic Shoes |
adtech1.example adtech2.example |
dogs.example | Dogs |
adtech1.example |
holiday.example | Hotels & Accommodations |
adtech2.example |
sunglasses.example | Sunglasses |
[없음] |
에포크 종료 시 (기본적으로 1주일) Topics API가 일주일 동안 브라우저의 상위 주제를 생성합니다.
- adtech1.example은 running.example과 dogs.example에서
Running & Walking
,Athletic Shoes
,Dogs
를 관찰했으므로 이제Running & Walking
,Athletic Shoes
,Dogs
주제를 수신할 수 있습니다. - adtech1.example은
Hotels & Accommodations
주제와 관련되어 있으며 최근에 사용자가 방문한 사이트에 존재하지 않았으므로 이 사용자의 주제로Hotels & Accommodations
을 수신할 수 없습니다. - adtech2.example은
Running & Walking
,Athletic Shoes
,Hotels & Accommodations
주제를 관찰했으나Dogs
주제는 관찰하지 않았습니다.
사용자가 Sunglasses
주제가 있는 sunglasses.example을 방문했지만, 이 사이트에서 Topics API를 호출하지 않았습니다. 이때 API는 호출자에게 Sunglasses
주제를 반환하지 않습니다.
2주 차에 사용자가 다른 사이트를 방문합니다.
사이트 | 주제 | 사이트의 API 호출자 |
---|---|---|
cameras.example | Camera & Photo Equipment |
adtech2.example |
또한 adtech2.example의 코드가 sunglasses.example
에 추가되어 있습니다.
사이트 | 주제 | 사이트의 API 호출자 |
---|---|---|
sunglasses.example | Sunglasses |
adtech2.example |
adtech2.example은 1주 차에 Running & Walking
, Athletic Shoes
, Hotels & Accommodations
을 수신했으며 이제 Camera & Photo Equipment
, Sunglasses
주제도 수신할 수 있게 되나 다음 에포크인 3주 차가 되어야 합니다. 즉, 서드 파티가 쿠키를 사용할 때보다 사용자의 과거 정보 (이 경우 패션에 대한 관심)를 더 자세히 알 수 없습니다.
사용자가 adtech2.example의 코드가 포함되어 있으며 주제가 Running & Walking
, Athletic Shoes
, Hotels & Accommodations
인 사이트를 방문하지 않을 경우 2주 후 Running & Walking
, Athletic Shoes
, Hotels & Accommodations
이 adtech2.example의 대상 주제 목록에서 삭제될 수 있습니다.

분류 모델
Topics는 웹사이트 호스트 이름을 0개 이상의 주제에 매핑하는 분류기 모델을 사용합니다. 전체 URL 또는 페이지 콘텐츠와 같은 추가 정보를 분석하면 더 관련성 높은 광고를 게재할 수 있지만 개인 정보 보호에 부정적인 영향을 줄 수도 있습니다.
분류
주제는 분류에서 선택합니다. 이러한 주제는 분류를 신뢰할 수 있는 생태계 기여자가 관리하는 리소스로 만드는 것을 목표로 Chrome에서 선별했습니다. 분류는 많은 사용자의 브라우저가 각 주제와 연결될 수 있을 만큼 작아야 합니다. 최종 목표는 업계 전반의 의견과 아이디어를 통합하는 외부 당사자로부터 분류를 가져오는 것입니다.
민감한 카테고리를 피하기 위해 주제는 공개되어야 하며, 사람이 직접 선별하고 업데이트해야 합니다. Chrome에서 사용하는 분류는 인종, 성적 지향 등 일반적으로 민감한 것으로 간주되는 카테고리를 제외하기 위해 사람이 선별했습니다.
주제 분류
주제는 상위 사이트 50,000개를 대상으로 수동으로 선별되며, 선별된 호스트 이름 및 주제 재정의 목록은 분류 모델을 학습하는 데 사용됩니다. 인기 사이트의 경우 분류 기준 모델을 사용하는 대신 재정의 목록에서 주제에 액세스합니다. 컴퓨터에서 로컬로 재정의 목록을 확인할 수 있습니다.

chrome://topics-internals
페이지 분류기 패널에는 모델 버전, 경로, 나열된 각 호스트와 연결된 주제가 표시됩니다.Chrome의 Topics API 구현은 모델을 나타내는 TensorFlow Lite 파일을 다운로드하여 사용자 기기에서 로컬로 사용할 수 있도록 합니다.
사용자의 상위 주제 5개가 선정되는 방식
API는 에포크당 하나씩 최대 3개의 주제를 반환합니다. 3개가 반환되면 여기에는 현재 에포크의 주제 한 개와 이전 에포크의 주제 2개가 포함됩니다.
- 각 에포크가 끝나면 브라우저는 다음 기준을 충족하는 페이지 목록을 컴파일합니다.
- 에포크 동안 사용자가 방문한 페이지입니다.
- 페이지에
document.browsingTopics()
를 호출하는 코드가 포함되어 있습니다. - API가 사용 설정됨 (예: 사용자가 또는 응답 헤더로 차단하지 않음)
- 사용자 기기의 브라우저가 Topics API에서 제공하는 분류기 모델을 사용하여 각 페이지의 호스트 이름을 주제 목록에 매핑합니다.
그런 다음 document.browsingTopics()
메서드는 에포크마다 상위 5개 중에서 주제를 무작위로 반환합니다. 이때 전체 주제 분류에서 무작위로 선택될 가능성은 5% 입니다. Chrome에서 사용자는 개별 주제를 삭제하거나 방문 기록을 삭제하여 API에서 반환되는 주제의 수를 줄일 수도 있습니다. 사용자는 API를 선택 해제할 수도 있습니다.
chrome://topics-internals
페이지에서 현재 시대에 관찰된 주제에 관한 정보를 확인할 수 있습니다.
Next steps
Setup
Implement Topics
참고 항목
웹에서 Topics API를 더 잘 이해하려면 리소스를 확인하세요.
- 주제 데모, 공동작업, 둘러보기 동영상을 확인하세요.
- 개발자가 테스트를 위해 Topics API를 맞춤설정할 수 있는 Chrome 플래그 목록을 참고하세요.
- 사용자와 개발자가 API를 제어하는 방법을 알아보세요.
- 기술 설명 및 지원은 리소스를 확인하세요. 질문하고, 참여하고, 의견을 공유하세요.