ב-Authorized Buyers יש עכשיו תמיכה בהעברת מזהה הפרסום של Android בבקשות להצעות מחיר של מלאי שטחי פרסום באפליקציות לנייד.
מידע על מזהה הפרסום
בגרסה 4.0 של Google Play Services, הושק ב-Android מזהה פרסום חדש, שניתן לעדכון על ידי המשתמש, שנקרא מזהה הפרסום.
מפרסמים יכולים להשתמש במזהה הפרסום כדי להפעיל קמפיינים של רימרקטינג ולתעד "המרות" (רכישה או הורדה). מזהה הפרסום כולל שתי תכונות עיקריות:
- המשתמשים יכולים לאפס את מזהה הפרסום בכל שלב.
- המשתמשים יכולים לבטל את הסכמתם למודעות המבוססות על תחומי עניין בכל שלב, ישירות מאפליקציית הגדרות 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) לאמת את ביטים של התקינות עם מפתח התקינות. המפתחות יסופקו לך במהלך הגדרת החשבון. אין הגבלות על מבנה ההטמעה.
- יוצרים את ה-pad:
hmac(encryption_key, initialization_vector)
- XOR: לוקחים את התוצאה הזו ואת
<xor>
עם המידע מוצפן כדי להפוך את ההצפנה. - אימות: חתימת התקינות מעבירה 4 בייטים של
HMAC(integrity_key, advertising_id || initialization_vector)
פסאודו-קוד של פענוח
(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. למידע נוסף קראו את המאמר קריפטוגרפיה.