Pobieranie informacji o odpowiedzi na reklamę

Na potrzeby debugowania i logowania wczytane reklamy udostępniają obiekt GADResponseInfo. Ten obiekt zawiera informacje o wczytanej reklamie oraz o kaskadzie zapośredniczenia użytej do wczytania reklamy.

W przypadku, gdy reklama się uda, obiekt reklamowy ma właściwość GADResponseInfo. Na przykład GADInterstitialAd.responseInfo będzie otrzymywać informacje o odpowiedzi w przypadku wczytanej reklamy pełnoekranowej.

Jeśli nie można wczytać reklam i występuje tylko błąd, można użyć klucza GADErrorUserInfoKeyResponseInfo za pomocą klucza GADErrorUserInfoKeyResponseInfo w słowniku userInfo błędu.GADResponseInfo

Swift

fileprivate func loadInterstitial() {
  GADInterstitialAd.load(
    withAdUnitID: "ca-app-pub-3940256099942544/4411468910", request: request
  ) { (ad, error) in
    if let error = error {
      let responseInfo = (error as NSError).userInfo[GADErrorUserInfoKeyResponseInfo] as? GADResponseInfo
      print("\(String(describing: responseInfo))")
      return
    }
    let responseInfo = ad?.responseInfo
    print("\(String(describing: responseInfo))")
  }
}

Objective-C

- (void)loadInterstitial {
  [GADInterstitialAd
   loadWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910"
   request:request
   completionHandler:^(GADInterstitialAd *ad, NSError *error) {
    if (error) {
      GADResponseInfo *responseInfo = error.userInfo[GADErrorUserInfoKeyResponseInfo];
      NSLog(@"%@", responseInfo.description);
      return;
    }
    GADResponseInfo *responseInfo = ad.responseInfo;
    NSLog(@"%@", responseInfo.description);
  }];
}

Informacje o odpowiedzi

Oto przykładowe dane wyjściowe z danymi debugowania zwróconymi w przypadku wczytanej reklamy:

  ** Response Info **
    Response ID: CLz5r-KMtfoCFQvv7QodfGAMHw
    Network: GADMAdapterGoogleAdMobAds

  ** Loaded Adapter Response **
    Network: GADMAdapterGoogleAdMobAds
    Ad Source Name:Reservation campaign
    Ad Source ID:7068401028668408324
    Ad Source Instance Name:[DO NOT EDIT] Publisher Test Interstitial
    Ad Source Instance ID:[DO NOT EDIT] Publisher Test Interstitial
    AdUnitMapping:
{
}
    Error: (null)
    Latency: 0.357

  ** Extras Dictionary **
    {
        "mediation_group_name" = Campaign;
    }

  ** Mediation line items **
    Entry (1)
    Network: GADMAdapterGoogleAdMobAds
    Ad Source Name:Reservation campaign
    Ad Source ID:7068401028668408324
    Ad Source Instance Name:[DO NOT EDIT] Publisher Test Interstitial
    Ad Source Instance ID:[DO NOT EDIT] Publisher Test Interstitial
    AdUnitMapping:
{
}
    Error: (null)
    Latency: 0.357

Usługi w domenie GADResponseInfo to m.in.:

Właściwość Opis
adNetworkInfoArray Zwraca listę elementów GADAdNetworkResponseInfo z metadanymi dla każdego adaptera uwzględnionego w odpowiedzi na reklamę. Można ich używać do debugowania zapośredniczenia kaskadowego i ustalania stawek. Kolejność na liście odpowiada kolejności w kaskadzie zapośredniczenia w przypadku danego żądania reklamy.

Więcej informacji znajdziesz w artykule Informacje o odpowiedzi adaptera.

loadedAdNetworkResponseInfo Zwraca wartość GADAdNetworkResponseInfo odpowiadającą adapterowi, który załadował reklamę.
adNetworkClassName Zwraca nazwę klasy adaptera zapośredniczenia sieci reklamowej, która wczytała reklamę.
responseIdentifier Identyfikator odpowiedzi to unikalny identyfikator odpowiedzi na reklamę. Ten identyfikator może służyć do identyfikowania i blokowania reklamy w Centrum oceny reklam.
extrasDictionary

Zwraca dodatkowe informacje o odpowiedzi na reklamę. Dodatki mogą zwracać te klucze:

  • mediation_group_name: nazwa grupy zapośredniczenia
  • mediation_ab_test_name: nazwa testu A/B zapośredniczenia (w odpowiednich przypadkach).
  • mediation_ab_test_variant: wariant używany w teście A/B zapośredniczenia (w stosownych przypadkach).

Swift

fileprivate func loadInterstitial() {
  GADInterstitialAd.load(
    withAdUnitID: "ca-app-pub-3940256099942544/4411468910", request: request
  ) { (ad, error) in
    let responseInfo = ad?.responseInfo

    let responseIdentifier = responseInfo?.responseIdentifier
    let adNetworkClassName = responseInfo?.adNetworkClassName
    let adNetworkInfoArray = responseInfo?.adNetworkInfoArray
    let loadedAdNetworkResponseInfo = responseInfo?.loadedAdNetworkResponseInfo
    let mediationGroupName = responseInfo?.extrasDictionary["mediation_group_name"]
    let mediationABTestName = responseInfo?.extrasDictionary["mediation_ab_test_name"]
    let mediationABTestVariant = responseInfo?.extrasDictionary["mediation_ab_test_variant"]
  }
}

Objective-C

