Pobieranie informacji o odpowiedzi na reklamę

Wczytane reklamy zawierają GADResponseInfo obiekt, który służy do debugowania i rejestrowania. Ten obiekt zawiera informacje o wczytanej reklamie oraz o kaskadzie zapośredniczenia użytej do wczytania reklamy.

W przypadkach, gdy reklama wczytuje się prawidłowo, obiekt reklamy ma właściwość GADResponseInfo. Na przykład, GADInterstitialAd.responseInfo pobiera informacje o odpowiedzi na wczytaną reklamę pełnoekranową.

W przypadkach, gdy reklamy nie wczytują się i dostępny jest tylko błąd, obiekt GADResponseInfo jest dostępny za pomocą klucza GADErrorUserInfoKeyResponseInfo w słowniku userInfo błędu.

Swift

fileprivate func loadInterstitial() {
  InterstitialAd.load(
    with: "ca-app-pub-3940256099942544/4411468910", request: request
  ) { (ad, error) in
    if let error = error {
      let responseInfo = (error as NSError).userInfo[GADErrorUserInfoKeyResponseInfo] as? ResponseInfo
      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 pokazujące dane debugowania zwrócone 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

Właściwości GADResponseInfo obejmują:

Właściwość Opis
adNetworkInfoArray Zwraca listę GADAdNetworkResponseInfo zawierającą metadane każdego adaptera uwzględnionego w odpowiedzi na żądanie reklamy. Może służyć do debugowania zapośredniczenia kaskadowego i wykonywania określania stawek. Kolejność na liście odpowiada kolejności w kaskadzie zapośredniczenia w przypadku tego żądania reklamy.

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

loadedAdNetworkResponseInfo Zwraca GADAdNetworkResponseInfo odpowiadający adapterowi który wczytał reklamę.
adNetworkClassName Zwraca nazwę klasy adaptera zapośredniczenia sieci reklamowej, która wczytała reklamę.
responseIdentifier Identyfikator odpowiedzi to unikalny identyfikator odpowiedzi na żądanie reklamy. Możesz go użyć do zidentyfikowania i zablokowania reklamy w Centrum oceny reklam.
extrasDictionary Zwraca dodatkowe informacje o odpowiedzi na żądanie reklamy. Dodatkowe informacje mogą zwracać te klucze:
  • mediation_group_name: nazwa grupy zapośredniczenia;
  • mediation_ab_test_name: nazwa testu A/B zapośredniczenia (jeśli dotyczy) ;
  • mediation_ab_test_variant: wariant użyty w teście A/B zapośredniczenia (jeśli dotyczy).

Swift

fileprivate func loadInterstitial() {
  InterstitialAd.load(
    with: "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órych można użyć do debugowania zapośredniczenia kaskadowego i wykonywania określania stawek. Kolejność na liście odpowiada kolejności w kaskadzie zapośredniczenia w przypadku żądania reklamy.

Oto przykładowe dane wyjściowe 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 obiekt GADAdNetworkResponseInfo udostępnia te właściwości:

Właściwość Opis
error Błąd powiązany z żądaniem wysłanym do sieci. Zwraca nil wartość, jeśli sieć wczytała reklamę lub jeśli nie podjęto próby połączenia z siecią.
adSourceId Identyfikator źródła reklam powiązany z tą odpowiedzią adaptera. W przypadku kampanii w przypadku typu celu kampanii z zapośredniczonymi reklamami zwracana jest wartość 6060308706800320801, a w przypadku typów celów dotyczących wyświetleń i kliknięć – 7068401028668408324. Listę możliwych identyfikatorów źródeł reklam, gdy sieć reklamowa wyświetla reklamę, znajdziesz w sekcji Źródła reklam.
adSourceInstanceId Identyfikator wystąpienia ź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 wyświetla wyświetlenie. W przypadku kampanii zwracana jest wartość Mediated House Ads w przypadku typu celu kampanii z zapośredniczonymi reklamami, a w przypadku typów celów dotyczących wyświetleń i kliknięć – 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óra wczytała reklamę.
adUnitMapping Konfiguracja sieci ustawiona w interfejsie AdMob.
latency Czas, jaki sieć reklamowa poświęciła na wczytanie reklamy. Zwraca 0 wartość `0`, jeśli nie podjęto próby połączenia z siecią.

Swift

fileprivate func loadInterstitial() {
  InterstitialAd.load(
    with: "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;
  }];
}