Get Started with Avocarrot

Overview

Examples

Android

Overview

- Native Ads

List/Feed

Custom

- Standard IAB Formats

Banner

Interstitial

Video

- Others

Troubleshooting

Admob Android Adapter

Mopub Android Adapter

DFP Android Adapter

iOS

Overview

- Native Ads

List/Feed

Custom

- Standard IAB Formats

Banner

Interstitial

Video

- Others

Troubleshooting

- Adapters

Admob iOS Adapter

Mopub iOS Adapter

DFP iOS Adapter

API Documentation

Reporting API

Help

Supported Networks & Ad Types

General

Earnings

Payments and Accounting

Integration

Reporting

Mediation Network Optimization

Legal and Privacy

Updates

SDK Change Log

Android Change Log

iOS Change Log

Banner

Updated a minute ago ​by Derek Lim

Overview

This guide helps you setup Banner ads in your iOS app.


Prerequisites

Create a  Banner ad unit from your app on Avocarrot Dashboard 

Requirements & Dependencies 

  • Target iOS 8.0 or higher

Setup SDK

Avocarrot iOS SDK supports iOS 8.0 or higher.

You can add AvocarrotSDK to your project using Cocoapods  (recommended) or manually

Note: If you don’t have pods in your project, set them up using the Getting Started guide
  1. Add pod ‘avocarrot-ios-sdk/Core’ to your Podfile to integrate it to your project
  2. Add the ad types you require to your Podfile:
    pod 'avocarrot-ios-sdk/Banner'

We also have sample code available at our GitHub repository.

Manual Avocarrot SDK integration guide

  1. Add the following SDK files to your project (required)
    Ad type Frameworks
    Banner AvocarrotCore.framework, AvocarrotBanner.framework, Mraid.framework
  2. Add -ObjC flag to project settings (Other Linker Flags property)  

    Note: If your app can’t use -ObjC flag just add -force_load $(PROJECT_DIR)/Pods/avocarrot-ios-sdk/AvocarrotSDK.framework/Versions/Current/AvocarrotSDK flag to Other Linker Flags

  3. Required system libraries for all libs

    The SDK with adapters uses the following system frameworks and libraries. You can set flag “Link Frameworks automatically” to YES otherwise you should add following system frameworks and libraries to your project manually:

    WebKit

    Security

    QuickLook

    MobileCoreServices

    CoreText

    AssetsLibrary

    Foundation

    CoreData

    Social

    MessageUI

    MediaPlayer

    EventKit

    EventKitUI

    QuartzCore

    CoreMedia

    CFNetwork

    SystemConfiguration

    CoreGraphics

    StoreKit

    CoreTelephony

    AVFoundation

    AdSupport

    AudioToolbox

    UIKit

    libxml2

    libsqlite3

    libz

Warning: Some Xcode versions support new settings only after the Xcode reboot. This also cleans the Xcode cache and remedies other problems.

TO DO list if you have a linking problem:

  • Clean Build
  • Restart Xcode
  • Delete your DerivedData folder in ~/Library/Developer/Xcode/DerivedData
  • Restart the computer

ATS settings in iOS 9.0 and greater

Since the Avocarrot SDK uses 3rd party networks to load ads and we have no control over these networks loading their content via https, you should disable ATS for your application to ensure the Avocarrot SDK behaves as intended. To disable ATS add the following settings to your application Info.plist file:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key><true/>
    <key>NSAllowsArbitraryLoadsForMedia</key><true/>
    <key>NSAllowsArbitraryLoadsInWebContent</key><true/>
</dict>

Setup Banner Ads

