Authorized Buyers artık mobil uygulama envanteri teklif isteklerinde Android reklam kimliğinin iletilmesini destekliyor.
Reklam kimliği hakkında
Android, Google Play Hizmetleri 4.0 sürümüyle birlikte reklam için reklam kimliği adı verilen, kullanıcı tarafından sıfırlanabilen yeni bir tanımlayıcıyı kullanıma sundu.
Reklam kimliği, reklamverenler tarafından yeniden pazarlama kampanyaları yayınlamak ve "dönüşümleri" (satın alma veya indirme) kaydetmek için kullanılabilir. Reklam kimliğinin iki temel özelliği vardır:
- Kullanıcılar reklam kimliğini istedikleri zaman sıfırlayabilir.
- Kullanıcılar istedikleri zaman doğrudan Google Ayarları uygulamasından ilgi alanına dayalı reklamları devre dışı bırakabilir. Bu ayar, reklam kimliğini kullanan tüm reklam şirketleri için geçerlidir.
Teknik tanım
Reklam kimliği, gerçek zamanlı teklif verme protokolünde BidRequest.Mobile.encrypted_advertising_id
üzerinden geçirilir:
optional bytes encrypted_advertising_id = 20;
Alan 36 bayttır ve 3 bölüm içerir:
initialization_vector
: 16 bayt.ciphertext
: 16 bayt (reklam kimliğinin şifrelenmiş 16 bayt UUID'si).integrity_signature
: 4 bayt.
{initialization_vector (16 bytes)}{ciphertext (16 bytes)}{integrity_signature (4 bytes)}
Tanımlar
Değişken | Ayrıntılar |
---|---|
initialization_vector |
16 bayt - gösterime özgüdür. |
ciphertext |
16 bayt. Oluşturulma biçimi: <advertising_id <xor> hmac(encryption_key, initialization_vector)> |
integrity_signature |
4 bayt - Şunun ilk 4 baytı olarak oluşturulur: hmac(integrity_key, advertising_id || initialization_vector) |
encryption_key |
32 bayt (hesap kurulumunda sağlanır). |
integrity_key |
32 bayt (hesap kurulumunda sağlanır). |
advertising_id |
16 bayt: Orijinal, şifrelenmemiş reklam kimliği (UUID) |
final_message |
36 bayt - encrypted_advertising_id alanı üzerinden gönderilen bayt dizisi. |
Operatörler | Ayrıntılar |
---|---|
hmac(key, data) |
SHA-1 HMAC, data şifrelemesi için key kullanılıyor. |
a || b |
a dizesi b dizesiyle birleştirildi. |
Şifreleme şeması
Reklam kimliği için şifreleme şeması, fiyat onaylarının şifresini çözmek için kullanılan şemaya dayanır.
- Reklam kimliği, bir bayt dizisinde depolanır. Bu dizi, boyut ek yükünü en aza indirirken yeterli güvenlik sağlamak üzere tasarlanmış özel bir şifreleme şeması kullanılarak şifrelenir.
- Şifreleme şeması, gösterim etkinliğine özel olan
initialization_vector
öğesine dayalı bir gizli tuş takımı oluşturmak üzere anahtarlı bir HMAC algoritması kullanır.
Şifreleme sözde kodu
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
Şifre çözme şeması
Şifre çözme kodunuz 1) şifreleme anahtarını kullanarak encrypted_advertising_id
alanının şifresini çözmeli ve isteğe bağlı olarak 2) bütünlük anahtarıyla bütünlük bitlerini doğrulamalıdır. Anahtarlar hesap kurulumu sırasında verilecektir. Uygulamanızı nasıl yapılandıracağınızla ilgili
herhangi bir kısıtlama yoktur.
- Panonuzu oluşturun:
hmac(encryption_key, initialization_vector)
- XOR: Şifrelemeyi geri almak için bu sonucu ve şifrelenmiş metinle birlikte
<xor>
alın. - Doğrula: Bütünlük imzası
HMAC(integrity_key, advertising_id || initialization_vector)
depolama alanının 4 baytını aktarır
Şifre çözme sözde kodu
(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 kitaplığı
Reklam kimliğini kodlamak ve kodunu çözmek için şifreleme algoritmalarını uygulamak yerine DoubleClickCrypto.java'yı kullanabilirsiniz. Daha fazla bilgi için Kriptografi konusuna bakın.