Raporty o aukcjach w ramach Protected Audience API

Pomiar danych i wyników aukcji interfejsu Protected Audience API

W tym artykule znajdziesz ogólne omówienie różnych mechanizmów pozwalających przesyłać dane z aukcji Protected Audience API na Twój serwer, a także mechanizmy przenoszenia, których możesz używać podczas migracji do czasu, aż przygotujesz alternatywne rozwiązania.

Aby tworzyć raporty o ważnych danych zbieranych z aukcji reklam, interfejs Protected Audience API obsługuje:

  • Agregacja prywatna, która gromadzi sygnały i wyniki aukcji na potrzeby generowania raportów z podsumowaniem.
  • Interfejs Ads Reporting API dla ramek chronionych i elementów iframe, czyli kanału wewnątrz ramek służącego do komunikacji z pracetami Protected Audience API. Interfejs API umożliwia powiązanie danych na poziomie zdarzenia z sygnałami aukcji. Raportowanie na poziomie zdarzenia w ramach interfejsu Ads Reporting API jest mechanizmem przejściowym, który obowiązuje do momentu opracowania bardziej prywatnego mechanizmu raportowania.
  • Raporty atrybucji, które umożliwiają powiązanie danych o konwersjach z sygnałami aukcji.
  • Pamięć współdzielona, która umożliwia zapisywanie sygnałów aukcji w pamięci z innych domen, a następnie umożliwia późniejsze raportowanie tych danych za pomocą agregacji prywatnej.

Omówienie raportów w ramach Protected Audience API

Ogólny przepływ pracy w ramach Protected Audience
Ogólny przepływ pracy w ramach Protected Audience

Istnieją 3 główne okresy, w których dane z przebiegu aukcji Protected Audience API można przesyłać na Twój serwer: czas aukcji, gdy aukcja jest przeprowadzana z witryny wydawcy, czas renderowania, gdy reklama jest renderowana w chronionej ramce lub elemencie iframe w witrynie wydawcy, oraz czas konwersji, gdy użytkownik wykona w innej witrynie działanie, które może zostać przypisane do aukcji.

W czasie aukcji możesz raportować dane z aukcji za pomocą workletów raportowania. Podczas renderowania możesz raportować dane o zaangażowaniu pochodzące z elementu iframe lub ramki chronionej. W czasie konwersji możesz raportować dane o atrybucji ze strony docelowej za pomocą interfejsu Attribution Reporting API.

Lokalizacje raportowania

W ramach aukcji kupujący mogą zgłaszać sygnały dostępne w workletach generateBid() i reportWin(), a sprzedawcy – sygnały dostępne w elementach scoreAd() i reportResult(). Poza aukcją kupujący i sprzedawcy mogą raportować dane z ramki, która wyrenderowała reklamę, oraz z witryny, na której doszło do konwersji.

Przedział czasu Miejsce docelowe Lokalizacja Dane są dostępne Dostępne interfejsy API do raportowania
Aukcja Osoba odpowiadająca za zakupy generateBid() Sygnały, wyniki aukcji i skuteczność aukcji Interfejs Private Aggregation API
reportWin() Private Aggregation API
Ads Reporting API
Sprzedawca scoreAd() Interfejs Private Aggregation API
reportResult() Private Aggregation API
Ads Reporting API
Renderuj Kupujący / sprzedawca Ramka w witrynie wydawcy Dane na poziomie zdarzenia w ramce reklamy Private Aggregation API
Ads Reporting API
Konwersje Kupujący / sprzedawca Witryna konwersji Dane na poziomie konwersji i zdarzenia pochodzące z witryny konwersji Attribution Reporting API
Private Aggregation API
Ads Reporting API

W każdym z wymienionych okresów kupujący i sprzedawcy będą mieli dostęp do różnych interfejsów API do raportowania dostępnych do raportowania danych, takich jak sygnały z aukcji, dane na poziomie zdarzenia czy dane o konwersjach.

Dane dostępne w ramach aukcji Protected Audience API

Podczas aukcji można generować raporty dotyczące tych danych, korzystając z workletu Protected Audience API.

Sygnały

