> For the complete documentation index, see [llms.txt](https://ios-docs.adster.tech/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ios-docs.adster.tech/additional-features/render-unified-ad-only-for-gam.md).

# Render Unified Ad (Only for GAM)

**Implementation:**

```swift
extension BannerAdManager: MediationAdDelegate {
    func onBannerAdLoaded(bannerAd: AdsFramework.MediationBannerAd) {
        //Show banner ad here
    }
    
    func onNativeAdLoaded(nativeAd: AdsFramework.MediationNativeAd) {
        //Show native ad here
    }
    
    func onCustomNativeAdLoaded(customNativeAd: AdsFramework.MediationNativeCustomFormatAd) {
        //show custom native ad here
    }
    
    func onAdFailedToLoad(error: AdsFramework.AdError) {
        print("Banner Ad request failed with reason \(error.description)")
    }
    
    func onAdRevenuePaid(revenue: Double, adUnitId: String, network: String, currency: String, precisionType: AdsFramework.PrecisionType) {
        print("Revenue: \(revenue) \(currency), adUnitId: \(adUnitId), network: \(network), precision: \(precisionType)")
        
    }
}
```

{% hint style="info" %}
`onNativeAdLoaded()` - [Click here](https://docs.adster.tech/how-to-render-an-ad/native-ad#kotlin) for Rendering implementation \
`onBannerAdLoaded()` - [Click here](https://docs.adster.tech/how-to-render-an-ad/banner-ad) for Rendering implementation\
`onCustomNativeAdLoaded()` - [Click here](https://docs.adster.tech/how-to-render-an-ad/native-ad-2) for Rendering implementation
{% endhint %}
