Để thảo luận và đưa ra ý kiến phản hồi về các sản phẩm của chúng tôi, hãy tham gia kênh Discord chính thức của Ad Manager trong máy chủ Cộng đồng quảng cáo và đo lường của Google.
Để ứng dụng biết thêm về những quảng cáo được phân phát, hãy đặt quảng cáo thành GADAdMetadataDelegate riêng. Sau đó, bạn có thể theo dõi các thay đổi về siêu dữ liệu quảng cáo bằng cách triển khai phương thức adMetadataDidChange: trên GADAdMetadataDelegate. Sau khi lệnh gọi uỷ quyền này được thực hiện, hãy kiểm tra thuộc tính adMetadata trên quảng cáo.
adMetadataDidChange: được gọi ngay sau khi một quảng cáo tải hoặc khi siêu dữ liệu của quảng cáo thay đổi không đồng bộ sau khi quảng cáo tải. Không có gì đảm bảo rằng siêu dữ liệu quảng cáo có sẵn tại thời điểm tải, vì vậy, bạn nên đợi lệnh gọi lại này trước khi truy cập vào siêu dữ liệu của quảng cáo.
Sau đây là ví dụ về mã cho biết cách truy xuất siêu dữ liệu quảng cáo cho một quảng cáo có tặng thưởng:
@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"];}
Sau khi truy xuất siêu dữ liệu, bạn có thể kiểm tra Bundle cho các khoá mà bạn quan tâm. Các loại quảng cáo khác nhau có thể có các khoá siêu dữ liệu quảng cáo khác nhau được liên kết với chúng. Quảng cáo dạng video VAST có các khoá sau:
Khoá
Loại
Mô tả
AdId
Chuỗi
Mã nhận dạng của quảng cáo hoặc chuỗi trống nếu không có.
AdTitle
Chuỗi
Tiêu đề, để trống nếu không được chỉ định.
CreativeDurationMs
Số nguyên
Thời lượng của mẫu quảng cáo đã chọn tính bằng mili giây, -1 nếu là mẫu quảng cáo phi tuyến tính.
TraffickingParameters
Chuỗi
Tham số phân phối hoặc chuỗi trống nếu không có.
DealId
Chuỗi
Mã giao dịch đầu tiên có trong chuỗi trình bao bọc cho quảng cáo hiện tại, bắt đầu từ trên cùng hoặc chuỗi trống nếu không có thông tin này.
AdSystem
Chuỗi
Máy chủ quảng cáo nguồn của quảng cáo, trống nếu không có.
CreativeId
Chuỗi
Mã nhận dạng của mẫu quảng cáo đã chọn cho quảng cáo, trống nếu không có.
MediaURL
Chuỗi
URL của nội dung nghe nhìn đã chọn.
Wrappers
Mảng
Mảng này được điền sẵn các phần tử bắt đầu từ quảng cáo có trình bao bọc trong cùng (gần với quảng cáo trong dòng) di chuyển ra ngoài đến quảng cáo có trình bao bọc ngoài cùng. Mỗi phần tử trong mảng là một từ điển chứa các khoá và giá trị sau.
AdId
Chuỗi. Mã quảng cáo dùng cho quảng cáo bao bọc, để trống nếu không có.
AdSystem
Chuỗi. Hệ thống quảng cáo được dùng cho quảng cáo bao bọc, để trống nếu không có.
CreativeId
Chuỗi. Mã mẫu quảng cáo dùng cho quảng cáo bao bọc, trống nếu không có.
[null,null,["Cập nhật lần gần đây nhất: 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."]]