Güvenli sinyalleri kullanmaya başlayın

Güvenli sinyaller, istemci cihazda toplanan ve belirli teklif verenlerle paylaşılan kodlanmış verilerdir. Bu kılavuzda, IMA SDK'sını kullanarak Google Ad Manager'a güvenli sinyallerin nasıl toplanıp gönderileceği gösterilmektedir.

Güvenli sinyaller API'si için iOS'te IMA SDK'nın 3.18.1 veya sonraki bir sürümü gerekir.

Sinyalleri ve teklif verenleri seçip güvenli sinyal paylaşımını etkinleştirmek için Güvenli sinyalleri teklif verenlerle paylaşma başlıklı makaleyi inceleyin.

Üçüncü taraf sinyal sağlayıcı kullanma

Güvenli sinyalleri kullanmak için uygulamanızda bir sinyal toplayıcı adaptör sınıfı dağıtmanız gerekir böylece sinyaller toplanır, kodlanır ve IMA SDK'ya iletilir.

Üçüncü taraf sağlayıcınızın talimatlarını uygulayarak sağlayıcıda hesap oluşturun, çerçeveleri ekleyin ve güvenli sinyal bağdaştırıcısını uygulamanızda ayarlayın.

iOS için IMA SDK, kodunuzda herhangi bir ek değişiklik yapmadan her güvenli sinyal bağdaştırıcısını otomatik olarak başlatır.

Aşağıda, projenize güvenli sinyal bağdaştırıcısı ekleme örneği verilmiştir:

Özel verileri gönderme

Üçüncü taraf sinyal sağlayıcı kullanmanın yanı sıra özel verilerle sinyalleri toplayabilir, kodlayabilir ve gönderebilirsiniz. Özel verilerle güvenli sinyaller gönderebilmek için Ad Manager'da özel sinyalleri etkinleştirmeniz gerekir.

Her akış isteği için aşağıdakileri yapın:

  1. Kodlanmış özel verilerinizi dize olarak içeren bir IMASecureSignals nesnesi oluşturun.
  2. IMASecureSignals özelliğini ayarlayarak akış isteğinize IMASecureSignals nesnesini ekleyin: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)
  }
}