Protected Audience 입찰은 시각적인 방법 또는 Perfetto를 사용한 SQL 쿼리 중 하나로 분석할 수 있습니다. 광고 기술은 Perfetto를 통한 프로파일링 방식을 사용하여 다음과 같은 Protected Audience 입찰의 실적을 측정할 수 있습니다.
- 입찰 및 점수 스크립트 CPU 시간
- HTTP 요청의 지연 시간(예: 키/값 서비스)
- 콜드 캐시와 핫 캐시의 성능 영향 비교
- 더 많은 맞춤 잠재고객과 더 적은 맞춤 잠재고객 비교
- 더 큰 신호 집합과 더 작은 신호 집합
- 모든 입찰에 동일한 스크립트를 사용하는 것과 맞춤 잠재고객별로 다른 입찰 로직 스크립트를 사용하는 것 비교
설정
Perfetto와 개인 정보 보호 샌드박스 저장소를 클론합니다.
git clone https://android.googlesource.com/platform/external/perfetto
git clone https://github.com/android/privacy-sandbox-samples
Android 스튜디오의
privacy-sandbox-samples/Fledge/FledgeKotlin
디렉터리에서 Protected Audience 샘플 앱을 엽니다.테스트 기기 또는 에뮬레이터에서 샘플 앱을 빌드하고 설치합니다.
입찰 실행 및 Perfetto 트레이스 사용
- 테스트 HTTPS 엔드포인트를 설정 및 배포합니다. 호스팅된 엔드포인트의 URL을 기록합니다. 이는 Protected Audience 데모 앱이 작동하는 데 필요합니다.
지정된 테스트 엔드포인트 URL로 데모 앱을 실행합니다.
<test-endpoint-url>
을 이전 단계에서 기록한 호스팅된 엔드포인트 URL로 교체합니다.adb shell am start -n com.example.adservices.samples.fledge.sampleapp/.MainActivity \ -e baseUrl "<test-endpoint-url>"
'Shoes CA'를 전환하여 활성 맞춤 잠재고객이 1개 이상 있는지 확인합니다.
<ph type="x-smartling-placeholder">개인 정보 보호 샌드박스 DevTools GitHub 저장소의 trace_config.textproto 파일을 이용해 트레이스를 기록합니다.
./perfetto/tools/record_android_trace \ -c path/to/trace_config.textproto
'광고 선택 실행' 버튼을 탭하고 입찰 결과를 기다립니다. 입찰이 완료되면 '
http://example.com/bidding/render_shoes
의 광고를 표시하시겠습니까?'와 같은 메시지가 출력에 표시됩니다.터미널에서
record_android_trace
프로그램을 종료(CTRL+C)하여 트레이스를 완료합니다. 트레이스 데이터가 로드된 상태로 Perfetto UI가 브라우저에서 열립니다.
Perfetto에서 시각적으로 트레이스 살펴보기
UI 상단에 있는 주소 표시줄을 사용하여 'RunOnDeviceAdSelection'을 검색합니다. Enter를 클릭하여 검색을 완료하면 결과가 표시됩니다.
<ph type="x-smartling-placeholder">트레이스를 클릭하여 입찰을 검사합니다. 실행 지연 시간과 같은 세부정보는 여기에서 확인할 수 있습니다.
<ph type="x-smartling-placeholder">
Protected Audience 관련 트레이스 세그먼트
Protected Audience 입찰은 복잡한 프로세스이며 Perfetto 트레이스에서 캡처된 다양한 세그먼트가 있습니다. 다음 표에는 각 트레이스 세그먼트가 나타내는 내용이 설명되어 있습니다.
시간 | 세그먼트 | 설명 | 실행 빈도 |
---|---|---|---|
입찰 전 | RunOnDeviceAdSelection |
엔드 투 엔드 입찰 | 입찰마다 |
입찰(구매 측) | FilterContextualAds |
문맥 광고에 대해 앱 설치 및 최대 게재빈도 필터링 실행 | 입찰마다 |
GetBuyersCustomAudience |
데이터베이스에서 구매자의 맞춤 잠재고객 로드 | 구매자마다 | |
FilterCustomAudiences |
맞춤 잠재고객에 대해 앱 설치 및 최대 게재빈도 필터링 실행 | 입찰마다 | |
GetTrustedBiddingSignals |
구매자의 입찰 신호 로드 | 구매자마다 | |
RunBiddingPerCustomAudience |
단일 맞춤 잠재고객을 위한 광고 입찰 | 맞춤 잠재고객마다 | |
GetBuyerDecisionLogic |
캐시된 경우 네트워크 또는 데이터베이스에서 구매자의 JavaScript 로드 | 맞춤 잠재고객마다 | |
RunBidding |
구매자용 JavaScript 실행 | 구매자마다 | |
GenerateBids |
맞춤 잠재고객용 JavaScript 실행 | 맞춤 잠재고객마다 | |
점수 산정(판매 측) | GetTrustedScoringSignals |
판매자의 점수 산정 신호 로드 | 판매자마다 |
RunAdScoring |
점수 산정을 위한 JavaScript 실행 | 입찰마다 | |
ScoreAd |
광고용 JavaScript 실행 | 광고마다 | |
GetAdSelectionLogic |
판매자의 광고 선택 로직 로드 | 입찰마다 | |
RunAdOutcomeSelection |
최종 필터링 | 입찰마다 | |
입찰 후 | PersistOnDeviceAdSelection |
데이터베이스에 입찰 결과 기록 | 입찰마다 |
평균 실행 지연 시간 쿼리
Perfetto는 SQL 쿼리를 사용하여 특정 트레이스 내에서 발생하는 상황을 정밀하게 측정할 수 있습니다.
이 섹션에서는 JavaScript 실행 시 평균 실행 지연 시간을 측정하는 방법을 설명합니다.
- Perfetto에서 왼쪽 탐색창에 있는 'Query (SQL)'로 이동합니다.
다음 쿼리를 입력합니다.
SELECT AVG(dur) FROM slice WHERE slice.name GLOB 'FetchPayload';
쿼리를 실행하고 결과를 검사합니다.
<ph type="x-smartling-placeholder">