Sygnały to dane kontekstowe aukcji, dane użytkownika, dane w czasie rzeczywistym i dane przeglądarki dostępne dla kupujących i sprzedawców w ramach Workletu na potrzeby generowania stawki, oceny reklamy i raportowania wyników aukcji.

Sygnał Opis Ustaw lokalizację Użytkownicy Dostępność
auctionSignals Dane dostępne w kontekście miejsca, w którym odbywa się aukcja. Dane te mogą obejmować m.in. informacje o zawartości strony i własne dane użytkownika. Jest ona ustawiana przez sprzedawcę w witrynie wydawcy w konfiguracji aukcji. Buyer
Seller
generateBid ScoreAd reportWin (Wynik raportu)
directFromSellerSignals Te same dane w przypadku komponentów auctionSignals, perBuyerSignals i sellerSignals, ale sygnały muszą pochodzić od określonego sprzedawcy. Ustawione przez sprzedawcę za pomocą nagłówków odpowiedzi HTTP Buyer
Seller
generateBid ScoreAd reportWin (Wynik raportu)
browserSignals Różne dane dostarczone przez przeglądarkę (topWindowHostname, interestGroupOwner, renderUrl, adComponents, biddingDurationMsec, IGJoinCount, IGRecency, modelingSignals). Ustawione przez przeglądarkę. Buyer
Seller
generateBid ScoreAd reportWin (Wynik raportu)
sellerSignals Sygnały przekazane sprzedawcy na potrzeby oceny reklamy. Jest ona ustawiana przez sprzedawcę w witrynie wydawcy w konfiguracji aukcji. Sprzedawca scoreAd
reportWin
reportResult
trustedScoringSignals Sygnały w czasie rzeczywistym przekazywane sprzedawcy na potrzeby oceny reklamy. Adres URL jest ustawiany przez sprzedawcę w witrynie wydawcy w konfiguracji aukcji. Sprzedawca Wynik Raportu reklamy
perBuyerSignals Dane kontekstowe aukcji dla konkretnych kupujących. Sprzedawca może pobrać wartości dla kupujących przed rozpoczęciem aukcji. Jest to wiedza kupującego o możliwości reklamowej. Jest ona ustawiana przez sprzedawcę w witrynie wydawcy w konfiguracji aukcji. Osoba odpowiadająca za zakupy generateBid ScoreAd reportWin (Wynik raportu)
trustedBiddingSignals Sygnały w czasie rzeczywistym dostarczane kupującym na potrzeby określania stawek za reklamy. Adres URL jest ustawiany przez kupującego w witrynie reklamodawcy, gdy określona jest grupa zainteresowań. Osoba odpowiadająca za zakupy generateBid
userBiddingSignals Dane użytkownika podane przez kupującego. Określana przez kupującego w witrynie reklamodawcy, gdy określona jest grupa zainteresowań . Osoba odpowiadająca za zakupy generateBid

Obiekt auction config (Konfiguracja aukcji) jest głównym źródłem danych dostarczanych na potrzeby udostępniania jako sygnały w workletach. Wydawca i sprzedawca mogą dostarczać w konfiguracji aukcji dane kontekstowe i dane własne, które mogą być wzbogacone o dane grupy zainteresowań od kupującego, dane na poziomie zdarzenia z ramki renderowania reklamy oraz dane o atrybucji ze strony po kliknięciu. Zgłaszane dane mogą być używane m.in. na potrzeby raportowania dotyczącego kupujących i sprzedawców, rozliczeń, ustalania budżetu, trenowania modeli ML.

Inne dostępne dane

  • Dane o wynikach powiązane z danymi o wygranych i przegranych aukcjach, np. o zwycięskiej stawce i przyczynie odrzucenia stawki.
  • Dane o skuteczności, które zawierają informacje o opóźnieniu, np. ile czasu zajęło pobranie i wykonanie zadania określania stawek.

Dane dostępne poza aukcją Protected Audience API

Poza aukcją Protected Audience API istnieją 2 okresy, w których dane są dostępne do uwzględnienia w raportach.

Podczas renderowania, gdy reklama jest renderowana w witrynie wydawcy, dane na poziomie zdarzenia pochodzące z elementu iframe lub chronionej ramki mogą zostać powiązane z danymi aukcji interfejsu Protected Audience API i przesyłane do serwera. Przykładowe dane na poziomie zdarzenia obejmują wyświetlenie reklamy, kliknięcie, najechanie kursorem myszy i wszelkie inne zdarzenia wewnątrz ramki.

