이제 Authorized Buyers에서 모바일 애플리케이션 인벤토리 입찰 요청에서 Android 광고 ID를 전달할 수 있습니다.
광고 ID 정보
Google Play 서비스 v4.0에서 Android에서는 사용자가 재설정할 수 있는 새로운 광고 식별자인 광고 ID를 출시했습니다.
광고 ID는 광고주가 리마케팅 캠페인을 운영하고 '전환' (구매 또는 다운로드)을 기록하는 데 사용할 수 있습니다. 광고 ID에는 두 가지 주요 기능이 있습니다.
- 사용자는 언제든지 광고 ID를 재설정할 수 있습니다.
- 사용자는 언제든지 Google 설정 앱에서 바로 관심 기반 광고를 선택 해제할 수 있습니다. 이 설정은 광고 ID를 사용하는 모든 광고 회사에 적용됩니다.
기술적 정의
광고 ID는 실시간 입찰 프로토콜에서 BidRequest.Mobile.encrypted_advertising_id
를 통해 전달됩니다.
optional bytes encrypted_advertising_id = 20;
필드는 36바이트이며 3개의 섹션으로 구성됩니다.
initialization_vector
: 16바이트ciphertext
: 16바이트, 광고 ID의 암호화된 16바이트 UUIDintegrity_signature
: 4바이트
{initialization_vector (16 bytes)}{ciphertext (16 bytes)}{integrity_signature (4 bytes)}
정의
변수 | 세부정보 |
---|---|
initialization_vector |
16바이트 - 노출에 고유함 |
ciphertext |
16바이트 - 다음으로 생성됨: <advertising_id <xor> hmac(encryption_key, initialization_vector)> |
integrity_signature |
4바이트 - hmac(integrity_key, advertising_id || initialization_vector) 의 처음 4바이트로 생성됨 |
encryption_key |
32바이트 - 계정 설정 시 제공 |
integrity_key |
32바이트 - 계정 설정 시 제공 |
advertising_id |
16바이트 - 암호화되지 않은 원래의 광고 ID(UUID) |
final_message |
36바이트 - encrypted_advertising_id 필드를 통해 전송된 바이트 배열 |
연산자 | 세부정보 |
---|---|
hmac(key, data) |
SHA-1 HMAC: key 를 사용하여 data 를 암호화합니다. |
a || b |
a 문자열은 b 문자열로 연결됩니다. |
암호화 스키마
광고 ID의 암호화 체계는 가격 확인 복호화에 사용된 것과 동일한 체계를 기반으로 합니다.
- 광고 ID는 바이트 배열에 저장되며, 크기 오버헤드를 최소화하면서 적절한 보안을 보장하도록 설계된 맞춤 암호화 체계로 암호화됩니다.
- 암호화 체계는 키 HMAC 알고리즘을 사용하여 노출 이벤트에 고유한
initialization_vector
를 기반으로 비밀 패드를 생성합니다.
암호화 의사 코드
advertising_id = advertising ID from mobile device pad = hmac(encryption_key, initialization_vector) // first 16 bytes ciphertext = pad <xor> advertising_id integrity_signature = hmac(integrity_key, advertising_id || initialization_vector) // first 4 bytes final_message = initialization_vector || ciphertext || integrity_signature
복호화 스키마
복호화 코드는 1) 암호화 키를 사용하여 encrypted_advertising_id
필드를 복호화하고 필요한 경우 2) 무결성 키로 무결성 비트를 확인해야 합니다. 키는 계정 설정 중에 제공됩니다. 구현 구성 방식에는 제한이 없습니다.
- 패드를 생성합니다.
hmac(encryption_key, initialization_vector)
- XOR: 이 결과를 가져와 암호문과 함께
<xor>
를 가져와 암호화를 취소합니다. - 확인: 무결성 서명이
HMAC(integrity_key, advertising_id || initialization_vector)
의 4바이트를 전달합니다.
복호화 의사 코드
(initialization_vector, ciphertext, integrity_signature) = final_message // split up according to length pad = hmac(encryption_key, initialization_vector) // first 16 bytes advertising_id = ciphertext <xor> pad confirmation_signature = hmac(integrity_key, advertising_id || initialization_vector) // first 4 bytes success = (confirmation_signature == integrity_signature)
자바 라이브러리
암호화 알고리즘을 구현하여 광고 ID를 인코딩 및 디코딩하는 대신 DoubleClickCrypto.java를 사용할 수 있습니다. 자세한 내용은 암호화를 참고하세요.