DFP Banner Ads (Pre Google Mobile Ads SDK v: 8.0.0) - pubnative/pubnative-hybid-ios-sdk GitHub Wiki

Banner Ads will be rendered using DFPBannerView through the HyBidDFPHeaderBiddingBannerCustomEvent adapter.

Requirements

  • Ad Zone ID from the PubNative Publisher Dashboard
  • DFP Ad Unit ID for the Ad Placement that you want to request.

Demo App

You can find a demo app with code samples for this type of integration here.

Create a DFPBannerView

  1. Declare a DFPBannerView *dfpBanner property.

Swift:

var dfpBanner: DFPBannerView!

Objective-C:

@property (nonatomic, strong) DFPBannerView *dfpBanner;
  1. Instantiate the property that you have declared, and also set your DFP Ad Unit ID.

Swift:

self.dfpBanner = DFPBannerView(adSize: kGADAdSizeBanner)
self.dfpBanner.adUnitID = <YOUR DFP AD UNIT ID HERE>

Objective-C:

self.dfpBanner = [[DFPBannerView alloc] initWithAdSize:kGADAdSizeBanner];
self.dfpBanner.adUnitID = <YOUR DFP AD UNIT ID HERE>;
  1. Register your view controller as the dfpBanner's delegate (GADBannerViewDelegate).

Swift:

self.dfpBanner.delegate = self

Objective-C:

self.dfpBanner.delegate = self;
  1. Register your view controller as the dfpBanner's rootViewController.

Swift:

self.dfpBanner.rootViewController = self

Objective-C:

self.dfpBanner.rootViewController = self;

For more information about DFP Banner integration, you can refer to the DFP Guide as well.

Create HyBid Ad Request

  1. Import HyBid into your class.

Swift:

import HyBid

Objective-C:

#import <HyBid/HyBid.h>
  1. Declare a HyBidAdRequest *bannerAdRequest property.

Swift:

var bannerAdRequest =  HyBidAdRequest()

Objective-C:

@property (nonatomic, strong) HyBidAdRequest *bannerAdRequest;
  1. Instantiate the property that you have declared. Before making a request, set its adSize property. After this, you can request an Ad by, passing your Ad Zone ID and also your registered view controller as the bannerAdRequest's delegate (HyBidAdRequestDelegate).

Swift:

self.bannerAdRequest.adSize = HyBidAdSize.size_320x50
self.bannerAdRequest.requestAd(with: self, withZoneID: <YOUR AD ZONE ID HERE>)

Objective-C:

self.bannerAdRequest = [[HyBidAdRequest alloc] init];
self.bannerAdRequest.adSize = HyBidAdSize.SIZE_320x50;
[self.bannerAdRequest requestAdWithDelegate:self withZoneID:<YOUR AD ZONE ID HERE>];

Request Ad from DFP

After the ad is successfully received from PubNative, the request should be made to DFP with some parameters that will help the ad be chosen properly in the DFP 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)")
        let request = DFPRequest()
        request.customTargeting = HyBidHeaderBiddingUtils.createHeaderBiddingKeywordsDictionary(with: ad, with: TWO_DECIMAL_PLACES)
        self.dfpBanner.load(request)
    }
    
    func request(_ request: HyBidAdRequest!, didFailWithError error: Error!)
    {
        print("Request\(request) failed with error: \(error.localizedDescription)")  
    }
}

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.bannerAdRequest) {
        DFPRequest *request = [DFPRequest request];
        request.customTargeting = [HyBidHeaderBiddingUtils createHeaderBiddingKeywordsDictionaryWithAd:ad withKeywordMode:TWO_DECIMAL_PLACES];
        [self.dfpBanner loadRequest:request];
    }
}

- (void)request:(HyBidAdRequest *)request didFailWithError:(NSError *)error
{
    NSLog(@"Request %@ failed with error: %@",request,error.localizedDescription);
}

After making this request to DFP, it will run its waterfall and if the line item targeted by our keywords gets chosen, the HyBidDFPHeaderBiddingBannerCustomEvent adapter will be called to render the ad.


<- Leaderboard Ads (Pre Google Mobile Ads SDK v: 8.0.0)            -> MRect Ads (Pre Google Mobile Ads SDK v: 8.0.0)