Gdy w czasie konwersji użytkownik wykona działanie na stronie docelowej, które jest przypisane do aukcji, dane ze strony konwersji na poziomie zdarzenia mogą zostać powiązane z danymi aukcji Protected Audience API i przesyłane do serwera.

Raporty na poziomie zdarzenia

Raporty na poziomie zdarzenia zawierają szczegółowe informacje o jednym lub większej liczbie zdarzeń. Zdarzeniem może być wygrana w aukcji, wyświetlenie reklamy lub konwersja. Co najmniej do 2026 r. raporty o wygranych aukcjach na poziomie zdarzenia pozostaną dostępne, do wyświetlania reklam z Protected Audience API nie będą wymagane ramki zabezpieczone, a do raportowania na poziomie zdarzenia będzie można używać elementu iframe z nieograniczonym dostępem do sieci. Interfejs Ads Reporting API jest dostępny w ramkach chronionych ramkach i elementach iframe, co umożliwia powiązanie danych o aukcjach i konwersjach z danymi na poziomie zdarzenia pochodzącymi z tej ramki. Ma to na celu ułatwienie migracji ekosystemu, ponieważ możesz korzystać z dotychczasowej infrastruktury raportowania co najmniej do 2026 roku podczas przenoszenia systemu do Protected Audience API.

Raporty o wygranych aukcjach na poziomie zdarzenia (sendReportTo())

Mechanizmem służącym do raportowania danych na poziomie zdarzenia w ramach aukcji z użyciem Protected Audience API jest sendReportTo() function w wygranej aukcji. Funkcja ta jest dostępna w składnikach raportowania kupującego i sprzedawcy, a po rozpoczęciu renderowania reklamy przeglądarka wysyła do podanego ciągu adresu URL żądanie GET. Jako parametry zapytania URL możesz zakodować dowolny sygnał dostępny w workletach.

Na przykład w celach rozliczeniowych kupujący może zgłosić zwycięską stawkę z workletu reportWin():

// Buyer reporting worklet
function reportWin(auctionSignals, perBuyerSignals, sellerSignals, browserSignals, directFromSellerSignals) {
  sendReportTo(`https://buyer-reporting-server.example/reporting?bid=${browserSignals.bid}`);
}

Funkcji sendReportTo() można używać do generowania raportu o wygranej dla sprzedawcy (w przypadku wywołania z reportResult()) oraz do raportu o wygranej dla kupującego, gdy zostanie wywołany z reportWin(). Funkcja sendReportTo() będzie dostępna co najmniej do 2026 roku,

Raport Zaangażowanie

Raport zaangażowania zawiera dane na poziomie zdarzenia pochodzące z kreacji, np. dane o wyświetleniach lub kliknięciach, powiązane z sygnałami aukcji interfejsu Protected Audience API, która wyrenderowała reklamę. Reklama jest renderowana po zakończeniu aukcji, więc sygnały aukcji nie są dostępne w ramce, która ją renderuje. Aby powiązać dane z różnych okresów, udostępniamy 2 mechanizmy przejścia umożliwiające generowanie raportów zaangażowania.

Opisanej powyżej funkcji sendReportTo() można używać do łączenia danych aukcji z danymi na poziomie zdarzenia pochodzącymi z elementu iframe, ale nie działa ona w przypadku ramki chronionej, ponieważ z elementu umieszczanych nie można przekazać unikalnego identyfikatora, ponieważ komunikacja między elementem osadzonym a ramką zabezpieczoną jest ograniczona. Aby powiązać dane aukcji z danymi na poziomie zdarzenia pochodzącymi z reklamy w ramce zabezpieczonej, możesz użyć interfejsu Ads Reporting API.

Interfejs Ads Reporting API dla ramek chronionych i elementów iframe

Interfejs Ads Reporting API dotyczący ramek zabezpieczonych i elementów iframe umożliwia powiązanie danych na poziomie zdarzenia użytkownika z ramki reklamy z sygnałami w aukcji z Protected Audience API.

