-
Notifications
You must be signed in to change notification settings - Fork 2
MoPub Leaderboard Ads
Leaderboard Ads will be rendered using MPAdView through the HyBidMoPubHeaderBiddingLeaderboardCustomEvent
adapter.
-
Ad Zone ID
from the PubNative Publisher Dashboard -
MoPub Ad Unit ID
for the Ad Placement that you want to request.
You can find a demo app with code samples for this type of integration here.
- Declare a
MPAdView *moPubLeaderboard
property.
Swift:
var moPubLeaderboard = MPAdView()
Objective-C:
@property (nonatomic, strong) MPAdView *moPubLeaderboard;
- Instantiate the property that you have declared, passing in your
MoPub Ad Unit ID
.
Swift:
self.moPubLeaderboard = MPAdView(adUnitId: "<YOUR MoPUB AD UNIT ID HERE>")
self.moPubLeaderboard.frame = CGRect(x: 0, y: 0, width: 728, height: 90)
Objective-C:
self.moPubLeaderboard = [[MPAdView alloc] initWithAdUnitId:@"<YOUR MoPUB AD UNIT ID HERE>"];
[self.moPubLeaderboard setFrame:CGRectMake(0, 0, 728, 90)];
- Register your view controller as the
moPubLeaderboard
's delegate (MPAdViewDelegate
).
Swift:
self.moPubLeaderboard.delegate = self
Objective-C:
self.moPubLeaderboard.delegate = self;
- Make sure to call
stopAutomaticallyRefreshingContents
method.
Swift:
self.moPubLeaderboard.stopAutomaticallyRefreshingContents()
Objective-C:
[self.moPubLeaderboard stopAutomaticallyRefreshingContents];
- Implement the
MPAdViewDelegate
'sviewControllerForPresentingModalView
method. Typically your controller can simply returnself
.
Swift:
extension ViewController : MPAdViewDelegate
{
func viewControllerForPresentingModalView() -> UIViewController!
{
return self
}
}
Objective-C:
#pragma mark - <MPAdViewDelegate>
- (UIViewController *)viewControllerForPresentingModalView
{
return self;
}
For more information about MoPub Leaderboard integration, you can refer to the MoPub Documentation as well.
- Import
HyBid
into your class.
Swift:
import HyBid
Objective-C:
#import <HyBid/HyBid.h>
- Declare a
HyBidAdRequest *leaderboardAdRequest
property.
Swift:
var leaderboardAdRequest = HyBidAdRequest()
Objective-C:
@property (nonatomic, strong) HyBidAdRequest *leaderboardAdRequest;
- Instantiate the property that you have declared. Before making a request, set its
adSize
property. After this, you can request an Ad by, passing yourAd Zone ID
and also your registered view controller as theleaderboardAdRequest
's delegate (HyBidAdRequestDelegate
).
Swift:
self.leaderboardAdRequest.adSize = HyBidAdSize.size_728x90
self.leaderboardAdRequest.requestAd(with: self, withZoneID: <YOUR AD ZONE ID HERE>)
Objective-C:
self.leaderboardAdRequest = [[HyBidAdRequest alloc] init];
self.leaderboardAdRequest.adSize = HyBidAdSize.SIZE_728x90;
[self.leaderboardAdRequest requestAdWithDelegate:self withZoneID:<YOUR AD ZONE ID HERE>];
After the ad is successfully received from PubNative, the request should be made to MoPub with some parameters that will help the ad be chosen properly in the MoPub waterfall.
The HyBidHeaderBiddingUtils
must be used so that the SDK can generate the proper keywords for the received ad.
Swift:
extension ViewController : HyBidAdRequestDelegate
{
func requestDidStart(_ request: HyBidAdRequest!)
{
print("Request\(request) started")
}
func request(_ request: HyBidAdRequest!, didLoadWith ad: HyBidAd!)
{
print("Request loaded with ad: \(ad)")
if (request == self.leaderboardAdRequest) {
self.moPubLeaderboard.keywords = HyBidHeaderBiddingUtils.createHeaderBiddingKeywordsString(with: ad, with: TWO_DECIMAL_PLACES)
self.moPubLeaderboard.loadAd()
}
}
func request(_ request: HyBidAdRequest!, didFailWithError error: Error!)
{
print("Request\(request) failed with error: \(error.localizedDescription)")
self.moPubLeaderboard.loadAd()
}
}
Objective-C:
#pragma mark - HyBidAdRequestDelegate
- (void)requestDidStart:(HyBidAdRequest *)request
{
NSLog(@"Request %@ started:",request);
}
- (void)request:(HyBidAdRequest *)request didLoadWithAd:(HyBidAd *)ad
{
NSLog(@"Request loaded with ad: %@",ad);
if (request == self.leaderboardAdRequest) {
[self.moPubLeaderboard setKeywords:[HyBidHeaderBiddingUtils createHeaderBiddingKeywordsStringWithAd:ad withKeywordMode:TWO_DECIMAL_PLACES]];
[self.moPubLeaderboard loadAd];
}
}
- (void)request:(HyBidAdRequest *)request didFailWithError:(NSError *)error
{
NSLog(@"Request %@ failed with error: %@",request,error.localizedDescription);
[self.moPubLeaderboard loadAd];
}
After making this request to MoPub, it will run its waterfall and if the line item targeted by our keywords gets chosen, the HyBidMoPubHeaderBiddingLeaderboardCustomEvent
adapter will be called to render the ad.