Inizia a utilizzare gli indicatori sicuri

Gli indicatori sicuri sono dati codificati raccolti sul dispositivo client e condivisi con offerenti selezionati. Questa guida mostra come raccogliere e inviare indicatori sicuri a Google Ad Manager utilizzando l'SDK IMA.

L'API Secure Signals richiede la versione 3.18.1 o successive dell'SDK IMA per iOS.

Per selezionare gli indicatori e gli offerenti e attivare la condivisione di indicatori sicuri, consulta Condividere indicatori sicuri con gli offerenti.

Utilizzare un fornitore di indicatori di terze parti

Per utilizzare gli indicatori sicuri, devi implementare una classe adattatore per la raccolta degli indicatori nella tua app per raccogliere gli indicatori, codificarli e trasmetterli all'SDK IMA.

Segui le istruzioni del fornitore di terze parti per configurare un account, includi i framework, e configura l'adattatore dei segnali sicuri nella tua app.

L'SDK IMA per iOS inizializza automaticamente ogni adattatore di indicatori sicuri, senza ulteriori modifiche al codice.

Ecco un esempio di come potresti aggiungere un adattatore di indicatori sicuri al tuo progetto:

Inviare dati personalizzati

Oltre a utilizzare un fornitore di segnali di terze parti, puoi anche raccogliere, codificare e inviare segnali con dati personalizzati. Prima di poter inviare indicatori sicuri con dati personalizzati, devi attivare gli indicatori personalizzati in Ad Manager.

Per ogni richiesta di stream, esegui le seguenti operazioni:

  1. Crea un oggetto IMASecureSignals contenente i tuoi dati personalizzati codificati come stringa.
  2. Aggiungi l'oggetto IMASecureSignals alla richiesta di flusso impostando l'attributo IMAStreamRequest.secureSignals:

Objective-C

app/ViewController.m

- (void)requestStream {
  // Create a stream request. Use one of "Livestream request" or "VOD request",
  //  depending on your type of stream.
  IMAStreamRequest *request;
  if (kStreamType == StreamTypeLive) {
    // Livestream request. Replace the asset key with your value.
    request = [[IMALiveStreamRequest alloc] initWithAssetKey:kLiveStreamAssetKey
                                                networkCode:kNetworkCode
                                          adDisplayContainer:self.adDisplayContainer
                                                videoDisplay:self.imaVideoDisplay
                                                userContext:nil];
  } else {
    // VOD request. Replace the content source ID and video ID with your values.
    request = [[IMAVODStreamRequest alloc] initWithContentSourceID:kVODContentSourceID
                                                          videoID:kVODVideoID
                                                      networkCode:kNetworkCode
                                                adDisplayContainer:self.adDisplayContainer
                                                      videoDisplay:self.imaVideoDisplay
                                                      userContext:nil];
  }
  
  IMASecureSignals *signals =
      [[IMASecureSignals alloc] initWithCustomData:@"My encoded signal string"];
  request.secureSignals = signals;
  
  [self.adsLoader requestStreamWithRequest:request];
}

Swift

app/ViewController.swift

 func requestStream() {
  // Create a stream request. Use one of "Livestream request" or "VOD request".
  let signals = IMASecureSignals(customData: "My encoded signal string")
  if ViewController.requestType == StreamType.live {
    // Livestream request.
    let request = IMALiveStreamRequest(
      assetKey: ViewController.assetKey,
      networkCode: ViewController.networkCode,
      adDisplayContainer: adDisplayContainer!,
      videoDisplay: imaVideoDisplay,
      userContext: nil)
    request.secureSignals = signals
    adsLoader?.requestStream(with: request)
  } else {
    // VOD stream request.
    let request = IMAVODStreamRequest(
      contentSourceID: ViewController.contentSourceID,
      videoID: ViewController.videoID,
      networkCode: ViewController.networkCode,
      adDisplayContainer: adDisplayContainer!,
      videoDisplay: imaVideoDisplay,
      userContext: nil)
    request.secureSignals = signals
    adsLoader?.requestStream(with: request)
  }
}