Reklamy natywne to zasoby reklamowe, które są wyświetlane użytkownikom za pomocą komponentów interfejsu użytkownika dostępnych na danej platformie. Są wyświetlane przy użyciu tych samych klas, które są już używane w Twoich scenorysach, i można je sformatować tak, aby pasowały do wizualnego projektu aplikacji.
Gdy wczytuje się reklama natywna, aplikacja otrzymuje obiekt reklamy zawierający jej komponenty. Za wyświetlanie reklamy odpowiada aplikacja, a nie pakiet SDK do reklam mobilnych Google.
Ogólnie rzecz biorąc, wdrożenie reklam natywnych składa się z 2 części: wczytywania reklamy za pomocą pakietu SDK i wyświetlania jej treści w aplikacji.
Na tej stronie dowiesz się, jak za pomocą pakietu SDK wczytywać reklamy natywne.
Wymagania wstępne
- Zapoznaj się z przewodnikiem dla początkujących.
Zawsze testuj reklamy za pomocą reklam testowych
Podczas tworzenia i testowania aplikacji używaj reklam testowych, a nie reklam produkcyjnych.
Najłatwiejszym sposobem wczytania reklam testowych jest użycie dedykowanego identyfikatora testowej jednostki reklamowej na potrzeby reklam natywnych na iOS:
ca-app-pub-3940256099942544/3986624511
Jest on specjalnie skonfigurowany tak, aby zwracać reklamy testowe w przypadku każdego żądania. Możesz go używać w swoich aplikacjach podczas kodowania, testowania i debugowania. Pamiętaj, aby przed opublikowaniem aplikacji zastąpić go własnym identyfikatorem jednostki reklamowej.
Więcej informacji o działaniu reklam testowych w pakiecie SDK do reklam mobilnych Google znajdziesz w artykule Reklamy testowe.
Wczytywanie reklam
Reklamy natywne są wczytywane za pomocą klasy GADAdLoader
, która wysyła wiadomości do swoich delegatów zgodnie z protokołem GADAdLoaderDelegate
.
Inicjowanie ładowarki reklam
Zanim wczytasz reklamę, musisz zainicjować ładowarkę reklam.
Poniższy kod pokazuje, jak zainicjować GADAdLoader
:
Swift
adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
// The UIViewController parameter is optional.
rootViewController: rootViewController,
adTypes: [ .native ],
options: [ ... ad loader options objects ... ])
adLoader.delegate = self
Objective-C
self.adLoader = [[GADAdLoader alloc]
initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
// The UIViewController parameter is nullable.
rootViewController:rootViewController
adTypes:@[ GADAdLoaderAdTypeNative ]
options:@[ ... ad loader options objects ... ]];
self.adLoader.delegate = self;
Potrzebny będzie identyfikator jednostki reklamowej (możesz użyć identyfikatora testowego), stałe przekazywane w tablicy adTypes
, które określają, które formaty natywne mają być wysyłane, oraz wszelkie opcje, które można ustawić w parametrze options
. Listę możliwych wartości parametru options
znajdziesz na stronie ustawień opcji reklam natywnym.
Tablica adTypes
powinna zawierać
tę stałą :
Implementowanie delegata ładowarki reklam
Delegowany komponent ładowarki reklam musi implementować protokoły odpowiednie dla danego typu reklamy.
W przypadku reklam natywnych protokół GADNativeAdLoaderDelegate
zawiera wiadomość, która jest wysyłana do przedstawiciela po wczytaniu reklamy natywnej.
Swift
public func adLoader(_ adLoader: GADAdLoader,
didReceive nativeAd: GADNativeAd)
Objective-C
- (void)adLoader:(GADAdLoader *)adLoader
didReceiveNativeAd:(GADNativeAd *)nativeAd;
Wyślij żądanie
Po zainicjowaniu GADAdLoader
wywołaj metodę loadRequest:
, aby poprosić o reklamę:
Swift
adLoader.load(GADRequest())
Objective-C
[self.adLoader loadRequest:[GADRequest request]];
Metoda loadRequest:
w GADAdLoader
akceptuje te same GADRequest
obiekty co banery i interstitial. Obiektów żądań możesz używać do dodawania informacji o kierowaniu, tak jak w przypadku innych typów reklam.
Wczytywanie wielu reklam (opcjonalnie)
Aby wczytać wiele reklam w jednym żądaniu, podczas inicjowania obiektu GADAdLoader
ustaw obiekt GADMultipleAdsAdLoaderOptions
.
Swift
let multipleAdOptions = GADMultipleAdsAdLoaderOptions()
multipleAdOptions.numberOfAds = 5;
adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
// The UIViewController parameter is optional.
rootViewController: self,
adTypes: [ .native ],
options: [ multipleAdOptions ])
Objective-C
GADMultipleAdsAdLoaderOptions *multipleAdsOptions =
[[GADMultipleAdsAdLoaderOptions alloc] init];
multipleAdsOptions.numberOfAds = 5;
self.adLoader = [[GADAdLoader alloc]
initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
// The UIViewController parameter is nullable.
rootViewController:rootViewController
adTypes:@[ GADAdLoaderAdTypeNative ]
options:@[ multipleAdsOptions ]];
Maksymalna liczba reklam na żądanie to 5, a nie można zagwarantować, że pakiet SDK zwróci dokładnie taką liczbę reklam, o którą prosisz.
Zwrócone reklamy Google będą się od siebie różnić, ale nie ma gwarancji, że reklamy z rezerwowanych zasobów reklamowych lub od zewnętrznych kupujących będą unikalne.
Jeśli korzystasz z zapośredniczenia, nie używaj klasy GADMultipleAdsAdLoaderOptions
, ponieważ żądania dotyczące wielu natywnych reklam nie działają obecnie w przypadku identyfikatorów jednostek reklamowych skonfigurowanych pod kątem zapośredniczenia.
Określanie, kiedy wczytywanie zostało zakończone
Gdy aplikacja wywoła funkcję loadRequest:
, może uzyskać wyniki żądania za pomocą wywołań funkcji:
adLoader:didFailToReceiveAdWithError:
w:GADAdLoaderDelegate
adLoader:didReceiveNativeAd:
w:GADNativeAdLoaderDelegate
Żądanie pojedynczej reklamy spowoduje jedno wywołanie jednej z tych metod.
Żądanie dotyczące wielu reklam spowoduje wywołanie co najmniej jednej z wymienionych powyżej metod, ale nie więcej niż maksymalną liczbę żądanych reklam.
Ponadto GADAdLoaderDelegate
oferuje adLoaderDidFinishLoading
telefoniczną prośbę o oddzwonienie. Ta metoda delegowana wskazuje, że ładowarka reklam zakończyła wczytywanie reklam i nie będzie już zgłaszać żadnych innych reklam ani błędów dotyczących tego żądania. Oto przykład użycia tej funkcji podczas wczytywania kilku natywnych reklam jednocześnie:
Swift
class ViewController: UIViewController, GADNativeAdLoaderDelegate {
var adLoader: GADAdLoader!
override func viewDidLoad() {
super.viewDidLoad()
let multipleAdOptions = GADMultipleAdsAdLoaderOptions()
multipleAdOptions.numberOfAds = 5;
adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
// The UIViewController parameter is optional.
rootViewController: rootViewController,
adTypes: [ .native ],
options: [ multipleAdOptions ])
adLoader.delegate = self
adLoader.load(GADRequest())
}
func adLoader(_ adLoader: GADAdLoader,
didReceive nativeAd: GADNativeAd) {
// A native ad has loaded, and can be displayed.
}
func adLoaderDidFinishLoading(_ adLoader: GADAdLoader) {
// The adLoader has finished loading ads, and a new request can be sent.
}
}
Objective-C
@interface ViewController () <GADNativeAdLoaderDelegate, GADVideoControllerDelegate>
@property(nonatomic, strong) GADAdLoader *adLoader;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
GADMultipleAdsAdLoaderOptions *multipleAdsOptions =
[[GADMultipleAdsAdLoaderOptions alloc] init];
multipleAdsOptions.numberOfAds = 5;
self.adLoader = [[GADAdLoader alloc]
initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
// The UIViewController parameter is nullable.
rootViewController:rootViewController
adTypes:@[ GADAdLoaderAdTypeNative ]
options:@[ multipleAdsOptions ]];
self.adLoader.delegate = self;
[self.adLoader loadRequest:[GADRequest request]];
}
- (void)adLoader:(GADAdLoader *)adLoader
didReceiveNativeAd:(GADNativeAd *)nativeAd {
// A native ad has loaded, and can be displayed.
}
- (void)adLoaderDidFinishLoading:(GADAdLoader *) adLoader {
// The adLoader has finished loading ads, and a new request can be sent.
}
@end
Obsługa nieudanych żądań
Powyższe protokoły rozszerzają protokół GADAdLoaderDelegate
, który definiuje wiadomość wysyłaną, gdy nie uda się wczytać reklam.
Swift
public func adLoader(_ adLoader: GADAdLoader,
didFailToReceiveAdWithError error: NSError)
Objective-C
- (void)adLoader:(GADAdLoader *)adLoader
didFailToReceiveAdWithError:(NSError *)error;
otrzymywać powiadomienia o zdarzeniach związanych z reklamami natywnymi,
Aby otrzymywać powiadomienia o interakcjach z reklamami natywnymi, ustaw właściwość delegate reklamy natywnej:
Swift
nativeAd.delegate = self
Objective-C
nativeAd.delegate = self;
Następnie wprowadź GADNativeAdDelegate
, aby odbierać te wywołania delegowane:
Swift
func nativeAdDidRecordImpression(_ nativeAd: GADNativeAd) {
// The native ad was shown.
}
func nativeAdDidRecordClick(_ nativeAd: GADNativeAd) {
// The native ad was clicked on.
}
func nativeAdWillPresentScreen(_ nativeAd: GADNativeAd) {
// The native ad will present a full screen view.
}
func nativeAdWillDismissScreen(_ nativeAd: GADNativeAd) {
// The native ad will dismiss a full screen view.
}
func nativeAdDidDismissScreen(_ nativeAd: GADNativeAd) {
// The native ad did dismiss a full screen view.
}
func nativeAdWillLeaveApplication(_ nativeAd: GADNativeAd) {
// The native ad will cause the app to become inactive and
// open a new app.
}
Objective-C
- (void)nativeAdDidRecordImpression:(GADNativeAd *)nativeAd {
// The native ad was shown.
}
- (void)nativeAdDidRecordClick:(GADNativeAd *)nativeAd {
// The native ad was clicked on.
}
- (void)nativeAdWillPresentScreen:(GADNativeAd *)nativeAd {
// The native ad will present a full screen view.
}
- (void)nativeAdWillDismissScreen:(GADNativeAd *)nativeAd {
// The native ad will dismiss a full screen view.
}
- (void)nativeAdDidDismissScreen:(GADNativeAd *)nativeAd {
// The native ad did dismiss a full screen view.
}
- (void)nativeAdWillLeaveApplication:(GADNativeAd *)nativeAd {
// The native ad will cause the app to become inactive and
// open a new app.
}
Sprawdzone metody
Podczas wczytywania reklam przestrzegaj tych zasad.
Aplikacje, które używają natywnej listy reklam, powinny z wyprzedzeniem przechowywać w pamięci podręcznej listę reklam.
Podczas wstępnego buforowania reklam wyczyść pamięć podręczną i ponownie załaduj reklamy po upływie godziny.
Nie wywołuj identyfikatora
loadRequest:
ponownie na urządzeniuGADAdLoader
, dopóki nie zakończy się wczytywanie poprzedniego żądania, jak wskazuje toadLoaderDidFinishLoading:
.Ogranicz buforowanie reklam natywnych tylko do tego, co jest potrzebne. Na przykład podczas wstępnego buforowania zapisuj w pamięci podręcznej tylko te reklamy, które są natychmiast widoczne na ekranie. Reklamy natywne zajmują dużo pamięci, a ich zapisywanie w pamięci podręcznej bez ich zniszczenia powoduje nadmierne wykorzystanie pamięci.
usuwać reklamy natywne, gdy nie są już używane.
Wyświetlanie reklamy
Po załadowaniu reklamy pozostaje tylko wyświetlić ją użytkownikom. Aby dowiedzieć się, jak to zrobić, przeczytaj przewodnik po zaawansowanych reklamach natywnych.