- (void)loadInterstitial {
  [GADInterstitialAd
   loadWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910"
   request:request
   completionHandler:^(GADInterstitialAd *ad, NSError *error) {
    GADResponseInfo *responseInfo = ad.responseInfo;

    NSString *responseIdentifier = responseInfo.responseIdentifier;
    NSString *adNetworkClassName = responseInfo.adNetworkClassName;
    NSArray *adNetworkInfoArray = responseInfo.adNetworkInfoArray;
    GADAdNetworkResponseInfo *loadedAdNetworkResponseInfo = responseInfo.loadedAdNetworkResponseInfo;
    NSString *mediationGroupName = responseInfo.extrasDictionary[@"mediation_group_name"];
    NSString *mediationABTestName = responseInfo.extrasDictionary[@"mediation_ab_test_name"];
    NSString *mediationABTestVariant = responseInfo.extrasDictionary[@"mediation_ab_test_variant"];
  }];
}

Informacje o odpowiedzi adaptera

GADAdNetworkResponseInfo zawiera metadane każdego adaptera uwzględnionego w odpowiedzi na żądanie reklamy, które mogą służyć do debugowania zapośredniczenia kaskadowego i określania stawek. Kolejność na liście odpowiada kolejności w kaskadzie zapośredniczenia w żądaniu reklamy.

Oto przykładowe dane wyjściowe funkcji GADAdNetworkResponseInfo:

    Network: GADMAdapterGoogleAdMobAds
    Ad Source Name:Reservation campaign
    Ad Source ID:7068401028668408324
    Ad Source Instance Name:[DO NOT EDIT] Publisher Test Interstitial
    Ad Source Instance ID:[DO NOT EDIT] Publisher Test Interstitial
    AdUnitMapping:
{
}
    Error: (null)
    Latency: 0.277

W przypadku każdej sieci reklamowej GADAdNetworkResponseInfo ma te właściwości:

Właściwość Opis
error Błąd związany z żądaniem wysłanym do sieci. Zwraca nil, jeśli sieć wczytała reklamę lub nie nastąpiła próba jej wczytania.
adSourceId Identyfikator źródła reklam powiązany z tą odpowiedzią adaptera.W przypadku kampanii wartość 6060308706800320801 jest zwracana dla typu celu kampanii związanego z reklamami zapośredniczonymi, a w przypadku celów typu wyświetlenia i kliknięcia zwraca wartość 7068401028668408324. Listę możliwych identyfikatorów źródeł reklam, gdy sieć reklamowa wyświetla reklamę, znajdziesz w sekcji Źródła reklam.
adSourceInstanceId Identyfikator instancji źródła reklam powiązany z tą odpowiedzią adaptera.
adSourceInstanceName Nazwa wystąpienia źródła reklam powiązana z tą odpowiedzią adaptera.
adSourceName Źródło reklam reprezentujące konkretną sieć reklamową, która realizuje wyświetlenie. W przypadku kampanii w przypadku typu celu kampanii reklam zapośredniczonych zwracana jest wartość Mediated House Ads, a w przypadku typów docelowych wyświetleń i kliknięć zwracana jest wartość Reservation Campaign. Listę możliwych nazw źródeł reklam, gdy sieć reklamowa wyświetla reklamę, znajdziesz w sekcji Źródła reklam.
adNetworkClassName Nazwa klasy adaptera sieci reklamowej, który załadował reklamę.
adUnitMapping Konfiguracja sieci ustawiona w interfejsie AdMob .
latency Ilość czasu spędzonego przez sieć reklamową na wczytaniu reklamy. Zwraca 0, jeśli nie nastąpiła próba połączenia z siecią.

Swift

fileprivate func loadInterstitial() {
  GADInterstitialAd.load(
    withAdUnitID: "ca-app-pub-3940256099942544/4411468910", request: request
  ) { (ad, error) in
    let responseInfo = ad?.responseInfo
    let loadedAdNetworkResponseInfo = responseInfo?.loadedAdNetworkResponseInfo

    let adNetworkError = loadedAdNetworkResponseInfo?.error
    let adSourceId = loadedAdNetworkResponseInfo?.adSourceID
    let adSourceInstanceId = loadedAdNetworkResponseInfo?.adSourceInstanceID
    let adSourceInstanceName = loadedAdNetworkResponseInfo?.adSourceInstanceName
    let adSourceName = loadedAdNetworkResponseInfo?.adSourceName
    let adNetworkClassName = loadedAdNetworkResponseInfo?.adNetworkClassName
    let adUnitMapping = loadedAdNetworkResponseInfo?.adUnitMapping
    let latency = loadedAdNetworkResponseInfo?.latency
  }
}

Objective-C

- (void)loadInterstitial {
  [GADInterstitialAd
   loadWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910"
   request:request
   completionHandler:^(GADInterstitialAd *ad, NSError *error) {
    GADResponseInfo *responseInfo = ad.responseInfo;
    GADAdNetworkResponseInfo *loadedAdNetworkResponseInfo = responseInfo.loadedAdNetworkResponseInfo;

    NSError *adNetworkError = loadedAdNetworkResponseInfo.error;
    NSString *adSourceId = loadedAdNetworkResponseInfo.adSourceID;
    NSString *adSourceInstanceId = loadedAdNetworkResponseInfo.adSourceInstanceID;
    NSString *adSourceInstanceName = loadedAdNetworkResponseInfo.adSourceInstanceName;
    NSString *adSourceName = loadedAdNetworkResponseInfo.adSourceName;
    NSString *adNetworkClassName = loadedAdNetworkResponseInfo.adNetworkClassName;
    NSDictionary *adUnitMapping = loadedAdNetworkResponseInfo.adUnitMapping;
    NSTimeInterval latency = loadedAdNetworkResponseInfo.latency;
  }];
}