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ą wyświetlane z użyciem tych samych zajęć, których używasz w scenorysach i można je sformatować tak, aby pasowały do wizualnego projektu aplikacji.
Po wczytaniu reklamy natywnej aplikacja otrzymuje obiekt reklamy zawierający jej zasoby. a aplikacja – zamiast pakietu SDK do reklam mobilnych Google – jest odpowiedzialnej za ich wyświetlanie.
Ogólnie rzecz biorąc, skuteczne wdrożenie reklam natywnych składa się z 2 etapów: Wczytanie reklamy za pomocą pakietu SDK, a następnie wyświetlenie jej treści w aplikacji.
Na tej stronie dowiesz się, jak wczytać pakiet SDK reklam natywnych.
Wymagania wstępne
- Zapoznaj się z przewodnikiem dla początkujących.
Zawsze korzystaj z reklam testowych
Podczas tworzenia i testowania aplikacji używaj reklam testowych, a nie reklam, aktywne reklamy.
Najłatwiejszym sposobem wczytania reklam testowych jest użycie specjalnego identyfikatora testowego reklamy natywne 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. Upewnij się tylko, zastąp go identyfikatorem jednostki reklamowej przed opublikowaniem aplikacji.
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 z parametrem
GADAdLoader
które będą wysyłać wiadomości do przedstawicieli zgodnie z
GADAdLoaderDelegate
protokołu.
Inicjowanie ładowarki reklam
Zanim załadujesz reklamę, musisz zainicjować moduł wczytywania 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) oraz stałe wartości służące do przekazywania
adTypes
określającą formaty natywne, których żądasz, oraz dowolne
ustawiane w parametrze options
opcje. Na liście możliwych
wartości parametru options
można znaleźć w sekcji Ustawianie reklamy natywnej
Strona Opcje.
Tablica adTypes
powinna zawierać
stała :
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;
Wyślij żądanie
Po zainicjowaniu obiektu GADAdLoader
wywołaj jego metodę loadRequest:
, aby
żądania reklamy:
Swift
adLoader.load(GADRequest())
Objective-C
[self.adLoader loadRequest:[GADRequest request]];
loadRequest:
Metoda w
GADAdLoader
akceptuje takie samo
GADRequest
jak banery i reklamy pełnoekranowe. Podobnie jak w przypadku innych typów reklam, możesz używać obiektów żądania do dodawania informacji kierunkowych.
Wczytywanie wielu reklam (opcjonalnie)
Aby wczytać wiele reklam w jednym żądaniu, ustaw parametr
GADMultipleAdsAdLoaderOptions
obiektu podczas inicjowania komponentu GADAdLoader
.
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 ]];
Liczba reklam na żądanie jest ograniczona do pięciu i nie ma gwarancji, że SDK zwróci dokładną liczbę żądanych reklam.
Wyświetlone reklamy Google różnią się od siebie, chociaż reklamy zarezerwowane zasoby reklamowe lub zewnętrznych kupujących nie muszą być unikalne.
Jeśli korzystasz z zapośredniczenia, nie używaj klasy GADMultipleAdsAdLoaderOptions
.
Żądania reklam wielu reklam natywnych nie działają obecnie w przypadku identyfikatorów jednostek reklamowych, które
zostały skonfigurowane do zapośredniczenia.
Określanie, kiedy wczytywanie się zakończy
Gdy aplikacja wywoła metodę loadRequest:
, może uzyskać wyniki żądania za pomocą
Liczba połączeń z numerem:
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
oddzwanianie. Ta metoda przekazywania wskazuje, że moduł wczytywania reklam zakończył wczytywanie
reklamy i żadne inne reklamy ani błędy nie zostaną zgłoszone w odpowiedzi na to żądanie. 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ń
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 zdarzeniach związanych z interakcjami z reklamami natywnymi, wskaż przedstawiciela właściwości 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 załaduj ponownie po godzinie.
Nie dzwoń ponownie do numeru
loadRequest:
z urządzeniaGADAdLoader
aż do poprzedniej prośby kończy się wczytywanie, co wskazujeadLoaderDidFinishLoading:
.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 mają dużą ilość pamięci, pozwalając na buforowanie reklam natywnych 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 już tylko ją wyświetlić użytkownikom. Przejdź do naszych zaawansowanych reklam natywnych , aby dowiedzieć się, jak to zrobić.