原生樣式設定
可讓 Google Ad Manager 根據原生廣告處理原生廣告的顯示方式
您在產品中指定的樣式。首先,請指定大小和指定目標
接著新增 HTML、CSS 和 JavaScript 來定義回應式廣告
並製作適合所有螢幕的畫質你不需要執行這項動作
任何轉譯情形;Ad Manager 會自動採用
目標位置原生樣式的導入方式與橫幅廣告類似
透過 GAMBannerView
。這種素材資源可與固定廣告搭配使用
或是在執行階段決定的自動調整廣告大小
必要條件
- Google Mobile Ads SDK 7.14.0 以上版本
本指南假設您對 Google Mobile Ads SDK 有一定程度的瞭解。 如果您還沒有這樣做,建議您參考 開始使用指南。
固定大小
大小固定的原生樣式可讓您控制寬度和高度 顯示內容如要設定固定大小,請按照下列步驟操作:
在 Ad Manager 使用者介面中建立委刊項,然後選取 自訂大小。
Size
在介面建構工具中,設定
GAMBannerView
的寬度和高度 以便與您在步驟 1 中選取的預先定義大小相符您會看到 大小及其對應的GADAdSize
常數清單 尺寸 專區。
實作採用固定大小的原生樣式的方法如下: 您的第一個橫幅廣告 要求 但您也能彈性調整 HTML、CSS 和 JavaScript ,賦予橫幅廣告原生的外觀和風格。
自動調整大小
在某些情況下,固定大小可能不合理。例如,你可以設定
希望廣告寬度與應用程式內容相符,但需要高度
配合廣告內容動態調整為了處理這種情況
您可以在 Ad Manager UI 中指定 Fluid
做為廣告大小
指定廣告在應用程式的執行階段中決定尺寸。
SDK 提供了特殊的 GADAdSize
常數
kGADAdSizeFluid
、
來處理這個情況。系統會動態決定自動調整廣告大小的高度
以便根據發布商定義的寬度
GAMBannerView
、
配合廣告素材的高度調整高度
自動調整要求
與其他廣告格式不同,kGADAdSizeFluid
廣告的大小不需要
預先定義的寬度,因此請務必明確設定橫幅廣告頁框
程式碼或 Interface Builder 中的寬度。如果未指定寬度
SDK 預設會根據
寬度。
如果您提出的多重大小要求包含 kGADAdSizeFluid
,
傳回的廣告一定會放置在自動調整容器內
就像自動調整廣告一樣在非流動廣告素材
在這個自動調整容器中傳回的 SDK 會將廣告放在
這樣就不必修改寬度限制
每次傳回新的廣告時
採用單一尺寸和多重大小流動的導入做法
非常類似唯一的差別是
您設定了 validAdSizes
屬性來指定廣告
適用於廣告請求的大小:
Swift
bannerView.validAdSizes = [NSValueFromGADAdSize(kGADAdSizeFluid),
NSValueFromGADAdSize(kGADAdSizeBanner)]
Objective-C
_bannerView.validAdSizes = @[ NSValueFromGADAdSize(kGADAdSizeFluid),
NSValueFromGADAdSize(kGADAdSizeBanner) ];
在程式碼中,完整導入如下所示:
Swift
var bannerView: GAMBannerView!
override func viewDidLoad() {
super.viewDidLoad()
// Create the GAMBannerView and set its width to a width that makes sense for your
// app. In this example, the width is set to the width of the UIViewController's
// root view.
bannerView = GAMBannerView(adSize: kGADAdSizeFluid)
var frameRect = bannerView.frame
frameRect.size.width = view.bounds.width
bannerView.frame = frameRect
// Uncomment this code for a multisize fluid request.
// bannerView.validAdSizes = [NSValueFromGADAdSize(kGADAdSizeFluid),
// NSValueFromGADAdSize(kGADAdSizeBanner)]
bannerView.adUnitID = "YOUR_AD_UNIT_ID"
bannerView.rootViewController = self
// Make the ad request.
bannerView.load(GAMRequest())
}
Objective-C
GAMBannerView *_bannerView;
- (void)viewDidLoad {
[super viewDidLoad];
// Create the GAMBannerView and set its width to a width that makes sense for your
// app. In this example, the width is set to the width of the UIViewController's
// root view.
_bannerView = [[GAMBannerView alloc] initWithAdSize:kGADAdSizeFluid];
CGRect frameRect = _bannerView.frame;
frameRect.size.width = CGRectGetWidth(self.view.bounds);
_bannerView.frame = frameRect;
// Uncomment this code for a multisize fluid request.
// _bannerView.validAdSizes = @[ NSValueFromGADAdSize(kGADAdSizeFluid),
// NSValueFromGADAdSize(kGADAdSizeBanner) ];
_bannerView.adUnitID = @"YOUR_AD_UNIT_ID";
_bannerView.rootViewController = self;
// Make the ad request.
[_bannerView loadRequest:[GAMRequest request]];
}
要查看 Ad Manager 自動調整廣告大小的導入範例 在 Swift 或 Objective-C 中下載 iOS API 試用版應用程式。
GADAdSizeDelegate 通訊協定
您可能會在廣告大小變更之前,先掌握橫幅廣告的高度。
adView:willChangeAdSizeTo:
回呼會在
橫幅檢視畫面會變更為新的 GADAdSize
。要在以下時間之前收到通知
橫幅廣告檢視畫面有所變更時,您的類別必須符合
GADAdSizeDelegate
通訊協定。
以下是 adView:willChangeAdSizeTo:
的實作範例:
回呼顯示如何取得橫幅廣告新的寬度和高度:
Swift
// To be notified before the banner's ad size changes, your view controller class must
// conform to the GADAdSizeDelegate protocol.
bannerView.adSizeDelegate = self
// MARK: - GADAdSizeDelegate
func adView(_ bannerView: GADBannerView, willChangeAdSizeTo adSize: GADAdSize) {
let height = adSize.size.height
let width = adSize.size.width
}
Objective-C
// To be notified before the banner's ad size changes, your view controller class must
// conform to the GADAdSizeDelegate protocol.
_bannerView.adSizeDelegate = self;
#pragma mark - GADAdSizeDelegate
- (void)adView:(GADBannerView *)bannerView willChangeAdSizeTo:(GADAdSize)adSize {
CGFloat height = adSize.size.height;
CGFloat width = adSize.size.width;
}