ID Iklan Dekripsi

Authorized Buyers kini mendukung penerusan ID iklan Android di permintaan bid inventaris aplikasi seluler.

Tentang ID iklan

Dengan layanan Google Play v4.0, Android meluncurkan ID baru yang dapat direset oleh pengguna untuk iklan yang disebut ID iklan.

ID iklan dapat digunakan oleh pengiklan untuk menjalankan kampanye pemasaran ulang dan mencatat "konversi" (membeli atau mendownload). ID iklan memiliki dua fitur utama:

  • Pengguna dapat mereset ID iklan kapan saja.
  • Pengguna dapat memilih tidak ikut iklan menurut minat kapan saja, langsung dari aplikasi Setelan Google. Setelan ini berlaku di semua perusahaan iklan yang menggunakan ID iklan tersebut.

Definisi teknis

ID Iklan diteruskan melalui BidRequest.Mobile.encrypted_advertising_id dalam proto bidding real-time:

optional bytes encrypted_advertising_id = 20;

Kolom ini berukuran 36 byte dan berisi 3 bagian:

  • initialization_vector: 16 byte.
  • ciphertext: 16 byte, UUID 16 byte yang dienkripsi dari ID iklan.
  • integrity_signature: 4 byte.
{initialization_vector (16 bytes)}{ciphertext (16 bytes)}{integrity_signature (4 bytes)}

Definisi

Variabel Detail
initialization_vector 16 byte - unik untuk tayangan.
ciphertext 16 byte - dihasilkan sebagai: <advertising_id <xor> hmac(encryption_key, initialization_vector)>
integrity_signature 4 byte - dihasilkan sebagai 4 byte pertama dari: hmac(integrity_key, advertising_id || initialization_vector)
encryption_key 32 byte - disediakan saat pembuatan akun.
integrity_key 32 byte - disediakan saat pembuatan akun.
advertising_id 16 byte - ID iklan asli yang tidak dienkripsi, yang merupakan UUID
final_message 36 byte - Array byte yang dikirim melalui kolom encrypted_advertising_id.
Operator Detail
hmac(key, data) HMAC SHA-1, menggunakan key untuk mengenkripsi data.
a || b string a yang disambungkan dengan string b.

Skema enkripsi

Skema enkripsi untuk ID iklan didasarkan pada skema yang sama dengan yang digunakan untuk mendekripsi konfirmasi harga.

  1. ID iklan disimpan dalam array byte, yang dienkripsi menggunakan skema enkripsi khusus yang dirancang untuk meminimalkan overhead ukuran sekaligus memastikan keamanan yang memadai.
  2. Skema enkripsi menggunakan algoritma HMAC dengan kunci untuk menghasilkan pad rahasia berdasarkan initialization_vector, yang unik untuk peristiwa tayangan.

Kode semu enkripsi

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

Skema dekripsi

Kode dekripsi Anda harus 1) mendekripsi kolom encrypted_advertising_id menggunakan kunci enkripsi, dan secara opsional 2) memverifikasi bit integritas dengan kunci integritas. Kunci akan diberikan kepada Anda selama pembuatan akun. Tidak ada batasan pada cara Anda menyusun implementasi.

  1. Membuat pad Anda: hmac(encryption_key, initialization_vector)
  2. XOR: Ambil hasil ini dan <xor> dengan ciphertext untuk membalik enkripsi.
  3. Memverifikasi: Tanda tangan integritas meneruskan 4 byte HMAC(integrity_key, advertising_id || initialization_vector)

Kode semu dekripsi

(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)

Library Java

Daripada menerapkan algoritma kripto untuk mengenkode dan mendekode ID iklan, Anda dapat menggunakan DoubleClickCrypto.java. Untuk informasi selengkapnya, lihat Kriptografi.