Protected Audience API açık artırmasını nasıl yapılandıracağınızı öğrenin.
Satıcılar tarafından cihaz üzerinde yürütülen açık artırmalar
Cihaz üzerinde Protected Audience açık artırması, reklam alanı satan bir sitede gerçekleşir. Açık artırmayı yapan tarafa satıcı diyoruz. Birçok taraf satıcı olarak hareket edebilir: Bir site kendi reklam açık artırmasını yürütebilir, açık artırmayı kendisi için yürütecek bir üçüncü taraf komut dosyası içerebilir veya cihaz üzerinde açık artırma yürütmeyi diğer sunucu tarafı reklam açık artırması etkinlikleriyle birleştiren bir SSP kullanabilir. Satıcıların cihaz üzerinde reklam açık artırmasında üç temel görevi vardır:
- Satıcılar (a) hangi alıcıların katılabileceğine ve (b) bu alıcıların ilgi gruplarından gelen hangi tekliflerin açık artırmaya girmeye uygun olduğuna karar verir. Bu sayede satıcı, sayfada hangi reklamların görünmesine izin verileceğiyle ilgili site kurallarını uygulayabilir.
- Satıcılar, açık artırmanın iş mantığından sorumludur: Her teklifin fiyatını ve meta verilerini dikkate alan ve bir "istenirlik" puanı hesaplayan JavaScript kodu. En yüksek uygunluk puanına sahip teklif açık artırmayı kazanır.
- Satıcılar, açık artırma sonucuyla ilgili raporlama yapar. Bu raporlama, ödeme fiyatı ve diğer ödemelerle ilgili bilgileri içerir. Kazanan ve kaybeden alıcılar da kendi raporlarını oluşturabilir.
Bu belgede, cihaz üzerinde açık artırmanın nasıl yapılandırılacağı ve başlatılacağı açıklanmaktadır.
Protected Audience API reklam açık artırması yapılandırma
Protected Audience API reklam açık artırması çalıştırmak için ilk adım, açık artırmayı yapılandırmaktır. Bu işlem, auctionConfig nesnesi oluşturularak yapılır.
Bu tür bir yapılandırmaya örnek:
const auctionConfig = {
seller: 'https://seller.example',
decisionLogicUrl: ...,
trustedScoringSignalsUrl: ...,
interestGroupBuyers: ['https://buyer-1.example', 'https://buyer-2.example', ...],
auctionSignals: {...},
sellerSignals: {...},
sellerTimeout: 100,
perBuyerSignals: {
'https://buyer-1.example': {...},
'https://buyer-2.example': {...},
...
},
perBuyerTimeouts: {
'https://buyer-1.example': 50,
'https://buyer-2.example': 200,
'*': 150,
...
},
componentAuctions: [
{
'seller': 'https://component-seller.example',
'decisionLogicUrl': ...,
...
},
...
],
resolveToConfig: [true|false],
};
AuctionConfig tesis
Zorunlu özellikler
auctionConfigs için yalnızca seller, decisionLogicUrl ve interestGroupBuyers özellikleri gereklidir.
| Mülk | Örnek | Rol |
|---|---|---|
| satıcı | https://seller.example | Satıcının bulunduğu ülke. |
| decisionLogicUrl | https://seller.example/decision-logic.js | Açık artırma JavaScript karar mantığı işleti için URL. Bu alan, satıcı alanıyla aynı kaynağa sahip olmalıdır. |
| interestGroupBuyers | [https://buyer-1.example, https://buyer-2.example, ...] |
Açık artırmada teklif vermesi istenen tüm ilgi alanı grubu sahiplerinin kaynakları |
İsteğe bağlı özellikler
auctionConfigs için kalan özellikler isteğe bağlıdır.
| Mülk | Örnek | Rol |
|---|---|---|
| trustedScoringSignalsUrl | https://seller.example/scoring-signals | Satıcının anahtar/değer sunucusunun URL'si. Bu, reklam puanlama işlemi sırasında reklam öğesinin oluşturma URL'si anahtar olarak kullanılarak sorgulanır. Bu alan, satıcı alanıyla aynı kaynağa sahip olmalıdır. |
| auctionSignals | {"category":"news"} | Açık artırmaya katılan tüm alıcılar ve satıcılar için kullanılabilen sinyalleri temsil eden, JSON'a dönüştürülebilir nesne. |
| sellerSignals | {...} | Yalnızca satıcılar tarafından kullanılabilen sinyalleri temsil eden, JSON'a dönüştürülebilir nesne. |
| perBuyerSignals | {https://dsp.example: {...}, https://another-buyer.example: {...}, ... } |
Belirli bir alıcının kullanabileceği sinyaller. Sinyaller hem satıcılardan hem de alıcılardan gelebilir. |
| perBuyerTimeouts | {https://www.example-dsp.com: 50, https://www.another-buyer.com: 200, *: 150, ...}, |
Belirli bir alıcının generateBid() komut dosyasının milisaniye cinsinden maksimum çalışma süresi. Belirli bir zaman aşımı tanımlanmamış her alıcıya özel durum sembolü uygulanır. |
| sellerTimeout | 100 | Bir satıcının scoreAd() komut dosyasının milisaniye cinsinden maksimum çalışma süresi. |
| componentAuctions | [{seller: https://www.some-other-ssp.com, decisionLogicUrl: ..., ...}, ...] | Bileşen açık artırmaları için ek yapılandırmalar. |
| resolveToConfig | true|false | runAdAuction() işlevinden döndürülen sözün, doğruysa (bir <fencedframe> içinde kullanılmak üzere) FencedFrameConfig'e, yanlışsa (bir <iframe> içinde kullanılmak üzere) opak bir urn:uuid URL'sine çözümlenmesini yönlendiren bir Boole değeri. Varsayılan olarak yanlış değerini alır. |
Sinyalleri eşzamansız olarak sağlama
Bazı sinyallerin değerleri (auctionSignals, sellerSignals, perBuyerSignals ve perBuyerTimeouts alanları tarafından yapılandırılanlar) isteğe bağlı olarak somut değerler yerine Promises olarak sağlanabilir. Bu, açık artırmanın bazı bölümlerinin (ör. komut dosyalarının ve güvenilir sinyallerin yüklenmesi, yalıtılmış iş parçacığı süreçlerinin başlatılması) bu değerlerin hesaplanması (veya ağdan alınması) ile çakışmasına olanak tanır. İşletim birimi komut dosyaları yalnızca çözümlenen değerleri görür. Bu tür bir Promise reddedilirse açık artırma, zaten başarısız olmadıysa veya başka şekillerde iptal edilmediyse iptal edilir.
Birden fazla satıcıyla açık artırma yapılandırma
Bazı durumlarda, birden fazla satıcı bir açık artırmaya katılmak isteyebilir. Ayrı açık artırmaların kazananları, başka bir satıcı tarafından yürütülen başka bir açık artırmaya aktarılır. Bu ayrı açık artırmalara bileşen açık artırmaları denir.
Bu bileşen açık artırmalarını kolaylaştırmak için componentAuctions nesnesi, her satıcının bileşen açık artırması için ek açık artırma yapılandırmaları içerebilir. Bu bileşen açık artırmalarının her birindeki kazanan teklif, açık artırmanın nihai sonucunu belirleyen "üst düzey" açık artırmaya iletilir. Bileşen açık artırmalarının auctionConfig kendi componentAuctions olmayabilir. componentAuctions boş değilse interestGroupBuyers boş olmalıdır. Yani, herhangi bir Protected Audience açık artırmasında tek bir satıcı vardır ve bileşen açık artırması yoktur ya da tüm teklifler bileşen açık artırmalarından gelir ve üst düzey açık artırma yalnızca bileşen açık artırmalarının kazananları arasından seçim yapabilir.
Açık artırmayı çalıştırma
Satıcı, navigator.runAdAuction() işlevini çağırarak reklam açık artırması başlatmak için kullanıcının tarayıcısına istek gönderir.
try {
const auctionResultPromise = navigator.runAdAuction(auctionConfig);
} catch (error) {
// Handle error.
}
runAdAuction() çağrısı, reklamla sonuçlanan bir Promise döndürür. Yayıncı sayfasındaki hiçbir kodun, kazanan reklamı incelemesi veya runAdAuction() sonucundan içeriği hakkında bilgi edinmesi mümkün değildir. resolveToConfig işaretinin AuctionConfig içinde true olarak ayarlanması durumunda, yalnızca sınırlı bir çerçevede oluşturulabilen bir FencedFrameConfig nesnesi döndürülür. İşaret yanlış olarak ayarlanırsa bir iFrame'de oluşturulabilen opak bir URN döndürülür. runAdAuction işlevinin boş değer döndürmesi ve hiçbir reklamın seçilmediğini belirtmesi mümkündür. Bu durumda satıcı, içeriğe dayalı hedeflenmiş bir reklam yayınlamayı seçebilir.