W narzędziu do raportowania Protected Audience API możesz zarejestrować beacon dla reklam za pomocą funkcji registerAdBeacon() i przekazać adres URL raportowania z sygnałami dodanymi jako parametry zapytania. Możesz też określić zdarzenie niestandardowe, które chcesz powiązać z adresem URL raportowania. Później, gdy reklama będzie renderowana w ramce zabezpieczonej, możesz wywołać zdarzenie niestandardowe, wywołując funkcję window.fence.reportEvent(). Jako ładunek można dodać dane dostępne w ramce ogrodzonej.

Funkcja registerAdBeacon() jest dostępna tylko w funkcjach raportowania i nie jest dostępna w logice ustalania stawek kupującego ani w logice punktacji sprzedawcy.

W tym przykładzie identyfikator kampanii jest powiązany z ładunkiem na poziomie zdarzenia ze współrzędnymi kliknięcia:

// Protected Audience API buyer win reporting worklet
function reportWin(auctionSignals) {
  const { campaignId } = auctionSignals

  registerAdBeacon({
    click: `https://buyer-server.example/report/click?campaignId=${campaignId}`
  })
}
// Protected Audience API seller reporting worklet
function reportResult(auctionConfig) {
  const { campaignId } = auctionConfig.auctionSignals;

  registerAdBeacon({
    click: `https://seller-server.example/report/click?campaignId=${campaignId}`
  })
}
// Ad frame
window.fence.reportEvent({
  eventType: 'click',
  eventData: JSON.stringify({'clickX': '123', 'clickY': '456'}),
  destination:['buyer', 'seller']
});

Interfejs Fenced Frames Ads Reporting API będzie też dostępny co najmniej do 2026 roku z tych samych powodów co w przypadku raportowania wygranych.

Aby dowiedzieć się więcej, zobacz objaśnienie.

Nieograniczony dostęp do sieci

Ramki chronione umożliwiają ładowanie zasobów sieciowych w taki sam sposób jak elementy iframe. Możesz też wysyłać na swój serwer dane na poziomie zdarzenia w ramkach chronionych ramek. Raporty na poziomie zdarzenia możesz później generować po stronie serwera, powiązując dane na poziomie zdarzenia z chronionej ramki z danymi aukcji przesłanymi za pomocą funkcji sendReportTo(), które zostało omówione powyżej w sekcji Mechanizm raportowania na poziomie zdarzenia aukcji.

Dostęp do sieci będzie w przyszłości ograniczony.

Raport atrybucji

Raport atrybucji umożliwia powiązanie konwersji w witrynie z reklamą wybraną z aukcji Protected Audience API. Na przykład użytkownik może kliknąć wyświetlaną przez Ciebie reklamę produktu, przejść na stronę reklamodawcy i tam dokonać zakupu, a Ty chcesz przypisać zakup do wyświetlanej reklamy. Interfejs Attribution Reporting API zostanie zintegrowany z interfejsem Protected Audience API, aby łączyć dane z aukcji pochodzące z witryny wydawcy i dane o konwersjach z witryny reklamodawcy.

Pracujemy nad bardziej trwałym rozwiązaniem, ale w przypadku zabezpieczonych ramek możesz używać interfejsu Ads Reporting API jako mechanizmu przejściowego do generowania raportów agregowanych na poziomie zdarzenia za pomocą Attribution Reporting. Pamiętaj, że te raporty służą do pomiaru konwersji. Są one niezależne od raportów dotyczących zaangażowania na poziomie zdarzenia i zbiorczych raportów o zaangażowaniu generowanych na podstawie aukcji i ramki reklamy. Gdy wszystko będzie gotowe, opublikujemy wyjaśnienie.

Mechanizm przejściowy

Rejestrując beacon, możesz użyć słowa kluczowego reserved.top_navigation, które automatycznie doda do niego nagłówek Attribution-Reporting-Eligible, aby móc zarejestrować się jako źródło atrybucji.

registerAdBeacon({
 'reserved.top_navigation': 'https://adtech.example/click?buyer_event_id=123',
});

Aby dołączyć do zarejestrowanego beaconu dane na poziomie zdarzenia, możesz wywołać funkcję setReportEventDataForAutomaticBeacons() z zabezpieczonej ramki z ładunkiem zdarzenia.