Available banner sizes:

  • AVOBannerViewSizeSmall (320x50) (recommended)
  • AVOBannerViewSizeMREC (300x250) 
  • AVOBannerViewSizeLarge (728x90)
  1. Use the following methods in your UIViewController subclass:
    - (AVOBannerView *_Nullable)loadBannerWithSize:(AVOBannerViewSize)size
                                adUnitId:(NSString *_Nonnull)adUnitId
                                success:(void (^ _Nullable)(void))success
                                failure:(void (^ _Nullable)(AVOError *_Nonnull error))failure;
    

    For example:

    #import <AvocarrotBanner/AvocarrotSDK+AVOBannerView.h>
    ...
    [self.bannerView stop];
    self.bannerView = [AvocarrotSDK.sharedSDK loadBannerWithSize:AVOBannerViewSizeSmall
                                           adUnitId:@"YOUR_BANNER_AD_UNIT_ID"
                                           success:nil
                                           failure:nil];
    [self.view addSubview:self.bannerView];
    
    import AvocarrotBanner
    ...
    if bannerView != nil {
        bannerView?.stop()
        bannerView?.removeFromSuperview()
        bannerView = nil
    }
    bannerView = AvocarrotSDK.shared.loadBanner(with: AVOBannerViewSizeSmall,
                                               adUnitId: "YOUR_BANNER_AD_UNIT_ID",
                                             success: nil,
                                             failure: nil)
    
  2. Add the following code to viewDidAppear and viewWillDisappear methods:
    #import <AvocarrotBanner/AvocarrotSDK+AVOBannerView.h>
    ...
    - (void)viewDidAppear:(BOOL)animated {
        [super viewDidAppear:animated];
        [self.bannerView resumeAutoUpdate];
    }
    - (void)viewWillDisappear:(BOOL)animated {
        [super viewWillDisappear:animated];
        [self.bannerView pauseAutoUpdate];
    }
    
    import AvocarrotBanner
    ...
    override func viewDidAppear(animated: Bool) {
        bannerView?.resumeAutoUpdate()
    }
    override func viewDidDisappear(animated: Bool) {
        bannerView?.pauseAutoUpdate()
    }
    
  3. If you want to switch banner auto-update off:
    self.bannerView.autoUpdate = NO;
    
  4. If you want to stop and remove banner from screen:
    [self.bannerView stop];
    

Standard banner events handling

To process banner events, you should implement blocks or subscribe to notifications:

MethodDescriptionNSNotificationCenter key
(void (^ _Nullable)(void))successCalled after the banner is served successfully.
(void (^ _Nullable)(AVOError *_Nonnull error))failureCalled if the banner was not downloaded.
- (instancetype _Nonnull)onClick:(nullable void (^)(void))blockCalled after a click on a banner. After this event app will be minimized and an external browser will be opened.kAVONotification_BannerClicked

Mediation

If you want you can enable the mediation feature of Avocarrot and receive ads from 3rd party providers. You can follow the bellow steps to start mediating demand partners through Avocarrot.
If you’re already integrated with a demand buyer,  It is not mandatory to remove all SDKs, but we would recommend it in order to ensure a seamless and coherent integration with Avocarrot.
  1. Ensure pod ‘avocarrot-ios-sdk/Core’ is added to your Podfile to integrate it to your project
  2. Ensure the following line has been added:
    pod 'avocarrot-ios-sdk/Banner'
    
  3. To add networks individually, add only the corresponding lines for each network

    NetworkLine
    Admobpod 'avocarrot-ios-sdk/BannerAdapters/GoogleMobileAdsAdapter'
    Facebookpod 'avocarrot-ios-sdk/BannerAdapters/FBAudienceAdapter'
    Mopubpod 'avocarrot-ios-sdk/BannerAdapters/MopubAdapter'
    InLocopod 'avocarrot-ios-sdk/BannerAdapters/InLocoAdapter'
  4. To add all networks available use the following line: (Optional)
    pod 'avocarrot-ios-sdk/BannerAdapters'

We also have sample code available at our GitHub repository.

Manual Avocarrot SDK integration guide

  1. Check that the following frameworks are added into your project:
    Ad type Frameworks
    Banner AvocarrotCore.framework, AvocarrotBanner.framework, Mraid.framework
  2. To show standard banner ads from client-side mediated networks in your application you need to add:

  3. For each added external ad network from the section above you should add the SDK adapter for this network for each ad type from the Adapters folder. Just add the necessary adapters to the project. 
    NetworkAdapters
    AdmoblibAVOGoogleMobileAdsAdapter-Core.alibAVOGoogleMobileAdsAdapter-Banner.a
    Facebook AudiencelibAVOFBAudienceAdapter-Core.alibAVOFBAudienceAdapter-Banner.a
    MopublibAVOMopubAdapter-Core.a,libAVOMopubAdapter-Native.a
    BaidulibAVOBaiduAdapter-Core.a,libAVOBaiduAdapter-Native.a
    TencentlibAVOTencentAdapter-Core.a,libAVOTencentAdapter-Native.a
    InLocolibAVOInLocoAdapter-Core.alibAVOInLocoAdapter-Native.a

Advanced Customization

Go Live!

  1. Remove sandbox. If you have received a sample ad then simply disable the Sandbox mode by including the following instruction in your code:
    AvocarrotSDK.testMode = NO
    You should disable Sandbox mode ONLY when you are done with the integration and you are ready to publish your app. It is against Avocarrot's policies to use live ads during development, and doing so could get your Avocarrot account banned.
  2. Publish your app. You are now ready to upload your app and start making money! If you have submitted your app in the Google Play/ Apple Store and you can see live ads, then you have nothing to worry about. Just wait until the impressions threshold has been reached and the app will be shown as live in your dashboard as well.
  3. Update payment details. Log in to your account and update your payment settings.

Was this article useful?