Para analizar nuestros productos y proporcionar comentarios sobre ellos, únete al canal oficial de Ad Manager en Discord, en el servidor Google Advertising and Measurement Community.
Para que una app sepa más sobre los anuncios que se publican, configura el anuncio para que sea su propio GADAdMetadataDelegate. Luego, puedes detectar los cambios en los metadatos de los anuncios implementando el método adMetadataDidChange: en GADAdMetadataDelegate. Una vez que se llama a este delegado, verifica la propiedad adMetadata en el anuncio.
Se llama a adMetadataDidChange: justo después de que se carga un anuncio o cuando los metadatos de un anuncio cambian de forma asíncrona después de que se carga. No se garantiza que los metadatos del anuncio estén disponibles en el momento de la carga, por lo que recomendamos esperar esta devolución de llamada antes de acceder a los metadatos de un anuncio.
A continuación, se muestra un ejemplo de código que muestra cómo recuperar los metadatos del anuncio para un anuncio recompensado:
@interfaceViewController()<GADFullScreenContentDelegate,GADAdMetadataDelegate>
@end@implementationViewController-(void)loadRewardedAd{*request=[request];[GADRewardedAdloadWithAdUnitID:@"ca-app-pub-3940256099942544/4806952744"request:requestcompletionHandler:^(GADRewardedAd*ad,NSError*error){if(error){NSLog(@"Rewarded ad failed to load with error: %@",[errorlocalizedDescription]);return;}self.rewardedAd=ad;self.rewardedAd.fullScreenContentDelegate=self;/// Set the ad to be the delegate of its ad metadata.self.rewardedAd.adMetadataDelegate=self;NSLog(@"Rewarded ad loaded.");}];}/#pragmamarkGADAdMetadataDelegateimplementation-(void)adMetadataDidChange:(id<GADAdMetadataProvider>)ad{NSDictionary<NSString*,id>*adMetadata=_rewardedAd.adMetadata;NSString*adId=adMetadata[@"AdId"];}
Después de recuperar los metadatos, puedes verificar el Bundle para ver las claves que te interesan. Los diferentes tipos de anuncios pueden tener diferentes claves de metadatos de anuncios asociadas. Los anuncios de video de VAST tienen las siguientes claves:
Clave
Tipo
Descripción
AdId
String
Es el ID del anuncio o la cadena vacía si no está disponible.
AdTitle
String
Es el título, que está vacío si no se especifica.
CreativeDurationMs
Número entero
Es la duración de la creatividad seleccionada en milisegundos, -1 si no es lineal.
TraffickingParameters
String
Son los parámetros de segmentación de anuncios o la cadena vacía si no están disponibles.
DealId
String
Es el primer ID de acuerdo presente en la cadena de wrapper del anuncio actual, comenzando desde la parte superior, o la cadena vacía si esta información no está disponible.
AdSystem
String
Es el servidor de anuncios de origen del anuncio. Está vacío si no está disponible.
CreativeId
String
Es el ID de la creatividad seleccionada para el anuncio. Está vacío si no está disponible.
MediaURL
String
Es la URL del contenido multimedia seleccionado.
Wrappers
Array
El array se completa con elementos que comienzan en el anuncio envolvente más interno (cerca del anuncio intercalado) y se extienden hacia el anuncio envolvente más externo. Cada elemento del array es un diccionario que contiene las siguientes claves y valores.
AdId
String. Es el ID del anuncio que se usa para el anuncio de wrapper. Está vacío si no está disponible.
AdSystem
String. Es el sistema de anuncios que se usa para el anuncio de wrapper. Está vacío si no está disponible.
CreativeId
String. Es el ID de la creatividad que se usa para el anuncio de envoltorio. Está vacío si no está disponible.
[null,null,["Última actualización: 2025-08-31 (UTC)"],[[["\u003cp\u003eThis guide helps publishers integrate ad metadata with the Google Mobile Ads iOS SDK for rewarded and rewarded interstitial ad formats.\u003c/p\u003e\n"],["\u003cp\u003eYou need to set the ad as its own \u003ccode\u003eGADAdMetadataDelegate\u003c/code\u003e and implement the \u003ccode\u003eadMetadataDidChange:\u003c/code\u003e method to receive ad metadata updates.\u003c/p\u003e\n"],["\u003cp\u003eAd metadata may not be available immediately when an ad loads, so waiting for the \u003ccode\u003eadMetadataDidChange:\u003c/code\u003e callback is recommended.\u003c/p\u003e\n"],["\u003cp\u003eVAST video ads provide specific metadata keys like AdId, AdTitle, CreativeDurationMs, and more, which can be accessed through the ad's \u003ccode\u003eadMetadata\u003c/code\u003e property.\u003c/p\u003e\n"]]],[],null,["# Ad Metadata\n\nSelect platform: [Android](/ad-manager/mobile-ads-sdk/android/ad-metadata \"View this page for the Android platform docs.\") [iOS](/ad-manager/mobile-ads-sdk/ios/ad-metadata \"View this page for the iOS platform docs.\")\n\n\u003cbr /\u003e\n\nThis guide is intended for publishers integrating ad metadata with the Google\nMobile Ads iOS SDK.\n\nPrerequisites\n-------------\n\n- Google Mobile Ads SDK minimum version 7.41.0.\n- Complete the steps in either of the guides below:\n - [Rewarded ads](/ad-manager/mobile-ads-sdk/ios/rewarded)\n - [Rewarded interstitial\n ads](/ad-manager/mobile-ads-sdk/ios/rewarded-interstitial)\n\nFetching ad metadata\n--------------------\n\nTo have an app know more about ads that are served, set the ad to be its own\n`GADAdMetadataDelegate`. Then you can listen for ad metadata changes by\nimplementing the `adMetadataDidChange:` method on `GADAdMetadataDelegate`. Once\nthis delegate is called, check the `adMetadata` property on the ad.\n\n`adMetadataDidChange:` is called just after an ad loads or when an ad's\nmetadata changes asynchronously after it loads. It is not guaranteed that ad\nmetadata is available at load time, so we recommend waiting for this callback\nbefore accessing an ad's metadata.\n\nHere is a code example showing how to retrieve the ad metadata for a rewarded\nad: \n\n @interface ViewController () \u003cGADFullScreenContentDelegate, GADAdMetadataDelegate\u003e\n\n @end\n\n @implementation ViewController\n - (void)loadRewardedAd {\n *request = [ request];\n [GADRewardedAd\n loadWithAdUnitID:@\"ca-app-pub-3940256099942544/4806952744\"\n request:request\n completionHandler:^(GADRewardedAd *ad, NSError *error) {\n if (error) {\n NSLog(@\"Rewarded ad failed to load with error: %@\", [error localizedDescription]);\n return;\n }\n self.rewardedAd = ad;\n self.rewardedAd.fullScreenContentDelegate = self;\n\n /// Set the ad to be the delegate of its ad metadata.\n self.rewardedAd.adMetadataDelegate = self;\n\n NSLog(@\"Rewarded ad loaded.\");\n }];\n }\n\n /#pragma mark GADAdMetadataDelegate implementation\n - (void)adMetadataDidChange:(id\\\u003cGADAdMetadataProvider\\\u003e)ad {\n NSDictionary\\\u003cNSString\\*, id\\\u003e \\*adMetadata = _rewardedAd.adMetadata;\n NSString \\*adId = adMetadata\\[@\"AdId\"\\];\n }\n\nAfter retrieving the metadata, you can check the Bundle for the keys you care\nabout. Different types of ads might have different ad metadata keys associated\nwith them. VAST video ads have the following keys:\n\n| Key | Type | Description |\n|-------------------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `AdId` | String | The ID of the ad, or the empty string if not available. |\n| `AdTitle` | String | The title, empty if not specified. |\n| `CreativeDurationMs` | Integer | The selected creative duration in milliseconds, `-1` if non-linear. |\n| `TraffickingParameters` | String | Trafficking parameters, or the empty string if not available. |\n| `DealId` | String | The first deal ID present in the wrapper chain for the current ad, starting from the top, or the empty string if this information is not available. |\n| `AdSystem` | String | The source ad server of the ad, empty if not available. |\n| `CreativeId` | String | The ID of the selected creative for the ad, empty if not available. |\n| `MediaURL` | String | The URL of the selected media. |\n| `Wrappers` | Array | The array is populated with elements beginning at the innermost wrapper ad (close to the inline ad) moving outwards to the outermost wrapper ad. Each element in the array is a dictionary that contains the following keys and values. `AdId` : *String*. Ad ID used for wrapper ad, empty if not available. `AdSystem` : *String*. Ad system used for wrapper ad, empty if not available. `CreativeId` : *String*. Creative ID used for wrapper ad, empty if not available. |\n\n| **Note:** Only VAST wrapper ads have `Wrappers` key in the ad metadata. VAST inline ads don't contain `Wrappers` metadata."]]