Panoramica dell'API Topics per dispositivi mobili

Inviare feedback

Informazioni sull'API Topics

Nella pubblicità mobile, gli inserzionisti vogliono pubblicare annunci pertinenti correlati agli interessi di un utente. Ad esempio, se un utente è interessato a informazioni relative alla cucina, potrebbe trovare gli annunci di cucina più pertinenti rispetto a quelli non correlati ai suoi interessi.

La pubblicità contestuale si basa esclusivamente sugli interessi derivanti dai contenuti correnti visualizzati (e pubblicizzati). Uno dei vantaggi dell'API Topics è che consente alle app utili per l'utente, ma che forse non potrebbero essere monetizzate facilmente tramite la pubblicità contestuale, di mostrare all'utente annunci più pertinenti di quanto non avrebbero altrimenti, il che contribuisce a finanziare le app utilizzate dall'utente.

L'API Topics deduce indicatori di interesse generali on-device in base all'utilizzo dell'app da parte dell'utente. Questi indicatori, chiamati argomenti, verranno condivisi con gli inserzionisti, supportando indicatori contemporanei e altri indicatori proprietari senza richiedere il monitoraggio dei singoli utenti nelle varie app.

L'API Topics è progettata per supportare SDK per la pubblicità di terze parti che generalmente funzionano su più app. Questo supporto si presenta sotto forma di far emergere alcuni degli interessi tra app che questi SDK normalmente osservano. I singoli sviluppatori di app non devono aspettarsi di scoprire ulteriori informazioni sui propri utenti.

Concetti fondamentali

  • Un argomento è un argomento leggibile di interesse per questo utente e fa parte della tassonomia di Topics.
  • Un argomento è osservato da un chiamante (un'app o un SDK di terze parti utilizzato nell'app) se il chiamante ha effettuato una richiesta API Topics da un'app associata all'argomento nelle ultime tre epoche.
  • Un'epoca è un periodo di calcolo di un argomento, ad esempio una settimana.

Come funziona

Con questa proposta, l'API Topics intende fornire ai chiamanti argomenti pubblicitari di interesse generali basati sull'utilizzo delle app da parte dell'utente. Questi argomenti possono essere utilizzati per integrare qualsiasi informazione contestuale relativa all'app che vuole pubblicare un annuncio e possono essere combinati per trovare un annuncio appropriato per l'utente.

Per esempi di codice che dimostrano come configurare la possibilità di recuperare gli argomenti per la pubblicità basata sugli interessi, consulta la guida per gli sviluppatori dell'API Topics. Nota: le API non sono ancora finalizzate.

Gli argomenti vengono selezionati da una tassonomia open source predefinita.

La piattaforma utilizza un modello di classificazione per dedurre gli argomenti. L'implementazione dell'API Topics e il suo utilizzo del classificatore faranno parte del progetto open source Android e miglioreranno nel tempo.

A scopo illustrativo, il seguente esempio di codice mostra l'utilizzo degli argomenti per recuperare un annuncio basato sugli interessi. Le API utilizzate qui non sono definitive.

// Initialize the Topics API.
…
topicsFuture = AdvertisingTopicsClient.getTopics();

// Retrieve Topics and use them in Ad request.
Futures.addCallback(
    topicsFuture,
    new FutureCallback<AdvertisingTopicsInfo>() {
        @Override
        public void onSuccess(@Nullable AdvertisingTopicsInfo topicsInfo) {
            // Sanitize Topics result.
            ...
            // Initialize ad request with Topics obtained.
            AdRequest adRequest = AdRequest.initialize(topicsInfo);
        }

        @Override
        public void onFailure(Throwable t) {
            // Handle error.
            ...
        }
});

Per comprendere meglio il funzionamento del modello di classificazione, puoi testare in che modo i diversi dati dell'app reagiscono nel sistema utilizzando Android Topics Classifier Colab.

Ottenere l'accesso alle API Topics

Le piattaforme di ad tech devono essere registrate per accedere all'API Topics; consulta Registrazione per un account Privacy Sandbox per ulteriori informazioni.

