Pobieranie informacji o odpowiedzi na reklamę

W celach debugowania i rejestrowania wczytane reklamy udostępniają obiekt GADResponseInfo. Ten obiekt zawiera informacje o wczytanej reklamie oraz o kaskadzie zapośredniczenia użytej do jej wczytania.

W przypadkach, gdy reklama została wczytana, obiekt reklamy ma właściwość GADResponseInfo. Na przykład: GADInterstitialAd.responseInfo pobiera informacje o odpowiedzi w przypadku wczytanej reklamy pełnoekranowej.

W przypadkach, gdy reklamy nie zostaną wczytane i dostępny jest tylko błąd, 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 zawierające dane debugowania zwrócone dla 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 na stronie GADResponseInfo:

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

Więcej informacji znajdziesz w artykule 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 użyć tego identyfikatora do zidentyfikowania i zablokowania 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 (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óre można wykorzystać do debugowania zapośredniczenia kaskadowego i 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 GADAdNetworkResponseInfo udostępnia te właściwości:

Właściwość Opis
error Błąd związany z żądaniem wysłanym do sieci. Zwraca wartość nil, jeśli sieć pomyślnie wczytała reklamę lub jeśli nie podjęto próby wczytania reklamy z sieci.
adSourceId Identyfikator źródła reklam powiązany z tą odpowiedzią adaptera. W przypadku kampanii zwracana jest wartość 6060308706800320801, jeśli typ celu kampanii to reklamy zapośredniczone, oraz 7068401028668408324, jeśli typ celu to wyświetlenia lub docelowa liczba kliknięć. 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 instancji źródła reklam powiązana z tą odpowiedzią adaptera.
adSourceName Źródło reklam reprezentujące konkretną sieć reklamową, która wyświetla reklamę. W przypadku kampanii zwracana jest wartość Mediated House Ads, jeśli typ celu kampanii to reklamy zapośredniczone, oraz Reservation Campaign, jeśli typ celu to wyświetlenia lub docelowa liczba kliknięć. 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 wczytał reklamę.
adUnitMapping Konfiguracja sieci ustawiona w interfejsie AdMob.
latency Czas, przez który sieć reklamowa wczytywała reklamę. Zwraca 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;
  }];
}