Get started with Prebid Mobile by creating a Prebid Server account. Once your account is set up include the Prebid Mobile SDK in your app by either using Cocoapods or by cloning the repo and using our included script to build the SDK.
If you are not familar with using Cocoapods for dependency management visit their getting started page. Once you have your podfile
setup, include the following:
platform :ios, '10.0'
target 'MyAmazingApp' do
pod 'PrebidMobile'
end
If you are not familiar with the Carthage package builder, please refere to the project github page for more details.
Since Prebid SDK architecture supports a multi-module feature for future enhancements, that currently use the same module name for every schema, please use CarthageBuild.sh script to build a necessary binary.
There are two shared schemes available (issue #239):
Follow the next steps:
github "prebid/prebid-mobile-ios" == 1.5
carthage update
Build the specific schema CarthageBuild.sh
Variant 1
Run CarthageBuild.sh script from Cartfile folder. The path should be:
.../Carthage/Checkouts/prebid-mobile-ios/scripts/CarthageBuild.sh
Enter Schema name (PrebidMobile or PrebidMobileCore)
chmod +x <path_to_CarthageBuild.sh>
Variant 2
Open PrebidMobile.xcodeproj
at .../Carthage/Checkouts/prebid-mobile-ios/PrebidMobile.xcodeproj
using Xcode
Manage Schemes -> Check Shared checkbox for a necessary schema
run carthage build prebid-mobile-ios
You can find the schema name in the build PrebidSDK framework inside Info.plist with PrebidMobileName
key
Build Prebid Mobile from source code. After cloning the repo, use Terminal or another command line tool, change to the root directory and run:
./scripts/buildPrebidMobile.sh
This will output the PrebidMobile.framework.
In order to conduct header bidding within your app you will need a Prebid Server hosted account. There are two options available for publishers:
The simplest option is to sign up for a hosted solution. Several Prebid.org members provide hosting packages.
Implement your own Prebid Server solution. You will need to download the source code from Github. The repository has full instructions for configuring, deploying, and testing your implementation.
Once you have a Prebid Server account, you will need to add your account credentials to the app.
Prebid.shared.prebidServerAccountId = @"YOUR_ACCOUNT_ID";
Prebid.shared.prebidServerHost = PrebidHostAppnexus;
If you have opted to host your own Prebid Server solution you will need to store the url to the server in your app.
Prebid.shared.setCustomPrebidServer(url:URL_STRING_TO_SERVER)
Integrating MoPub with your application
Go to MoPub.com and register for a MoPub account . If you already have an account with them, you can log in.
After the registration you will be automatically prompted to set up a new MoPub application required for integrating mobile ads to your application.
Integrating Google with your application
Go to Google’s developer site and follow the instructions for integrating their Mobile Ads SDK into your app.
Targeting parameters enable you to define the target audience for the bid request. Prebid Mobile supports the following global targeting parameters. These targeting parameters are set only once and apply to all Prebid Mobile ad units. They do not change for a given user session.
View the full list of targeting parameters.
Banner and interstitial ad units can be created:
let bannerUnit = BannerAdUnit(configId: "6ace8c7d-88c0-4623-8117-75bc3f0a2e45", size: CGSize(width: 300, height: 250))
For details on creating the specific ad units and additional parameters and methods associated with each view the documentation pertaining to them:
Banner Ad Unit
Interstitial Ad Unit
Setting this option to true
, in your instance of Prebid Mobile, enables you to add an id for each asset in the assets array. The default setting is false
Swift
Prebid.shared.shouldAssignNativeAssetID = true
Objective C
[Prebid shared].shouldAssignNativeAssetID = YES;
Prebid recommends app developers to resize ads slots to the Prebid rendering ad size using native code due to an unresolved bug in the Google Mobile Ads SDK (described here) where render failures can occur with 3rd party creatives (such as Prebid Universal Creative) using size overrides.
SWIFT
func adViewDidReceiveAd(_ bannerView: GADBannerView) {
AdViewUtils.findPrebidCreativeSize(bannerView,
success: { (size) in
guard let bannerView = bannerView as? DFPBannerView else {
return
}
bannerView.resize(GADAdSizeFromCGSize(size))
},
failure: { (error) in
print("error: \(error)");
})
}
Objective C
-(void) adViewDidReceiveAd:(GADBannerView *)bannerView {
NSLog(@"Ad received");
[AdViewUtils findPrebidCreativeSize:bannerView
success:^(CGSize size) {
if ([bannerView isKindOfClass:[DFPBannerView class]]) {
DFPBannerView *dfpBannerView = (DFPBannerView *)bannerView;
[dfpBannerView resize:GADAdSizeFromCGSize(size)];
}
} failure:^(NSError * _Nonnull error) {
NSLog(@"error: %@", error);
}];
}