iOS

To manage a Thumbnail ad through Google AdMob mediation, Ogury provides a dedicated API that simplifies the integration process.

Initialize the Ogury SDK

To initialize the Ogury SDK, simply call the Ogury.start() method.

Ogury.start(with: "OGY-XXXXXXXXXXXX") { success, error in
    guard error == nil, success else {
        // handle error here
        return
    }
    // handle start here
}

The start() method requires the Ogury asset key associated with your app. If you don’t have one, refer to the Getting Started guide.

Though optional, the StartCompletionBlock is recommended. It provides callbacks for successful initialization or errors. If initialization fails, the listener returns an OguryError with an error code and localizedDescription, helping you troubleshoot. The possible errors are defined in the OguryStartErrorCode enum for easy reference.

OguryStartErrorCode

Enum value
Description

ModuleMissing

The SDK could not be started because a required SDK module is missing.

ModuleFailedToStart

The SDK could not be started because one of the required SDK modules failed to start.

Load a Thumbnail ad

To load a Thumbnail ad, instantiate an OguryThumbnailAdForGoogleMobileAds object and call its load() method.

By default, the ad loads with a maximum size of 180x180 points. If needed, you can customize the maximum size by following the guidelines provided in Customizing Thumbnail ad size section.

import UIKit
import OguryAds

class ViewController: UIViewController {
    private(set) var thumbnailAd: OguryThumbnailAdForGoogleMobileAds!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        thumbnailAd = OguryThumbnailAdForGoogleMobileAds(adUnitID: "your Google AdMob ad unit ID")
        thumbnailAd.load()
    }
}

OguryThumbnailAdForGoogleMobileAds requires the following parameter:

  • adUnitID: the Google AdMob ad unit ID for the Thumbnail ad.

Register for callbacks

You can monitor the lifecycle of your Thumbnail ad by implementing the OguryThumbnailAdDelegate protocol. This delegate provides real-time updates on key events, such as successful ad loading, display or errors.

To use it, set your class as the delegate of OguryThumbnailAdForGoogleMobileAds and implement the necessary methods. This ensures timely notifications, allowing you to manage the ad experience effectively.

If the thumbnailAd:didFailWithError callback is triggered, refer to the Error handling section below for detailed information on troubleshooting.

override func viewDidLoad() {
    super.viewDidLoad()
    thumbnailAd = OguryThumbnailAdForGoogleMobileAds(
        adUnitID: "your Google AdMob ad unit ID"
    )
    thumbnailAd.delegate = self
    thumbnailAd.load()
}

// Called when the ad is loaded and ready to be shown
func thumbnailAdDidLoad(_ thumbnailAd: OguryThumbnailAd) {
    // Call show() to display the ad
}

// Called when an impression is recorded
func thumbnailAdDidTriggerImpression(_ thumbnailAd: OguryThumbnailAd) {
    // Track ad performance here
}

// Called when the user clicks on the ad
func thumbnailAdDidClick(_ thumbnailAd: OguryThumbnailAd) {
    // Handle ad click tracking here
}

// Called when the ad is closed
func thumbnailAdDidClose(_ thumbnailAd: OguryThumbnailAd) {
    // Resume app flow after ad is closed
}

// Called when the ad fails to load or display
func thumbnailAd(_ thumbnailAd: OguryThumbnailAd, 
        didFailWithError error: OguryAdError) {
    switch error.type {
        case .load:
            // Handle loading error
        case .show:
            // Handle display error
    }
}

Show a Thumbnail ad

To display an loaded Thumbnail ad, invoke the show() method on the instantiated OguryThumbnailAdForGoogleMobileAds object.

By default, Thumbnail ad is aligned to the bottom-right corner, maintaining a margin of 20 points from the right edge and 150 points from the bottom.

Additionally, a Thumbnail ad is shown in a ViewController only if its bundle identifier matches the main bundle of the application. For details on how to customize these default settings using whitelists and blacklists, please see the Customizing Thumbnail ad display section

if thumbnailAd.isLoaded {
    // The ad is loaded and ready to be displayed.
    thumbnailAd.show(in: self)
} else {
    // The ad is not loaded yet. Handle this situation appropriately.
}

Advanced Topics

Customizing Thumbnail ad size

To adjust the size of a Thumbnail Ad, use the load() method with maxWidth and maxHeight parameters:

self.thumbnailAd.load(with: CGSize(width: maxWidth, height: maxHeight))

The maxWidth and maxHeight parameters specify the maximum dimensions, in points, that the Thumbnail ad will occupy on the screen.

For optimal readability and ad display quality, we recommend setting maxWidth = 180 and maxHeight = 180. For instance, if you set these values and the Ogury SDK decides to show a 16:9 video ad, the Thumbnail ad will resize to 180x101 points to maintain the 16:9 ratio.

Constraints:

  • maxWidth and maxHeight cannot exceed the device’s screen size.

  • Both maxWidth and maxHeight must be at least 101 points.

  • The longest side, either maxWidth or maxHeight, must be at least 180 points.

Customizing Thumbnail ad display

Thumbnail ads remain visible while users navigate between ViewControllers in your application.

By default, a Thumbnail ad is shown in a ViewController only if its bundle identifier matches the main bundle of the application. However, you can customize these default settings using whitelists and blacklists.

Whitelist bundles

You can expand the list of whitelisted bundles where Thumbnail ads can be displayed and remain on-screen. This is particularly useful if your app includes ViewControllers provided by a library, such as a game engine. In this case, you will need to whitelist the associated bundle.

To whitelist bundles, call the setWhitelistBundleIdentifiers method:

self.thumbnailAd.setWhitelistBundleIdentifiers(["com.example.bundle", "com.example.bundle2"])

Blacklist View Controllers

To prevent Thumbnail ads from being displayed in specific ViewControllers, use the setBlacklistViewControllers method:

self.thumbnailAd.setBlacklistViewControllers([NSStringFromClass(TermsAndConditionsViewController.classForCoder()), NSStringFromClass(SettingsViewController.classForCoder())])

When a user navigates to a ViewController that is neither in the whitelisted bundles nor explicitly blacklisted, the Thumbnail ad will be hidden and paused. It will reappear when the user returns to a permitted ViewController.

Error handling

If you are unable to load or display any Thumbnail ads, we recommend logging callbacks from the OgurythumbnailAdDelegate to monitor the ad's lifecycle, especially the thumbnailAd:didFailWithError callback. This method provides an an OguryAdError instance containing important error details:

  • type: indicates the error type through the OguryAdErrorType enum, which distinguishes between loading errors (OguryAdErrorTypeLoad) and showing errors (OguryAdErrorTypeShow).

  • code: An integer that identifies the specific error. The enums OguryLoadErrorCode and OguryShowErrorCode define potential error codes that may occur during loading or showing ads. Further details on these enums are provided in the tables below.

  • localizedDescription: A descriptive message that provides additional context about the error.

You can utilize these details to diagnose the issue and take appropriate action to resolve it.

Last updated

Was this helpful?