Stay organized with collections
Save and categorize content based on your preferences.
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 statusif(load_ad_future.status()==firebase::kFutureStatusComplete){constfirebase::gma::AdResult*ad_result=load_ad_future.result();if(!ad_result.is_successful()){// There was an error loading the ad.constAdError&ad_error=ad_result.ad_error();firebase::gma::AdErrorCodecode=ad_error.code();std::stringdomain=ad_error.domain();std::stringmessage=ad_error.message();constfirebase::gma::ResponseInforesponse_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.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-29 UTC."],[[["\u003cp\u003eThe Google Mobile Ads C++ SDK is deprecated and will be end-of-maintenance on June 17, 2025, with iOS and Android SDKs recommended as alternatives.\u003c/p\u003e\n"],["\u003cp\u003eDevelopers should use \u003ccode\u003eAdResult\u003c/code\u003e objects, specifically the \u003ccode\u003eis_successful()\u003c/code\u003e and \u003ccode\u003ead_error()\u003c/code\u003e methods, to detect and diagnose ad loading failures.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eAdError\u003c/code\u003e objects provide detailed error information, including domain, code, and message, for troubleshooting failed ad loads.\u003c/p\u003e\n"],["\u003cp\u003eError messages can be cross-referenced with the Google AdMob help center to identify the root cause and potential solutions.\u003c/p\u003e\n"]]],["The Google Mobile Ads C++ SDK is deprecated as of June 17, 2024, and will reach End-of-Maintenance on June 17, 2025. AdMob iOS and Android SDKs are recommended alternatives. `AdResult` objects detect failed ad loads; `is_successful()` indicates success, and `ad_error()` retrieves an `AdError` object for failures. The `AdError` includes error domain, code, message, and response info, which can be used to troubleshoot. Refer to the Google help center for specific error resolutions.\n"],null,["# Ad load errors\n\n| **DEPRECATED:** The Google Mobile Ads C++ SDK is *deprecated* as of June 17, 2024 and should not be adopted in projects that don't already use it. It will enter *End-of-Maintenance (EoM)* on June 17, 2025. Note that versions of the SDK released before the EoM date will continue to function, but no further bug fixes or changes will be released after the EoM date.\n|\n| Instead of the Google Mobile Ads C++ SDK, consider using the\n| [iOS](/admob/ios/quick-start) and\n| [Android](/admob/android/quick-start) SDKs from AdMob.\n| For support, reach out to the\n| [Google Mobile Ads SDK Technical Forum](https://groups.google.com/g/google-admob-ads-sdk).\n\n\u003cbr /\u003e\n\n`AdResult` objects provide a mechanism to detect failed attempts to load an ad.\nIf a failure occurs, the `AdResult` method `is_successful()` will return false.\nIn these situations, invoking the `AdResult` method `ad_error()` will return an\n`AdError` object with information pertaining to the error.\n\nHere is a code snippet that illustrates the information available when an ad\nfails to load: \n\n firebase::Future\u003cfirebase::gma::AdResult\u003e load_ad_future =\n ad_view-\u003eLoadAd(request);\n\n // In a game loop, monitor the load ad status\n if (load_ad_future.status() == firebase::kFutureStatusComplete) {\n const firebase::gma::AdResult* ad_result = load_ad_future.result();\n if (!ad_result.is_successful()) {\n // There was an error loading the ad.\n const AdError& ad_error = ad_result.ad_error();\n firebase::gma::AdErrorCode code = ad_error.code();\n std::string domain = ad_error.domain();\n std::string message = ad_error.message();\n const firebase::gma::ResponseInfo response_info = ad_error.response_info();\n printf(\"Received error with domain: %s, code: %d, message: %s and response info: %s\\n\",\n domain.c_str(), message.c_str(), response_info.ToString().c_str());\n }\n }\n\nThis information can be used to more accurately determine what caused the ad\nload to fail. In particular, for errors under the domain `com.google.admob` on\niOS and `com.google.android.gms.ads` on Android, the message can be looked up in\nthis [help center article](//support.google.com/admob/answer/9905175) for a more\ndetailed explanation and possible actions that can be taken to resolve the\nissue."]]