package org.robovm.bindings.admob; import org.robovm.apple.foundation.NSObject; import org.robovm.apple.uikit.UIImage; import org.robovm.apple.uikit.UIViewController; import org.robovm.apple.uikit.UIWindow; import org.robovm.objc.annotation.Method; import org.robovm.objc.annotation.NativeClass; import org.robovm.objc.annotation.Property; /** An interstitial ad. This is a full-screen advertisement shown at natural transition points in your application such as between * game levels or news stories. * * Interstitials are shown sparingly. Expect low to no fill. */ @NativeClass public class GADInterstitial extends NSObject { @Property public native String getAdUnitID (); /** Required value created in the AdSense website. Create a new ad unit for every unique placement of an ad in your application. * Set this to the ID assigned for this placement. Ad units are important for targeting and stats. Example values for different * request types: * * <pre> * AdMob: a0123456789ABCD * DFP: /0123/ca-pub-0123456789012345/my-ad-identifier * AdSense: ca-mb-app-pub-0123456789012345/my-ad-identifier * </pre> */ @Property public native void setAdUnitID (String adUnitID); @Property public native GADInterstitialDelegate getDelegate (); /** Optional delegate object that receives state change notifications from this GADInterstitalAd. */ @Property(strongRef = true) public native void setDelegate (GADInterstitialDelegate delegate); /** Makes an interstitial ad request. Additional targeting options can be supplied with a request object. Only one interstitial * request is allowed at a time. * * This is best to do several seconds before the interstitial is needed to preload its content. Then when transitioning between * view controllers show the interstitial with {@link #present(UIViewController)}. * @param request */ @Method(selector = "loadRequest:") public native void loadRequest (GADRequest request); /** The window will be shown with the image displayed until either the request interstitial is shown or a timeout occurs. The * delegate will receive an {@link GADInterstitialDelegate#didDismissScreen(GADInterstitial)} callback to indicate that your * app should continue when the interstitial has finished. * @param request * @param window * @param image */ @Method(selector = "loadAndDisplayRequest:usingWindow:initialImage:") public native void loadAndDisplayRequest (GADRequest request, UIWindow window, UIImage image); /** @return {@code true} if the interstitial is ready to be displayed. The delegate's interstitialAdDidReceiveAd: will be called * when this switches from {@code false} to {@code true} . */ @Property(selector = "isReady") public native boolean isReady (); /** @return {@code true} if the interstitial object has already shown an interstitial. Note that an interstitial object can only * be used once even with different requests. */ @Property(selector = "hasBeenUsed") public native boolean isBeenUsed (); /** @return the ad network class name that fetched the current ad. Returns {@code null} while the latest ad request is in * progress or if the latest ad request failed. For both standard and mediated Google AdMob ads, this method returns * "GADMAdapterGoogleAdMobAds". For ads fetched via mediation custom events, this method returns * "GADMAdapterCustomEvents". */ @Property public native String getAdNetworkClassName (); /** Presents the interstitial ad which takes over the entire screen until the user dismisses it. This has no effect unless * {@link #isReady()} returns {@code true} and/or the delegate's {@link GADInterstitialDelegate#didReceiveAd(GADInterstitial)} * has been received. * * Set rootViewController to the current view controller at the time this method is called. If your application does not use * view controllers pass in {@code null} and your views will be removed from the window to show the interstitial and restored * when done. After the interstitial has been removed, the delegate's * {@link GADInterstitialDelegate#didDismissScreen(GADInterstitial)} will be called. * @param rootViewController */ @Method(selector = "presentFromRootViewController:") public native void present (UIViewController rootViewController); }