Reklamy natywne to komponenty reklamowe, które są wyświetlane użytkownikom za pomocą komponentów interfejsu użytkownika dostępnych na danej platformie. Są one wyświetlane za pomocą tych samych klas, których używasz w storyboardach, i można je sformatować tak, aby pasowały do projektu graficznego 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 treści reklamy w aplikacji.
Na tej stronie znajdziesz instrukcje wczytywania reklam natywnych za pomocą pakietu SDK.
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 wczytywania reklam testowych jest użycie dedykowanego identyfikatora testowej jednostki reklamowej na potrzeby reklam natywnych na iOS:
/21775744923/example/native
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 komunikaty do swoich delegowanych zgodnie z protokołem GADAdLoaderDelegate
.
Oprócz formatu natywnego zdefiniowanego przez system możesz też tworzyć własne niestandardowe formaty reklam natywnych, które możesz stosować w przypadku reklam natywnych sprzedawanych bezpośrednio. Niestandardowe formaty reklam natywnych umożliwiają przekazywanie dowolnych uporządkowanych danych do aplikacji. Te reklamy są reprezentowane przez klasę GADCustomNativeAd
.
Inicjowanie ładowarki reklam
Zanim wczytasz reklamę, musisz zainicjować ładowarkę reklam.
Poniższy kod pokazuje, jak zainicjować GADAdLoader
:
Swift
adLoader = GADAdLoader(adUnitID: "/21775744923/example/native",
// The UIViewController parameter is optional.
rootViewController: rootViewController,
adTypes: [ .native ],
options: [ ... ad loader options objects ... ])
adLoader.delegate = self
Objective-C
self.adLoader = [[GADAdLoader alloc]
initWithAdUnitID:@"/21775744923/example/native"
// The UIViewController parameter is nullable.
rootViewController:rootViewController
adTypes:@[ GADAdLoaderAdTypeNative ]
options:@[ ... ad loader options objects ... ]];
self.adLoader.delegate = self;
Potrzebujesz identyfikatora jednostki reklamowej (możesz użyć identyfikatora testowego), stałych wartości do przekazania w tablicy adTypes
, aby określić formaty natywne, których chcesz użyć, oraz opcji, które chcesz ustawić w parametrze options
. Listę możliwych wartości parametru options
znajdziesz na stronie ustawień opcji reklam natywnych.
Tablica adTypes
powinna zawierać co najmniej jedną z tych stałych wartości:
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 delegata po załadowaniu reklamy natywnej.
Swift
public func adLoader(_ adLoader: GADAdLoader,
didReceive nativeAd: GADNativeAd)
Objective-C
- (void)adLoader:(GADAdLoader *)adLoader
didReceiveNativeAd:(GADNativeAd *)nativeAd;
Protokół GADCustomNativeAdLoaderDelegate
zawiera wiadomość wysyłaną do osoby, której przekazano dostęp, po załadowaniu reklamy z niestandardowego szablonu.
Swift
func adLoader(_ adLoader: GADAdLoader,
Receive customNativeAd: GADCustomNativeAd)
Objective-C
- (void)adLoader:(GADAdLoader *)adLoader
didReceiveCustomNativeAd:(GADCustomNativeAd *) customNativeAd;
Wyślij żądanie
Po zainicjowaniu GADAdLoader
wywołaj metodę loadRequest:
, aby poprosić o reklamę:
Swift
adLoader.load(GAMRequest())
Objective-C
[self.adLoader loadRequest:[GAMRequest request]];
Metoda loadRequest:
w GADAdLoader
akceptuje te same GAMRequest
obiekty co banery i interstitial. Podobnie jak w przypadku innych typów reklam, możesz używać obiektów żądania do dodawania informacji kierunkowych.
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.
Obsługa nieudanych żądań
Wymienione wyżej protokoły rozszerzają protokół GADAdLoaderDelegate
, który definiuje wiadomość wysyłaną, gdy nie udaje się załadować 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ą na liście reklam natywnych, 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 ponownie
loadRequest:
w przypadkuGADAdLoader
, dopóki poprzednia prośba nie zostanie załadowana, co jest sygnalizowane przezadLoaderDidFinishLoading:
.Ogranicz buforowanie reklam natywnych tylko do tego, co jest potrzebne. Na przykład podczas wstępnego buforowania przechowuj w pamięci podręcznej tylko reklamy, które są widoczne na ekranie. Reklamy natywne zajmują dużo pamięci, a ich buforowanie bez ich niszczenia 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ć, zapoznaj się z przewodnikiem dotyczącym zaawansowanych funkcji natywnych.