window.fence.setReportEventDataForAutomaticBeacons({
  eventType: 'reserved.top_navigation',
  eventData: 'data from the frame',
  destination:['seller', 'buyer']
})

Więcej informacji znajdziesz w sekcji z raportami atrybucji w objaśnieniu dotyczącym interfejsu Ads Reporting API.

Przykład raportowania zaangażowania i konwersji

W tym przykładzie przyjrzymy się temu z perspektywy kupującego, który chce powiązać ze sobą dane z aukcji, ramki reklamy i witryny konwersji.

W tym procesie kupujący kontaktuje się ze sprzedawcą, aby przesłać unikalny identyfikator do aukcji. Podczas aukcji kupujący przesyła ten unikalny identyfikator razem z danymi aukcji. Podczas renderowania i konwersji dane z chronionej ramki lub elementu iframe też są wysyłane z tym samym unikalnym identyfikatorem. Później za pomocą unikalnego identyfikatora można powiązać ze sobą te raporty.

Przepływ pracy:

  1. Przed rozpoczęciem aukcji kupujący wysyła do sprzedawcy unikalny identyfikator w ramach odpowiedzi na pytanie o stawkę w ramach automatycznego określania stawek w czasie rzeczywistym („RTB”). Identyfikator może być ustawiony jako zmienna, np. auctionId. Identyfikator jest przekazywany w auctionConfig jako perBuyerSignals i staje się dostępny w workletach kupującego.
  2. W czasie aukcji kupujący może zarejestrować obraz typu beacon, który ma być aktywowany w czasie renderowania reklamy i konwersji (registerAdBeacon()).
    1. Aby powiązać sygnały aukcji ze zdarzeniem ramki reklamy, ustaw auctionId jako parametr zapytania adresu URL obrazu typu beacon.
    2. Aby powiązać sygnały aukcji z danym zdarzeniem konwersji, w adresie URL obrazu typu beacon ustaw parametr auctionId.
  3. Podczas renderowania reklamy beacony zarejestrowane w czasie aukcji mogą być uruchamiane lub wzmacniane za pomocą danych na poziomie zdarzenia.
    1. Wywołaj zdarzenie ramki za pomocą funkcji reportEvent() i przekaż dane na poziomie zdarzenia.
    2. Dodaj ładunek na poziomie zdarzenia do obrazu typu beacon atrybucji za pomocą funkcji setReportEventDataForAutomaticBeacons()
    3. Zarejestruj reklamę za pomocą Attribution Reporting API, odpowiadając na żądania beaconu za pomocą nagłówka Attribution-Reporting-Register-Source.
  4. W czasie konwersji możesz aktywować źródło zarejestrowane w czasie aukcji.

Po zakończeniu tego procesu kupujący będzie mieć raport aukcji, raporty zaangażowania i raporty o konwersjach powiązane w jednym unikalnym kluczu, który można powiązać ze sobą.

Podobny proces ma zastosowanie w przypadku sprzedawcy, który potrzebuje dostępu do danych atrybucji. Sprzedawca może też użyć unikalnego identyfikatora, aby wysłać zamówienie za pomocą funkcji registerAdBeacon(). Wywołanie reportEvent() w ramce zawiera właściwość docelową, której można używać do wysyłania raportu zarówno do kupującego, jak i sprzedawcy. Pamiętaj, że aby reguła została przypisana do źródła, platforma SSP musi znajdować się także na stronie docelowej.

Agregowanie danych z Protected Audience API

Interfejs Private Aggregation API to mechanizm używany do raportowania danych z Protected Audience API w celu wygenerowania raportu podsumowującego, który jest zagmatwanym, zbiorczym raportem danych zebranych w zasobnikach. Zasobnik jest reprezentowany przez klucz agregacji, a niektóre informacje mogą być zakodowane w tym kluczu.

Na przykład zdarzenie wyświetlenia reklamy może być zliczane do różnych grup, z których każdy reprezentuje inną kampanię reklamową. Raport podsumowujący różni się od raportu na poziomie zdarzenia tym, że nie zawiera informacji o poszczególnych zdarzeniach. Korzystając z raportu na poziomie zdarzenia, możesz ustalić, że użytkownicy A, B i C widzieli kampanię 123. Dzięki raportom podsumowującym możesz mierzyć liczbę użytkowników, którzy obejrzeli kampanię 123, i dodajemy szumy, aby chronić prywatność użytkowników.

