Monetization iOS

I have followed your integration instructions, but see no ads in my app.

  • Verify the ad unit name in your code is the same capitalization as the ad unit configured on the flurry dev portal

  • Check the ad unit object as coded (FlurryAdNative, FlurryAdInterstitial) matched the ad unit type (Stream, Full Screen) as defined on the flurry dev portal

  • Turn the Flurry logging on in your app and observe the output for the Flurry related statements.

  • To help trouble-shoot the lack of interstitial ads in your app, make sure you add

the following lines into your code for interstitial (full screen) ads :

  • To help trouble-shoot the lack of native (stream) ads in your app, make sure you add the following lines into your code for native ads:

  • Take a look at the delegate callbacks that FlurryAdInterstitialDelegate or FlurryAdNativeDelegate when integrating interstitials or native ad units respectively, return upon calling fetchAd on the ad object.

    Each of the three delegates returns the adequately named version of the error callback. Namely:

Each error callback provides the FlurryAdError and NSError description that you can look into to understand the cause for the failure to receive the ad object.

The error codes that can be returned to your app are as follows:

Error code

Error summary

Error description



Invalid AdSpace Used



Network Error



Ad Load already in Progress



No Ads available for ad space. Try later.



Ad space is not set as active on Flurry dev portal



Ad unit could not be verified for device



Ad frame is not yet active



Ad not ready to display



Ad cannot be displayed on the current key window, e.g. an alert view



Ad request to server failed, e.g. because session is not active



Ad video failed to load

In case the ad object is received, similarly each delegate fires a callback:

FlurryAds: No ads available from server for this unit.

There are few reasons for this error, some are temporary some are reflection on geographical availability of Flurry ads. To resolve:

  • You can (temporarily) set your interstitial ad unit into the test mode to validate your integration.

or the same setting applied for your native ad unit

Please do remember to turn the test mode off prior to submitting your app to the App Store.

  • Or you can configure your ad unit to send the test ads to a particular device used for integration testing. To do so, on the flurry dev portal go to Monetization tab, on the left hand navigation bar select Applications & Ad Units, and select the ad unit in question. In the Advanced Options section, in the Test Device IDs field enter the IDFA of the test device where you are verifying the integration code.

test device id

adInterstitialVideoDidFinish delegate is not called

The (void) adInterstitialVideoDidFinish:(FlurryAdInterstitial*)interstitialAd delegate method will be called when a video finishes playing to inform the app that a video associated with an ad has finished playing.

This method is invoked for the Rewarded (Client-side or Server-side) full screen takeover ad units only. The ad unit configured as the Standard ad mix will not invoke this delegate.

The ad unit mix configuration is done on the server side, see further instructions: to integrate rewards into your app .

FlurryAdInterstitialDelegate or FlurryAdNativeDelegate delegates (some) are not called

If you are integrating Flurry ads in a UIViewController of your app then set FlurryAd delegate in viewDidAppear (instead of in viewWillAppear), do not set the delegate to nil in viewDidDisappear (instead of in viewWillDisappear). When the user clicks on the ad, the ad is expanded and the viewDidDisapear is called prior to the ad being opened in an another view. Also do not deallocate the ad object in the viewDidDisappear (or viewWillDisappear).

Apple requires me to verify that the app and any 3rd-party libraries respect the Limit Ad Tracking setting. Does Flurry respect this setting?

The Flurry SDK is compliant with Apple’s guidelines related to the Limit Ad Tracking setting.

How do I display the sponsored icon/advertiser name when mediating native ads with MoPub?

The Yahoo Gemini branding logo is a custom property in MoPub. To show it in your layout for iOS, you will need to override the layoutCustomAssetsWithProperties:imageLoader: method in your implementation of the MPNativeAdRendering subclass.

To do this, use the following: