Reklamy banerowe zajmują miejsce w układzie aplikacji, u góry lub u dołu ekranu urządzenia. Pozostają na ekranie podczas interakcji użytkowników z aplikacją i mogą odświeżać się automatycznie po określonym czasie.
Z tego przewodnika dowiesz się, jak zintegrować banery reklamowe z AdMob z aplikacją Flutter. Oprócz fragmentów kodu i instrukcji zawiera również informacje o prawidłowym rozmiarze banerów.
Zawsze testuj z reklamami testowymi
Tworząc i testując swoje aplikacje, używaj reklam testowych, a nie rzeczywistych reklam produkcyjnych. Niespełnienie tego warunku może doprowadzić do zawieszenia Twojego konta.
Najłatwiejszym sposobem załadowania reklam testowych jest użycie naszego dedykowanego identyfikatora testowej jednostki reklamowej dla banerów:
Testowe jednostki reklamowe są skonfigurowane tak, aby zwracały reklamy testowe dla każdego żądania i możesz używać ich we własnych aplikacjach podczas kodowania, testowania i debugowania. Tylko pamiętaj, aby zastąpić je własnymi identyfikatorami jednostki reklamowej przed opublikowaniem aplikacji.
Reklama instancyjna
BannerAd
wymaga adUnitId
An AdSize
An AdRequest
i BannerAdListener
. Poniższy przykład przedstawia baner reklamowy:
final BannerAd myBanner = BannerAd(
adUnitId: '<ad unit ID>',
size: AdSize.banner,
request: AdRequest(),
listener: BannerAdListener(),
);
Rozmiary banerów
Poniższa tabela zawiera standardowe rozmiary banerów.
Rozmiar w dp (szer. x wys.) | Opis | Stała wielkości reklamy |
---|---|---|
320x50 | Baner standardowy | banner |
320x100 | Duży baner | largeBanner |
320x250 | Średni prostokąt | mediumRectangle |
468x60 | Baner pełnowymiarowy | fullBanner |
728x90 | Tablica wyników | leaderboard |
Szerokość ekranu x 32|50|90 | Inteligentny baner | Zastosowanie getSmartBanner(Orientation) |
Aby zdefiniować niestandardowy rozmiar banera, ustaw żądaną AdSize
:
final AdSize adSize = AdSize(300, 50);
Wydarzenia z banerami reklamowymi
Poprzez wykorzystanie BannerAdListener
można słuchać na imprezach cyklu życia, takich jak, kiedy reklama jest załadowany. Ten przykład implementuje każdą metodę i rejestruje komunikat w konsoli:
final BannerAdListener listener = BannerAdListener(
// Called when an ad is successfully received.
onAdLoaded: (Ad ad) => print('Ad loaded.'),
// Called when an ad request failed.
onAdFailedToLoad: (Ad ad, LoadAdError error) {
// Dispose the ad here to free resources.
ad.dispose();
print('Ad failed to load: $error');
},
// Called when an ad opens an overlay that covers the screen.
onAdOpened: (Ad ad) => print('Ad opened.'),
// Called when an ad removes an overlay that covers the screen.
onAdClosed: (Ad ad) => print('Ad closed.'),
// Called when an impression occurs on the ad.
onAdImpression: (Ad ad) => print('Ad impression.'),
);
Załaduj reklamę
Po BannerAd
jest tworzony, load()
musi być wywołana przed może być wyświetlane na ekranie:
myBanner.load();
Reklama displayowa
Aby wyświetlić BannerAd
jako widget, należy instancję AdWidget
z obsługiwanym reklamy po wywołaniu load()
. Można utworzyć widżet przed wywołaniem load()
, ale load()
musi być wywołana przed dodaniem go do drzewa widget.
final AdWidget adWidget = AdWidget(ad: myBanner);
AdWidget
dziedziczy z klasy trzepotanie jest widget i może być używany jak każdy inny widget. W systemie iOS upewnij się, że umieszczasz widżet w widżecie o określonej szerokości i wysokości. W przeciwnym razie Twoja reklama może nie zostać wyświetlona. BannerAd
można umieścić w pojemniku o rozmiarze, który pasuje do reklamy:
final Container adContainer = Container(
alignment: Alignment.center,
child: adWidget,
width: myBanner.size.width.toDouble(),
height: myBanner.size.height.toDouble(),
);
Po ad nazwał load()
, to musi zadzwonić dispose()
, gdy dostęp do niego nie jest już potrzebne. Najlepszą praktyką kiedy zadzwonić dispose()
jest albo po AdWidget
zostanie usunięta z drzewa widget lub w AdListener.onAdFailedToLoad
zwrotnego.
Otóż to! Twoja aplikacja jest teraz gotowa do wyświetlania banerów reklamowych.
Ograniczenie przewijania w Androidzie 9 i starszych
Jesteśmy świadomi, że niektóre starsze lub mniej potężne urządzenia z systemem Android w wersji 9 lub wcześniej mogą mieć nieoptymalne wydajność podczas wyświetlania reklam wbudowanych banerów ciągu przewijania poglądów. Zalecamy używanie tego typu banerów tylko w systemie Android 10 lub nowszym. Nie ma to wpływu na banery o stałej pozycji, takie jak banery zakotwiczone i można ich używać z optymalną wydajnością na wszystkich poziomach interfejsu API systemu Android.