Więcej informacji o interfejsie API znajdziesz w artykule Agregacja prywatna.

Agregowanie sygnałów aukcji

Sygnały dostępne w workletach możesz agregować na serwerze za pomocą agregacji prywatnej. Do agregacji sygnałów możesz użyć metody privateAggregation.contributeToHistogram() dostępnej w workletze określania stawek kupującego, w Workletie oceny sprzedawcy i w workletach raportowania kupujących/sprzedawców.

W tym przykładzie zwycięska stawka jest zgrupowana w zasobniku właściciela grupy zainteresowań:

function convertBuyerToBucket(igOwner) {}
function convertWinningBidToValue(winningBid) {}

function reportResult(auctionConfig, browserSignals) {
  privateAggregation.contributeToHistogram({
    bucket: convertBuyerToBucket(browserSignals.interestGroupOwner),
    value: convertWinningBidToValue(browserSignals.bid)
  });
} 

Jest to ogólny mechanizm używany, gdy sygnały, które chcesz agregować, nie są powiązane z danymi na poziomie zdarzenia i nie są wywoływane przez zdarzenie poza aukcją. Aby dowiedzieć się więcej o raportowaniu sygnałów aukcji, zapoznaj się z objaśnieniem.

Zbieranie sygnałów aukcji z danymi o zdarzeniach

Możesz łączyć sygnały z aukcji z ograniczonymi informacjami o zdarzeniu występującym w ramce reklamy. Możesz np. zbiorczo mierzyć liczbę kliknięć reklamy w danej kampanii, tworząc zasobnik reprezentujący tę kampanię i zdarzenie kliknięcia. Pamiętaj, że z poziomu ramki reklamy możesz określić, jakie zdarzenie miało miejsce, ale nie możesz dołączyć ładunku na poziomie zdarzenia.

Aby agregować sygnały aukcji według zdarzenia, możesz użyć parametru privateAggregation.contributeToHistogramOnEvent(eventType, contribution), który pobiera ciąg znaków określający typ zdarzenia i raportowany udział w raporcie po jego wywołaniu. Możesz wywołać tę metodę z niestandardowym typem zdarzenia, a następnie wywołać window.fence.reportEvent(eventType) z ramki reklamy, aby przesłać raport.

Załóżmy, że chcesz zmierzyć, ile kliknięć uzyskała reklama w danej kampanii.

// Protected Audience API worklet
function getClickReportBucketForCampaign(campaignId) {
  // return a bucket for the campaign ID and the click event
}

function generateBid(interestGroup) {
  privateAggregation.contributeToHistogramOnEvent('click', {
    bucket: getClickReportBucketForCampaign(interestGroup.ads.metadata.campaignId), 
    value: 1
  });
}

W funkcji generowania stawek możesz zdefiniować zasobnik jako kombinację identyfikatora kampanii i zdarzenia kliknięcia, a następnie zwiększać wartość tego segmentu o 1 przy każdym wywołaniu zdarzenia.

// Ad frame
window.fence.reportEvent('click');

Później z poziomu ramki reklamy możesz uruchomić przesyłanie raportu, wywołując metodę reportEvent(eventType):

Więcej informacji o włączaniu treści generowanych przez agregację prywatną z klatki znajdziesz w objaśnieniu.

Raportowanie wyników i skuteczności aukcji

Możesz też agregować wyniki aukcji w przypadku wywołania zdarzenia wygranej lub przegranej aukcji za pomocą parametru contributeToHistogramOnEvent(eventType, contribution), gdy przekażesz słowa kluczowe typu zdarzenia zarezerwowanego (reserved.win, reserved.loss i reserved.always).

Agregacja prywatna zapewnia listę wartości podstawowych, na podstawie których możesz obliczyć zasobnik i wartość darowizny. Dostępne wartości podstawowe dla wyników aukcji to wartość stawki za zwycięskiej reklamy, wartość stawki, która została oznaczona jako druga najwyższa, oraz powód odrzucenia stawki z aukcji.

