Vartical Native Ads
Implement callback methods into your “GluedInDelegate“ protocol class.
Step 1: To request ads, use the following method:
func requestForAds(feed: FeedModel?,
genre: [String]?,
dialect: [String]?,
originalLanguage: [String]?,
extraParams: [GAMExtraParams]?,
adsId: String?,
adsFormatId: [String]?) { }
- feed: The feed model for the ads.
- genre: Array of genres to target.
- dialect: Array of dialects to target.
- originalLanguage: Array of original languages to target.
- extraParams: Additional parameters for Google Ads Manager.
- adsId: Unique identifier for the ads.
- adsFormatId: Array of format IDs for the ads.
Step 2: Request Ads controller on demand basis:
Implement callback methods into your “GluedInDelegate“ protocol class.
To request ads controller on demand basis, use the following method:
func getNativeAdController() -> UIViewController? { }
Important method in GADNativeManager class:
Load the Ads:
To load native ads, use the following method, these method is already provided in to sample app, you dont have to change anything there just use as is:
func loadNativeAds(
genre: [String]?,
dialect: [String]?,
originalLanguage: [String]?,
gamExtraParams: [GAMExtraParams]?,
adUnitID: String?,
adsFormatId: [String]?,
didCompeleted: @escaping successHandler,
didFailedWithError: @escaping errorHandler
) {
self.completed = didCompeleted
self.failedWithError = didFailedWithError
self.adsFormatIds = adsFormatId
self.adLoaderDelegate = self
GADMobileAds.sharedInstance().audioVideoManager.audioSessionIsApplicationManaged = true
let videoOptions = GADVideoOptions()
videoOptions.startMuted = true
videoOptions.customControlsRequested = true
self.gadAdLoader = GADAdLoader(
adUnitID: adUnitID ?? "",
rootViewController: nil,
adTypes: [.customNative],
options: [videoOptions]
)
self.gadAdLoader?.delegate = self
let request = GAMRequest()
if let customTargetingParams = getExtraAdditionalParameters(
gamExtraParams: gamExtraParams,
genre: genre,
dialect: dialect,
originalLanguage: originalLanguage
) {
request.customTargeting = customTargetingParams
}
self.gadAdLoader?.load(request)
}
- genre: Array of genres to target.
- dialect: Array of dialects to target.
- originalLanguage: Array of original languages to target.
- gamExtraParams: Additional parameters for Google Ads Manager.
- adUnitID: Ad unit ID.
- adsFormatId: Array of format IDs for the ads.
- didCompeleted: Completion handler for successful ad load.
- didFailedWithError: Error handler for failed ad load.
Delegate Ads Method:
Implement the following delegate methods to handle ads:
func adLoader(_ adLoader: GADAdLoader, didReceive nativeAd: GADNativeAd) {
// Handle receiving a native ad
}
func adLoader(_ adLoader: GADAdLoader, didFailToReceiveAdWithError error: Error) {
failedWithError?(error.localizedDescription)
}
func adLoaderDidFinishLoading(_ adLoader: GADAdLoader) {
self.gadAdLoader = nil
self.adLoaderDelegate = nil
}
extension GADNativeManager: GADCustomNativeAdLoaderDelegate {
func customNativeAdFormatIDs(for adLoader: GADAdLoader) -> [String] {
return adsFormatIds ?? []
}
func adLoader(_ adLoader: GADAdLoader, didReceive customNativeAd: GADCustomNativeAd) {
completed?(customNativeAd)
}
}
- adLoader(_:didReceive:): Handle the event of receiving a native ad.
- adLoader(_:didFailToReceiveAdWithError:): Handle the event of failing to receive an ad.
- adLoaderDidFinishLoading(_:): Handle the event of finishing ad loading.
- customNativeAdFormatIDs(for:): Return the custom native ad format IDs.
- adLoader(_:didReceive:): Handle the event of receiving a custom native ad.