How to submit an app to the Apple app store

The ADvantage SDK is using IDFA (identifierForAdvertising) to provide targeting for adservers.

as you can see below in the picture you need to check all these 3 boxes:


  • Serve advertisements within the app
  • Attribute this app installation to a previously served advertisement
  • Attribute an action taken within this app to a previously served advertisement
How to hide an ADvantage object from the view?

ADvantage instances have a view property which is a subclass of the UIView, so basically all methods you are using for a simple UIView are applicable. When no longer needed, we suggest to remove the ADvantage view from its superview, but hiding it is also an option. If an ADvantage instance finishes loading without an ad, we suggest removing its view from the superview as well as shown below:

func advantage(_ advantage: ADvantage, didLoad state: AVLoadedState) {
    if state == .withoutAd {
- (void)advantage:(ADvantage *)advantage didLoad:(AVLoadedState)state{
    if( state == AVLoadedWithoutAd ){
        [self.ad.view removeFromSuperview];
How can I use ADvantage in my iOS 9+ apps or is ADvantage supporting HTTPS?

1. ADvantage without HTTPS

If your app doesn't use any secure connections and you don't plan to switch to HTTPS, you can keep using ADvantage as usual. However since iOS 9, if you want to keep using HTTP, you need to add the following ATS (App Transport Security) settings in your project's Info.plist file to allow insecure connections to go through:


2. ADvantage with HTTPS

Important Note

If you want to upgrade to HTTPS please contact our sales team first. As we need to upgrade your ADvantage licence before you can use it.

If your app uses secure connections you can configure ADvantage to use HTTPS. Simply initialize your ADvantage objects with the new init methods to enable SSL:

- (id)initBannerWithLicenseKey:(NSString *)licenseKey SSLEnabled:(BOOL)SSLEnabled;
- (id)initBannerWithLicenseKey:(NSString *)licenseKey SSLEnabled:(BOOL)SSLEnabled registerPlugin:(AVPlugin *)plugin;
- (id)initBannerWithLicenseKey:(NSString *)licenseKey SSLEnabled:(BOOL)SSLEnabled SiteId:(NSString *)siteId Position:(NSString *)position;

- (id)initPreloadWithLicenseKey:(NSString *)licenseKey SSLEnabled:(BOOL)SSLEnabled;
- (id)initPreloadWithLicenseKey:(NSString *)licenseKey SSLEnabled:(BOOL)SSLEnabled registerPlugin:(AVPlugin *)plugin;
- (id)initPreloadWithLicenseKey:(NSString *)licenseKey SSLEnabled:(BOOL)SSLEnabled SiteId:(NSString *)siteId Position:(NSString *)position;

ATS settings

Depending on the configuration of the ad servers you are using, you may need to edit your Info.plist file. If the ad server you are using supports 'Forward Secrecy' and TLSv1.2 among other settings, then you can use Apple's default ATS (App Transport Security) settings, which doesn't require you to make any edits to your Info.plist file. The only thing you need to do is to set the SSLEnabled flag using the new init methods every time you create an ADvantage instance.

If you are not sure about the settings of your ad server, please create a ticket to contact us.

RealMedia doesn't support 'Forward Secrecy' and TLSv1.2 currently, so in addition to settings SSLEnabled to YES, you also have to add the following ATS settings to your Info.plist file:


Important Note

If not explicitly set, ADvantage default behaviour is not use SSL.

How can I prevent scrolling?

In some cases (e.g. UITableView) you want to make sure that a banner is not scrollable. For this purpose we've introduced the boolean scrollableBannersEnabled with version 2.4.7, which is set to TRUE by default. Please note that this setting is only applied to non-modal ads. (Modal ads would be pop ups like the interstitial or any other expandable ad that we support, so basically a UIViewController that is presented modally is not affected by this flag)

Disable scrolling for banners:

advantage.scrollableBannersEnabled = false
self.advantage.scrollableBannersEnabled = NO;
How can I see the debugging logs of ADvantage?

Debugging logs

You are able to see the debugging logs, by simply calling setDebuggingEnabled and pass YES right after initialising your ADvantage instance. It's set to NO by default.

[self.advantage setDebuggingEnabled:YES];