Implementa un rilevatore di opportunità personalizzato

Puoi implementare i tuoi rilevatori di opportunità implementando l'interfaccia PlacementOpportunityDetector (Rilevatore opportunità).

  1. Crea un'istanza AdvertisingFactory personalizzata e sovrascrivi createOpportunityDetector. Ad esempio:

    new AdvertisingFactory() {
        ...
        @Override
        public PlacementOpportunityDetector createOpportunityDetector(MediaPlayerItem item) {
            return new CustomPlacementOpportunityDetector();
        }
        ...
    }
    
  2. Registra la Ad Client Factory in MediaPlayer. Ad esempio:

    // register the custom advertising factory with media player
    advertisingFactory = createCustomAdvertisingFactory();
    mediaPlayer.registerAdClientFactory(advertisingFactory);
    
  3. Crea una classe di rilevatore di opportunità personalizzata che estende la classe PlacementOpportunityDetector .

    1. Nel rilevatore di opportunità personalizzato, sovrascrivi questa funzione:

      public List<PlacementOpportunity> process(List<TimedMetadata> timedMetadataList, Metadata metadata)
      

      Il timedMetadataList contiene l'elenco di disponibili TimedMetadata, ordinato. I metadati contengono i parametri di targeting e i parametri personalizzati da inviare al provider di annunci.

    2. Per ogni TimedMetadata, crea un List<PlacementOpportunity>. L’elenco può essere vuoto, ma non nullo. PlacementOpportunity devono avere i seguenti attributi:

      PlacementOpportunity(
          String id,                                      // can be id from timedMetadata
          PlacementInformation placementInformation   // PlacementInformation object containing Type, time, duration
          Metadata metadata                           // ad metadata containing targeting params sent to the ad provider
      )
      
    3. Dopo aver creato opportunità di posizionamento per tutti gli oggetti metadati temporizzati rilevati, è sufficiente restituire l' PlacementOpportunity elenco.

Questo è un esempio di rilevatore di opportunità di posizionamento personalizzato:

public class CustomPlacementOpportunityDetector implements PlacementOpportunityDetector {
    ...
    @Override
    public List<PlacementOpportunity> process(List<TimedMetadata> timedMetadataList, Metadata metadata) {
        ...
        List<PlacementOpportunity> opportunities = new ArrayList<PlacementOpportunity>();

        for (TimedMetadata timedMetadata : timedMetadataList) {

            if (isOpportunity(timedMetadata)) {        // check if given timedMetadata should be
                                                       // considered as an opportunity

                // create an object of PlacementOpportunity and add it to the opportunities list
                PlacementOpportunity opportunity =
                  createPlacementOpportunity(timedMetadata, airingId, metadata);
                Opportunities.add(opportunity);
            }
        }
        return opportunities;
    }
    ...
}

In questa pagina