Native ads are banner/video ad assets that are presented to users through UI components that are native to the platform. They are shown using the same types of views with which you are already building your layouts, and can be formatted to match your app’s visual design.
This guide shows you how to integrate native ads from Tapsell into your Android app.
Register Native ad
The first step is to register the Tapsell native ad adapters in your screen. Currently, only the Tapsell
ad network supports native ad type and no other ad networks support this ad type:
import { TapsellLegacyAdapter } from '@react-native-tapsell-mediation/legacy';
useEffect(() => {
TapsellLegacyAdapter.register();
}, []);
Request Ad
To request a new native ad, call the requestNativeAd
function from the Tapsell package. The argument of the method is the ad “Zone ID”:
import { requestNativeAd } from '@react-native-tapsell-mediation/tapsell';
requestNativeAd(zoneId)
.then((adId: string) => {
// Ad loaded successfully
})
.catch((error: string) => {
// Failed to load ad
});
Show Ad
To show an ad, call the showNativeAd
function from the Tapsell package. The first argument of the method is the ad id received from the previous step. The second argument is an object of NativeAdDispatch
containing the all state dispatch functions of the corresponding ad which is going to be shown:
import { showNativeAd } from '@react-native-tapsell-mediation/tapsell';
showNativeAd(adId, adDispatch, {
onAdImpression: () => {
// Ad impression
},
onAdClicked: () => {
// Ad clicked
},
onAdClosed: (completionState: CompletionState) => {
// Ad closed with completion state: COMPLETED | SKIPPED | UNKNOWN
},
onAdFailed: (error: string) => {
// Failed to show ad
},
});
NativeAdDispatch
type in an object contains all state dispatch functions of the ad content which is going to be shown and are used to update the state of the ad content. These dispatch functions aresetTitle
,setDescription
,setLogo
,setBannerImageUrl
,setCallToActionText
. The following code is an example of how to use these dispatch functions:const [title, setTitle] = useState(''); const [description, setDescription] = useState(''); const [logo, setLogo] = useState(''); const [bannerImageUrl, setBannerImageUrl] = useState(''); const [callToActionText, setCallToActionText] = useState(''); // ... Your screen logics ... const adDispatch = { setTitle: setTitle, setDescription: setDescription, setLogo: setLogo, setBannerImageUrl: setBannerImageUrl, setCallToActionText: setCallToActionText, }
CompletionState
type inonAdClosed
callback indicates whether the ad has been shown completely or skipped by the user before completion. It will beUNKNOWN
if this information is not provided by the corresponding ad network.enum CompletionState { COMPLETED = 0, SKIPPED = 1, UNKNOWN = 2, }
Click on ad
You need to call clickNativeAd
function from the Tapsell legacy package when the user clicks on the ad. The following code is an example of how to manage the click event of the ad:
import { clickNativeAd } from '@react-native-tapsell-mediation/tapsell';
<Button
title="Call To Action Button"
onPress={() =>
clickNativeAd(adId)
}
/>
Destroy Ad
To destroy an ad, call the destroyNativeAd
function from the Tapsell package. You can destroy the ad resources in the unmounting phase of the screen. The following code is an example of how to destroy the ad:
import { destroyNativeAd } from '@react-native-tapsell-mediation/tapsell';
useEffect(() => {
return () => {
destroyNativeAd(adId);
};
}, []);
Caching Native Ads
To cache native ads, you can use the requestMultipleNativeAds
method to fetch and store up to 5 ads at once.
requestMultipleNativeAd(zoneId: string, maximumCount: number): Promise<string>;
This method allows you to simultaneously request multiple ads (up to 5) and invoke the provided listener up to the requested count. This way, you can pre-load several ads before displaying them.
You can utilize this feature in infinite scrolling lists or scenarios that require displaying multiple ads. Please note that this functionality is exclusively available for native ads.
Test keys
To use test app keys and zones, you can refer to this link
Sample Project
for more info you can use Native Sample on GitHub repository.