Jeśli podasz wartość podstawową, np. zwycięską stawkę, możesz określić, o ile chcesz dodać lub odjąć od tej wartości, a następnie podać ostateczną wartość. Jeśli na przykład jako wartość bazowa podawana jest zwycięska stawka w wysokości 5 zł, możesz odjąć stawkę w wysokości 2 zł, aby obliczyć rzeczywistą wartość 3 zł od kwoty przegranej aukcji.

Raportowanie wyników aukcji

Przyjrzyjmy się przykładowi przegranej aukcji i chcesz się dowiedzieć, jak daleko Twoja stawka znajdowała się od ceny rozliczenia aukcji.

Aby dowiedzieć się, o jaką kwotę przegrałeś aukcję, możesz odjąć wybraną stawkę od zwycięskiej stawki:

function generateBid() {
  const bid = calculateBidAmount();

  privateAggregation.contributeToHistogramOnEvent('reserved.loss', {
    bucket: getBucketForCampaign(interestGroup.ads.metadata.campaignId),
    value: {
      baseValue: 'winning-bid',
      scale: 1 // Scale the value to minimize noise-to-signal ratio 
      offset: -bid, // Numbers added to browser value after scaling 
    }
  });
}

Po przesłaniu raportu rzeczywista zarejestrowana wartość będzie skalowana jako baseValue przesunięta o wartość offset. Aby dowiedzieć się więcej, zobacz objaśnienie.

Raportowanie skuteczności

Kupujący i sprzedawcy mogą zgłaszać, ile czasu zajęło wykonanie skryptu i jak długo trwało pobieranie zaufanych sygnałów. Sprzedawcy mogą zbierać dane o czasie generowania stawki i czasie trwania zaufanego sygnału ustalania stawek każdego kupującego za jego zgodą.

Aby dowiedzieć się więcej, zapoznaj się z objaśnieniem.

Przechowywanie sygnałów aukcji w pamięci współdzielonej

Pamięć współdzielona to niepartycjonowana pamięć między domenami, w której możesz swobodnie zapisywać dane, ale chroniona przy odczytywaniu i przetwarzaniu przechowywanych wartości, chroniona przez bramki. Jedną z dostępnych bram dla interfejsu Shared Storage API jest agregacja prywatna. Wartości w pamięci współdzielonej możesz odczytywać tylko z weletu i zgłaszać te wartości za pomocą agregacji prywatnej z workletu.

W pamięci współdzielonej możesz też zapisywać dane z workletów określania stawek, punktacji i raportowania w ramach Protected Audience API. Później możesz zgłosić te wartości w pamięci współdzielonej na serwerze za pomocą agregacji prywatnej . Możesz też użyć zapisanych wartości w operacji Wybór adresu URL.

Z poziomu Workletu Protected Audience API możesz zapisać dowolne klucze i wartości w pamięci współdzielonej:

// Protected Audience API worklet
function generateBid() {
  sharedStorage.set('test-bucket', 123);
}

Później możesz wczytać Worklet pamięci współdzielonej, aby odczytywać i wysyłać tę wartość za pomocą agregacji prywatnej:

// Shared Storage worklet
class SendReachReport{
  async run() {
    const testBucket = await this.sharedStorage.get('test-bucket');

    privateAggregation.contributeToHistogram({
      bucket: testBucket,
      value: 1
    });
  }
}

register('send-report', SendReachReport);

Aby dowiedzieć się więcej o pamięci współdzielonej, zapoznaj się z sekcją dotyczącą pamięci współdzielonej w przewodniku dla programistów raportowania interfejsu Protected Audience API oraz z objaśnieniem, prezentacją na żywo i kodem demonstracyjnym na GitHubie.

Co dalej?

Chcemy wspólnie z Tobą rozmawiać, aby mieć pewność, że stworzyliśmy interfejs API dla wszystkich użytkowników.

Omów interfejs API

Podobnie jak inne interfejsy API Piaskownicy prywatności, ten interfejs API jest udokumentowany i omawiany publicznie.

Eksperymentuj z interfejsem API

Możesz eksperymentować i uczestniczyć w rozmowach na temat interfejsu Protected Audience API.