Release Notes: (1.4.4)
  • Updated iOS simulator library to support arm64 & armv7.
  • Updated iOS support y (For removing errors while compiling project for iOS) to support arm64.
librar

Integration Guide - Inmobi Ad Plugin

Platforms: Android & iOS
Plugin version: 1.4.4
Inmobi iOS SDK version: 4.5.1
Inmobi Android SDK version: 4.5.3

IMPORTANT RELEASE NOTE:

· >>> For developers targeting iOS platform, should immediately upgrade to this new version that with the latest Inmobi iOS SDK 3.7.0, in which all UDID (Unique Device Identifier) calls are eliminated. This is very important since Apple will be rejecting Apps that are still using UDID starting May 1st, 2013. Learn more...

Generally you don't have to dive into the documentation from Inmobi, simply follow a few steps below to get the plugin integrated in your App in minutes:

[1] Import the InmobiAd[Android|IOS|Universal].unitypackage file to your unity project;

[2] Follow the instructions below to configure the plugin.

· >>> For Android platform, click on the menu item of Unity top menu bar: NeatPlug -> InmobiAd -> Patch AndroidManifest. This is for generating a valid AndroidManifest.xml or patching the existing file with InmobiAd support.


· >>> For iOS platform, click on the menu item of Unity top menu bar: NeatPlug -> InmobiAd -> Patch iOS Configuration. This is for automatically adding iOS SDK frameworks, libraries or patching the Info.plist file (if needed) as long as the Xcode project is generated by Unity.

[3] Find InmobiAdAgent Prefab and InmobiAdListener Prefab in Assets/Plugins/NeatPlug/Ads/InmobiAd/Prefabs/, open the first scene of your game, drag & drop those two prefabs into the scene.

[4] Okay, the integration is done here. Now set up your Ad by filling in a few properties of the InmobiAdAgent gameObject which you just dropped in the Hierarchy window. To do this, simply select that gameObject, and look at its properties in the Inspector window, you need to fill in:

   · App Id [Android|IOS] - Your Inmobi App ID for Android or IOS.

   · Test Mode - Check this to enable test mode. (Starting 1.3.0, for iOS, you need to grab your testing device ID from the log, and register it at                         Inmobi Publisher Site.)

   · Auto Load Banner Ad - Check this if you want to load banner Ad automatically.

   · Auto Load Banner Ad In Scenes - In which scenes(levels) you want the banner Ad to be auto-loaded. (Set size to zero for all scenes)

   · Auto Load Banner Ad Type - Select the auto-loaded Ad type.

   · Auto Load Banner Ad Layout - Select the auto-loaded Ad layout.

With Auto Load Banner Ad checked, Ad will show up on device after you compile and run then. Basic users can jump straight to step [7] now.

[5] For advanced users who want to take full control of Ads, e.g. close an Ad after an In-App purchase is made, or preload an Ad for later display etc, see below:

  Call the following functions to initialize and request an Ad:

   · InmobiAd.Instance().Init(string appId) - Required if you don't apply "App Id" property value for InmobiAdAgent.

   · InmobiAd.Instance().LoadBannerAd(...) - Request a Banner Ad.

   · InmobiAd.Instance().LoadInterstitialAd(...) - Request an Interstitial Ad.

  There are other useful public methods that InmobiAd provides, to use them, simply call InmobiAd.Instance().methodName().
Show All   
public void Init(string appId)
/**
 * Initialization.
 * Set the App Id.
 * 
 * NOTE: This function only needs to be called if you don't configure your App ID 
 * in InmobiAdAgent gameObject properties.  
 *
 * @param appId
 *            string - Your Inmobi App ID
 */
public void Init(string appId)
public void SetTestMode(bool testMode)
/**
 * Set the test mode.
 *
 * NOTE: Setting testMode from client is deprecated starting from Inmobi SDK 3.7.0,
 * you will need to register testing devices at Inmobi Publisher Site. Setting 
 * test mode on will enable you to see the Device ID in the log, you'll need it for 
 * testing device regsitration.
 * 
 * @param testMode
 *             bool - true for Test Mode On, false for Test Mode Off.
 */
public void SetTestMode(bool testMode)
public void LoadBannerAd(InmobiAd.BannerAdType adType, InmobiAd.AdLayout layout, bool hide = false)
/**
 * Load a Banner Ad.
 * 
 * @param adType
 *           BannerAdType - type of the Ad.
 * 
 * @param layout
 *           AdLayout - in which layout the Ad should display.
 * 
 * @param hide (Optional, default false)
 *           bool - whether the ad should keep being invisible after loaded,
 *                  true for making the ad hidden, false for showing the 
 *                  ad immediately. if the parameter is set to true, then 
 *                  you need to programmatically display the ad by calling 
 *                  ShowBannerAd() after you get notified with event
 *                  OnReceiveAd from InmobiAdListener.
 */
public void LoadBannerAd(InmobiAd.BannerAdType adType, InmobiAd.AdLayout layout, bool hide = false)
public void LoadBannerAd(InmobiAd.BannerAdType adType, int top, int left, bool hide = false)
/**
 * Load a Banner Ad and place it at specified absolute position.
 * 
 * Please note that the Ad won't display if the top or left applied
 * makes the Ad display area outside the screen.
 * 
 * @param adType
 *           BannerAdType - the type of Ad.
 *
 * @param top
 *           int - the top margin (in pixels) for placing Ad in absolute position.
 *
 * @param left
 *           int - the left margin (in pixels) for placing Ad in absolute position. 
 *
 * @param hide (Optional, default false)
 *           bool - whether the ad should keep being invisible after loaded,
 *                  true for making the ad hidden, false for showing the 
 *                  ad immediately. if the parameter is set to true, then 
 *                  you need to programmatically display the ad by calling 
 *                  ShowBannerAd() after you get notified with event
 *                  OnReceiveAd from InmobiAdListener.
 */
