Ustawienia stylu natywnego
by umożliwić Google Ad Manager obsługę renderowania reklam natywnych na podstawie
określonych w produkcie. Najpierw określ rozmiar i kierowanie.
Następnie dodaj kod HTML, CSS i JavaScript, aby zdefiniować elastyczne reklamy
i zapewniają wysoką jakość
wyglądu na każdym ekranie. Nie musisz tego robić
dowolnego renderowania, Ad Manager automatycznie stosuje odpowiedni styl natywny
. Style natywne są implementowane tak samo jak banery reklamowe,
za pomocą funkcji GAMBannerView
. Można ich używać ze stałą reklamą
ustalany z wyprzedzeniem albo elastyczny rozmiar reklamy określany w czasie działania.
Wymagania wstępne
- Pakiet SDK do reklam mobilnych Google w wersji 7.14.0 lub nowszej
W tym przewodniku zakładamy, że masz jakąś praktyczną wiedzę o pakiecie SDK do reklam mobilnych Google. Jeśli jeszcze nie masz tego za sobą, zapoznaj się z Przewodnik dla początkujących.
Stały rozmiar
Style natywne o stałym rozmiarze umożliwiają kontrolowanie szerokości i wysokości od reklamy natywnej. Aby ustawić stały rozmiar, wykonaj te czynności:
W interfejsie Ad Managera utwórz element zamówienia i wybierz jedną z tych wstępnie zdefiniowane rozmiary z menu w polu
Size
.W Kreatorze interfejsu ustaw szerokość i wysokość elementu
GAMBannerView
aby dopasować się do wstępnie zdefiniowanego rozmiaru wybranego w kroku 1. Możesz zobaczyć na przykład rozmiary i odpowiadające im stałeGADAdSize
w banerze rozmiar .
Implementacja stylów natywnych o stałym rozmiarze przebiega w następujący sposób: instrukcje podane w sekcji Pierwszy baner , ale zyskuje się też elastyczność i kontrolę nad kodami HTML, CSS i JavaScript. aby nadać banerowi reklamowemu natywny wygląd, który pasuje do Twojej aplikacji.
Rozmiar elastyczny
W niektórych przypadkach stały rozmiar może nie mieć sensu. Możesz na przykład
chcesz, by szerokość reklamy pasowała do treści aplikacji, ale jej wysokość
dopasowują się dynamicznie do treści reklamy. Aby rozwiązać ten problem,
Możesz określić Fluid
jako rozmiar reklamy w interfejsie Ad Managera,
oznacza, że rozmiar reklamy jest określany w czasie działania aplikacji.
Pakiet SDK udostępnia specjalną stałą GADAdSize
,
kGADAdSizeFluid
,
zająć się tą sprawą. Wysokość rozmiaru reklamy elastycznej jest określana dynamicznie
na podstawie szerokości zdefiniowanej przez wydawcę,
GAMBannerView
by dostosować jej wysokość do wysokości kreacji.
Żądanie płynu
W przeciwieństwie do innych formatów reklam rozmiar kGADAdSizeFluid
nie zawiera
ma wstępnie określoną szerokość, dlatego pamiętaj, by wyraźnie określić ramkę banera.
w kodzie lub w Kreatorze interfejsu. Jeśli szerokość nie została określona,
SDK domyślnie ustawia wysokość banera na podstawie
na szerokość ekranu urządzenia.
Jeśli wyślesz żądanie z wieloma rozmiarami obejmujące kGADAdSizeFluid
,
zwracana reklama jest zawsze umieszczona w pojemniku na płyn,
i zachowują się jak reklamy elastyczne. W przypadku, gdy kreacja nieelastyczna
w tym kontenerze płynnym, pakiet SDK wyświetla reklamę na środku pola
kontenera, dzięki czemu nie trzeba modyfikować ograniczenia szerokości
po każdym zwróceniu nowej reklamy.
Implementacja tworzenia pojedynczego rozmiaru i płynu o wielu rozmiarach
jest bardzo podobny; jedyną różnicą jest zastosowanie wielu rozmiarów,
ustawiasz właściwość validAdSizes
, by określić reklamę
rozmiary, które są prawidłowe dla żądania reklamy:
Swift
bannerView.validAdSizes = [NSValueFromGADAdSize(kGADAdSizeFluid),
NSValueFromGADAdSize(kGADAdSizeBanner)]
Objective-C
_bannerView.validAdSizes = @[ NSValueFromGADAdSize(kGADAdSizeFluid),
NSValueFromGADAdSize(kGADAdSizeBanner) ];
Tak wygląda pełna implementacja w kodzie:
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]];
}
Aby zobaczyć przykład implementacji rozmiaru elastycznego Ad Managera: pobierz wersję demonstracyjną interfejsu API na iOS w języku Swift lub Objective-C.
Pobierz wersję demonstracyjną interfejsu API
Protokół GADAdSizeDelegate
Warto znać wysokość banera, zanim zmieni się rozmiar jego reklamy.
Wywołanie zwrotne adView:willChangeAdSizeTo:
powiadamia przedstawiciela przed
widok banera zmieni się na nowy: GADAdSize
. Do powiadomienia przed
widok banera zmieni się na nowy rozmiar reklamy, klasa musi spełniać
protokół GADAdSizeDelegate
.
Oto przykładowa implementacja interfejsu adView:willChangeAdSizeTo:
wywołanie zwrotne pokazujące, jak uzyskać nową szerokość i wysokość banera:
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;
}