Dettagli

  • Una volta ogni epoca (ad es. una volta alla settimana), i 5 argomenti principali dell'utente vengono calcolati utilizzando le informazioni sul dispositivo.

    • Quando viene chiamata l'API Topics, la piattaforma controlla se un argomento è stato assegnato all'app che richiama l'API. Se non sono presenti argomenti assegnati, ne verrà scelto uno come segue e l'argomento scelto verrà assegnato a questa app per il resto di questo epoca.
      • Con una probabilità del 95%, un argomento viene scelto in modo casuale dall'elenco dei primi 5 argomenti calcolati per quell'epoca.
      • Con il 5% di probabilità, un argomento viene scelto in modo casuale dalla tassonomia.
      • Un chiamante può specificare che vuole recuperare gli argomenti senza modificare lo stato chiamando getTopics utilizzando il parametro shouldRecordObservation = false. Ciò significa che gli argomenti possono essere restituiti, ma la chiamata non verrà inclusa nel calcolo dell'epoca settimanale né aggiornerà l'elenco degli argomenti osservati per il chiamante.
    • Il motivo per cui ogni app riceve uno dei vari argomenti è garantire che le diverse app ricevano argomenti diversi, rendendo più difficile per le app eseguire la correlazione incrociata dello stesso utente.
      • Ad esempio, l'app A potrebbe vedere l'argomento T1 per l'utente, ma l'app B potrebbe vedere l'argomento T2. In questo modo è più difficile per le due app determinare che queste informazioni sono associate allo stesso utente.
  • L'API Topics restituisce un elenco di massimo tre argomenti, uno per ciascuna delle ultime tre epoche.

    • Fornendo fino a 3 argomenti, le app usate di rado avranno un numero sufficiente di argomenti per trovare annunci pertinenti, mentre le app usate di frequente apprenderanno al massimo 1 nuovo argomento alla settimana.
    • Le informazioni sull'argomento restituite includono un ID argomento (int) corrispondente a una voce della tassonomia, una versione della tassonomia e una versione del modello di classificazione.
    • Solo i chiamanti che hanno osservato che l'utente utilizzava un'app associata all'argomento in questione nelle ultime tre epoche possono ricevere l'argomento.
    • Tutti gli argomenti restituiti rappresentano gli interessi dell'utente e puoi selezionare uno o tutti questi argomenti per la personalizzazione degli annunci nella tua richiesta di annuncio.
  • Dopo che un argomento viene assegnato all'app che richiama l'API Topics, la piattaforma determinerà se il chiamante può ricevere questo argomento.

    • Solo i chiamanti che hanno osservato il coinvolgimento degli utenti verso un'app associata all'argomento in questione nelle ultime tre epoche possono ricevere l'argomento.
    • Se il chiamante non ha chiamato l'API in passato per quell'utente in un'app su quell'argomento, l'argomento non sarà incluso nell'elenco restituito dall'API.
    • Se il chiamante non ha ricevuto argomenti negli ultimi 3 epoche, l'API Topics restituirà un elenco vuoto.

    Ad esempio, supponiamo che l'utente abbia installato 7 app sul dispositivo: A, B, C, D, E, F e G. Supponiamo che la classificazione dell'argomento per l'app e gli SDK di tecnologia pubblicitaria in queste app sia la seguente:

    App Classificazione degli argomenti SDK ad tech
    A T1 e T5 ad-sdk1, ad-sdk2
    B T2 SDK2
    C T3, T6 ad-sdk3, ad-sdk4
    D T1, T4 SDK1
    E T5 ad-sdk4, ad-sdk5
    F T6 ad-sdk2, ad-sdk3, ad-sdk4
    G T7 SDK2
    • Fine della settimana 1: l'API Topics genera i 5 argomenti principali dell'utente per questa epoca.
    Argomento principale Chiamanti che possono saperne di più sull'argomento
    T1 ad-sdk1, ad-sdk2
    T2 SDK2
    T3 ad-sdk3, ad-sdk4
    T4 SDK1
    T5 ad-sdk1, ad-sdk2, ad-sdk4, ad-sdk5
    • Nella seconda settimana, se un chiamante in qualsiasi app chiama l'API, l'elenco di argomenti restituito includerà solo gli argomenti per cui il chiamante si trova nella colonna "Chiamatori che possono conoscere l'argomento" per l'argomento dell'app per quell'epoca.
    • La finestra della cronologia inclusa nel calcolo degli argomenti disponibili per ogni chiamante è di 3 epoche (o 3 settimane).
    • Vengono utilizzati solo gli argomenti associati alle app che richiamano l'API Topics tramite SDK di annunci. Ciò significa che se un'app non include SDK di annunci che chiamano l'API Topics, gli argomenti associati all'app non contribuiscono al pool di argomenti accessibili dagli SDK di annunci.
    • Un'app può anche disattivare in modo dichiarativo l'API Topics tramite nuovi elementi manifest e XML per impedire agli SDK di annunci di usare l'API per l'app. Gli argomenti associati alle app disattivate non contribuiranno al calcolo degli argomenti settimanali. Questo documento verrà aggiornato in modo da includere i relativi dettagli di implementazione.
  • Se l'utilizzo delle app non è sufficiente per consentire alla piattaforma di dedurre 5 argomenti, la piattaforma potrebbe prendere in considerazione opzioni come la generazione casuale degli argomenti rimanenti.

Tassonomia

  • Nell'attuale proposta, la tassonomia iniziale includerà un numero di argomenti compreso tra alcune centinaia e alcune migliaia di argomenti. La proposta di tassonomia iniziale verrà condivisa in un prossimo aggiornamento di questo documento.
  • Questa tassonomia sarà curata da persone fisiche, in modo che gli argomenti sensibili non facciano parte della tassonomia.
  • Questa tassonomia sarà personalizzata in base alle categorie di annunci che possono essere mostrati nelle app mobile su Android.
  • La tassonomia è disponibile pubblicamente ed è soggetta a modifiche. Puoi inviare suggerimenti utilizzando il pulsante di feedback nella parte superiore di questa pagina.