public void LoadBannerAd(InmobiAd.BannerAdType adType, int top, int left, bool hide = false)
public void ShowBannerAd()
/**
 * Show the Banner Ad.
 * 
 * This sets the banner ad to be visible.
 */
public void ShowBannerAd()
public void HideBannerAd()
/**
 * Hide the Banner Ad.
 * 
 * This sets the banner ad to be invisible again.
 */
public void HideBannerAd()
public void RefreshBannerAd()
/**
 * Refresh the Banner Ad.
 * 
 * This initiates a new ad request to plugin.
 */
public void RefreshBannerAd()
public void DestroyBannerAd()
/**
 * Destroy the Banner Ad.
 */
public void DestroyBannerAd()
public void LoadInterstitialAd(bool hide = false)
/**
 * Load an Interstitial Ad.	 
 * 
 * @param hide (Optional, default false)
 *           bool - whether the ad should keep being invisible after loaded,
 *                  true for making the ad hidden, false for showing the 
 *                  ad immediately. if the parameter is set to true, then 
 *                  you need to programmatically display the ad by calling 
 *                  ShowInterstitialAd() after you get notified with event
 *                  OnReceiveAdInterstitial from InmobiAdListener.
 */
public void LoadInterstitialAd(bool hide = false)
public void ShowInterstitialAd()
/**
 * Show the Interstitial Ad.
 * 
 * This sets the Interstitial ad to be visible.
 */
public void ShowInterstitialAd()

[6] For advanced users who need to handle Ad events, e.g. reposition the game HUD bar as long as an Ad is displayed. Read this:

  Follow the instructions to handle Ad events:

  · Select the dropped InmobiAdListener gameObject, locate the InmobiAdListener.cs script, open it and make some modifications.

  These callbacks are exposed in the script, you can supply your own implementations in them.
Show All   
void OnAdShown() { ... }
/**
 * Fired when the banner Ad is shown.
 */
void OnAdShown()
{
    /// Your code here...   
}
void OnAdHidden() { ... }
/**
 * Fired when the banner Ad is hidden.
 */
void OnAdHidden()
{
    /// Your code here...   
}
void OnReceiveAd() { ... }
/**
 * Fired when a banner Ad is received successfully.
 */
void OnReceiveAd()
{
    /// Your code here...   
}
void OnFailedToReceiveAd(string err) { ... }
/**
 * Fired when a banner Ad fails to be received.
 * 
 * @param err
 *          string - The error string
 */
void OnFailedToReceiveAd(string err)
{
    /// Your code here...
}
void OnPresentScreen() { ... }
/**
 * Fired when a Banner Ad screen is presented.
 */
void OnPresentScreen()
{
    /// Your code here...   
}
void OnDismissScreen() { ... }
/**
 * Fired when a Banner Ad screen is dismissed.
 */
void OnDismissScreen()
{
    /// Your code here...   
}
void OnLeaveApplication() { ... }
/**
 * Fired when the App loses focus after a Banner Ad is clicked.
 */
void OnLeaveApplication()
{
    /// Your code here...
}
void OnReceiveAdInterstitial() { ... }
/**
 * Fired when an Interstitial Ad is received successfully.
 */
void OnReceiveAdInterstitial()
{
    /// Your code here...
}
void OnFailedToReceiveAdInterstitial(string err) { ... }
/**
 * Fired when an Interstitial Ad fails to be received.
 *
 * @param err
 *          string - The error string
 */
void OnFailedToReceiveAdInterstitial(string err)
{
    /// Your code here...
}
void OnPresentScreenInterstitial() { ... }
/**
 * Fired when an Interstitial Ad screen is presented.
 */
void OnPresentScreenInterstitial()
{
    /// Your code here...
}
void OnDismissScreenInterstitial() { ... }
/**
 * Fired when an Interstitial Ad screen is dismissed.
 */
void OnDismissScreenInterstitial()
{
    /// Your code here...
}
void OnLeaveApplicationInterstitial() { ... }
/**
 * Fired when the App loses focus after an Interstitial Ad is clicked.
 */
void OnLeaveApplicationInterstitial()
{
    /// Your code here...
}

[7] Build your App now. To compile for iOS platform, you need to have Xcode 4.5 (with iOS SDK v6) or above installed.

[8] Test and verify if the Ad can show up as expected, don't forget to test if the Ad is clickable and if the Ad window can be opened. It is suggested that you should turn on Test Mode (check "Test Mode" property of InmobiAdAgent gameObject or call InmobiAd.Instance().SetTestMode(true).) Also it would be helpful for you to address issues if you take a look at the logcat output (Android) or xcode debug console (iOS) to find the debug / error / warning messages.

IMPORTANT: Don't forget to turn off test mode before you build your release binary for appstore submission.

[EOF] Should you have any questions or encounter any problems while integrating the plugin, please do not hesitate to shoot us an email at support@neatplug.com, we will be more than happy to help you. Thanks for choosing NeatPlug solutions!