ตอนนี้ Authorized Buyers รองรับการส่งรหัสโฆษณา Android ในคำขอราคาเสนอพื้นที่โฆษณาในแอปพลิเคชันบนอุปกรณ์เคลื่อนที่แล้ว
เกี่ยวกับรหัสโฆษณา
ด้วยบริการ Google Play เวอร์ชัน 4.0 Android ได้เปิดตัวตัวระบุใหม่ที่ผู้ใช้รีเซ็ตได้สำหรับโฆษณาที่เรียกว่ารหัสโฆษณา
ผู้ลงโฆษณาอาจใช้รหัสโฆษณาเพื่อใช้งานแคมเปญรีมาร์เก็ตติ้งและบันทึก "Conversion" (การซื้อหรือดาวน์โหลด) รหัสโฆษณามีฟีเจอร์หลัก 2 อย่าง ได้แก่
- ผู้ใช้สามารถรีเซ็ตรหัสโฆษณาได้ทุกเมื่อ
- ผู้ใช้สามารถเลือกไม่รับโฆษณาตามความสนใจได้ทุกเมื่อจากแอปการตั้งค่าของ Google การตั้งค่านี้มีผลกับบริษัทโฆษณาทั้งหมดที่ใช้รหัสโฆษณาดังกล่าว
คำจำกัดความทางเทคนิค
ระบบจะส่งรหัสโฆษณาผ่าน BidRequest.Mobile.encrypted_advertising_id
ในโปรโตคอลการเสนอราคาแบบเรียลไทม์:
optional bytes encrypted_advertising_id = 20;
ช่องนี้มีขนาด 36 ไบต์และมี 3 ส่วน ได้แก่
initialization_vector
: 16 ไบต์ciphertext
: 16 ไบต์, UUID 16 ไบต์ของรหัสโฆษณาที่เข้ารหัสintegrity_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 ไบต์ - สร้างขึ้นเป็น 4 ไบต์แรกของ: hmac(integrity_key, advertising_id || initialization_vector) |
encryption_key |
32 ไบต์ - มีให้ในการตั้งค่าบัญชี |
integrity_key |
32 ไบต์ - มีให้ในการตั้งค่าบัญชี |
advertising_id |
16 ไบต์ - รหัสโฆษณาต้นฉบับที่ไม่ได้เข้ารหัส ซึ่งก็คือ UUID |
final_message |
36 ไบต์ - อาร์เรย์ไบต์ที่ส่งผ่านช่อง encrypted_advertising_id |
โอเปอเรเตอร์ | รายละเอียด |
---|---|
hmac(key, data) |
SHA-1 HMAC โดยใช้ key เพื่อเข้ารหัส data |
a || b |
สตริง a เชื่อมต่อกับสตริง b |
รูปแบบการเข้ารหัส
รูปแบบการเข้ารหัสสำหรับรหัสโฆษณาจะอิงตามรูปแบบเดียวกับที่ใช้สำหรับการถอดรหัสการยืนยันราคา
- รหัสโฆษณาจะเก็บอยู่ในไบต์อาร์เรย์ ซึ่งเข้ารหัสโดยใช้รูปแบบการเข้ารหัสที่กำหนดเองซึ่งออกแบบมาเพื่อลดปริมาณโอเวอร์เฮดให้เหลือน้อยที่สุดในขณะที่มั่นใจได้ว่าจะได้รับการรักษาความปลอดภัยอย่างเพียงพอ
- รูปแบบการเข้ารหัสใช้อัลกอริทึม 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 ไบต์
การถอดรหัส Pseudocode
(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)
ไลบรารี Java
คุณใช้ DoubleClickCrypto.java แทนการใช้อัลกอริทึมคริปโตเพื่อเข้ารหัสและถอดรหัสรหัสโฆษณาได้ ดูข้อมูลเพิ่มเติมได้ที่วิทยาการเข้ารหัสลับ