Ad load errors

AdResult objects provide a mechanism to detect failed attempts to load an ad. If a failure occurs, the AdResult method is_successful() will return false. In these situations, invoking the AdResult method ad_error() will return an AdError object with information pertaining to the error.

Here is a code snippet that illustrates the information available when an ad fails to load:

firebase::Future<firebase::gma::AdResult> load_ad_future =
  ad_view->LoadAd(request);

// In a game loop, monitor the load ad status
if (load_ad_future.status() == firebase::kFutureStatusComplete) {
  const firebase::gma::AdResult* ad_result = load_ad_future.result();
  if (!ad_result.is_successful()) {
    // There was an error loading the ad.
    const AdError& ad_error = ad_result.ad_error();
    firebase::gma::AdErrorCode code = ad_error.code();
    std::string domain = ad_error.domain();
    std::string message = ad_error.message();
    const firebase::gma::ResponseInfo response_info = ad_error.response_info();
    printf("Received error with domain: %s, code: %d, message: %s and response info: %s\n”,
      domain.c_str(), message.c_str(), response_info.ToString().c_str());
  }
}

This information can be used to more accurately determine what caused the ad load to fail. In particular, for errors under the domain com.google.admob on iOS and com.google.android.gms.ads on Android, the message can be looked up in this help center article for a more detailed explanation and possible actions that can be taken to resolve the issue.