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.