Categoria di classificazione degli argomenti

Gli argomenti di interesse derivano da un modello di classificatore che viene addestrato su informazioni dell'app disponibili pubblicamente (come nome dell'app, descrizione e nome del pacchetto).

  • Quando il modello di classificazione viene utilizzato per l'inferenza al fine di calcolare gli argomenti per una determinata epoca, l'insieme di indicatori utilizzati rimane sul dispositivo. Questo insieme di indicatori può includere le app installate o utilizzate di recente e potrebbe essere espanso in un secondo momento per includere altri indicatori.
  • I modelli iniziali saranno addestrati da Google, dove i dati di addestramento includono etichette selezionate da persone fisiche per informazioni sulle app disponibili pubblicamente. Il modello sarà disponibile senza costi per consentire alle app di testare gli argomenti a cui è classificata.
  • I modelli iniziali verranno addestrati su informazioni disponibili pubblicamente delle app provenienti da un insieme limitato di store come il Google Play Store.
  • È possibile che un'app sia mappata a più argomenti, a nessun argomento o che non venga aggiunta alla cronologia degli argomenti dell'utente. Se un'app corrisponde a più di un argomento nella tassonomia, il numero di argomenti scelti per questa app sarà limitato ai primi tre.

Controlli utente

  • Il design intende fornire agli utenti la possibilità di visualizzare e rimuovere gli argomenti associati all'utilizzo delle loro app. L'implementazione di questa funzionalità di controllo utente è ancora in fase di sviluppo e sarà inclusa in un aggiornamento futuro.
  • Se l'utente disinstalla un'app che ha contribuito alla selezione di un argomento dedotto nelle ultime tre epoche, quell'argomento non verrà rimosso dall'elenco degli argomenti restituiti per le ultime tre epoche, per evitare di divulgare informazioni sulla disinstallazione.

Per semplificare i test sull'esperienza utente finale, puoi anche lanciare un intent in-app per visualizzare l'interfaccia utente delle impostazioni di Topics in modo simile a come la vedrebbe un utente finale. Di seguito è riportato un esempio di questa chiamata:

//Button that launches settings UI
private Button mSettingsAppButton;
private static final String RB_SETTING_APP_INTENT = "android.adservices.ui.SETTINGS";


//Does setup for button on screen that will launch settings UI to observe Topics
private void registerLaunchSettingsAppButton() {
    mSettingsAppButton.setOnClickListener(
        new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                Context context = getApplicationContext();
                Intent activity2Intent = new Intent(RB_SETTING_APP_INTENT);
                activity2Intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                context.startActivity(activity2Intent);
            }
        });
}

Registrare una piattaforma di tecnologia pubblicitaria

Per accedere all'API Topics, tutte le piattaforme ad tech (incluse quelle di Google) devono completare un processo di registrazione.

Gli sviluppatori di app possono decidere quali sviluppatori di ad tech possono accedere alle API Topics includendo l'ID di registrazione dello sviluppatore nel file manifest dell'app.

Crittografia degli argomenti restituiti

Le piattaforme ad tech registrate che chiamano l'API Topics devono anche fornire chiavi di crittografia per garantire che gli argomenti restituiti siano leggibili solo per il chiamante.

Privacy Sandbox recupererà queste chiavi dall'endpoint fornito dalla tecnologia pubblicitaria. Come best practice, consigliamo di aggiornare le chiavi spesso, ma non oltre ogni sei mesi.

Privacy Sandbox chiederà che i tecnici ad tech confermino la disponibilità dell'endpoint fornito dall'ad tech durante la procedura di registrazione. Per maggiori dettagli sull'azione richiesta dalle tecnologie adtech attuali e appena registrate, consulta la Guida per gli sviluppatori alla registrazione.

Dettagli crittografia

Con l'introduzione della crittografia, le chiamate a "GetTopics()" genereranno una risposta con un elenco di oggetti "EncryptedTopic". La decrittografia di questi risultati genererà un oggetto con lo stesso formato JSON dell'oggetto Topic precedente.

L'API Topics supporta l'implementazione one shot di HPKE (Hybrid Public Key Encryption). Ci aspettiamo che il chiamante registrato ospiti una chiave pubblica a 32 bit sull'endpoint URL di crittografia pubblica fornito durante la registrazione. Queste chiavi dovrebbero essere codificate in Base64.

L'oggetto EncryptedTopic ha tre campi. L'elenco degli argomenti restituiti può essere ottenuto utilizzando la chiave privata corrispondente per la chiave pubblica.

A scopo di sviluppo, puoi testare la crittografia dell'API Topics disabilitando il controllo della registrazione. Questo forzerà l'API a utilizzare la chiave pubblica di test per criptare le risposte. Puoi decriptare gli argomenti criptati utilizzando la chiave privata corrispondente.