Delegate Usage
By implementing Mediation delegate protocols you can get notifications about the success, failure, or lifecycle events of the Mediation SDK and its ad objects.
Mediation Start Delegate
Implement the HeliumSdkDelegate
protocol to receive notifications about the Mediation SDK’s initialization process.
extension AppDelegate: HeliumSdkDelegate
@interface AppDelegate () <HeliumSdkDelegate>
This will allow you to implement the following method:
func heliumDidStartWithError(_ error: ChartboostMediationSDK.ChartboostMediationError?) {
if let error = error {
print("Chartboost Mediation did not start due to error: \(error)")
} else {
print("Chartboost Mediation Started Successfully")
}
}
- (void)heliumDidStartWithError:(nullable ChartboostMediationError *)error {
if (error)
NSLog(@"Mediation did not start due to error: %@", error);
else
NSLog(@"Mediation Started Successfully");
}
Interstitial Ad Delegates
Implement the CHBHeliumInterstitialAdDelegate
protocol to receive notifications about interstitial ads loading, displaying, and closing.
extension ViewController: CHBHeliumInterstitialAdDelegate
@interface ViewController () <CHBHeliumInterstitialAdDelegate>
This will allow you to implement the following methods:
func heliumInterstitialAd(
withPlacementName placementName: String,
requestIdentifier: String,
winningBidInfo: [String : Any]?,
didLoadWithError error: ChartboostMediationSDK.ChartboostMediationError?
) {
if let error = error {
print("Interstitial with Placement Name:\(placementName) failed to load with error:\(error.localizedDescription)")
} else {
print("Interstitial with Placement Name:\(placementName) didLoad")
}
}
func heliumInterstitialAd(
withPlacementName placementName: String,
didShowWithError error: ChartboostMediationSDK.ChartboostMediationError?
) {
if let error = error {
print("Interstitial with Placement Name:\(placementName) failed to show with error:\(error.localizedDescription)")
} else {
print("Interstitial with Placement Name:\(placementName) didShow")
}
}
func heliumInterstitialAd(
withPlacementName placementName: String,
didCloseWithError error: ChartboostMediationSDK.ChartboostMediationError?
) {
if let error = error {
print("Interstitial with Placement Name:\(placementName) failed to close with error:\(error.localizedDescription)")
} else {
print("Interstitial with Placement Name:\(placementName) didClose")
}
}
func heliumInterstitialAdDidRecordImpression(withPlacementName placementName: String) {
print("Impression recorded")
}
- (void)heliumInterstitialAdWithPlacementName:(NSString * _Nonnull)placementName
requestIdentifier:(NSString * _Nonnull)requestIdentifier
winningBidInfo:(NSDictionary<NSString *,id> * _Nullable)winningBidInfo
didLoadWithError:(ChartboostMediationError * _Nullable)error
{
if (error)
{
NSLog(@"Interstitial with Placement Name:%@ failed to load with error:%@", placementName, error.description);
}
else
{
NSLog(@"Interstitial with Placement Name:%@ didLoad", placementName);
}
}
- (void)heliumInterstitialAdWithPlacementName:(NSString * _Nonnull)placementName
didShowWithError:(ChartboostMediationError * _Nullable)error
{
if (error)
{
NSLog(@"Interstitial with Placement Name:%@ failed to show with error:%@", placementName, error.description);
}
else
{
NSLog(@"Interstitial with Placement Name:%@ didShow", placementName);
}
}
- (void)heliumInterstitialAdWithPlacementName:(NSString * _Nonnull)placementName
didCloseWithError:(ChartboostMediationError * _Nullable)error
{
if (error)
{
NSLog(@"Interstitial with Placement Name:%@ failed to close with error:%@", placementName, error.description);
}
else
{
NSLog(@"Interstitial with Placement Name:%@ didClose", placementName);
}
}
- (void)heliumInterstitialAdDidRecordImpressionWithPlacementName:(NSString *)placementName
{
NSLog(@"Impression recorded");
}
- (void)heliumInterstitialAdWithPlacementName:(NSString*)placementName
didLoadWithError:(HeliumError *)error
{
if (error)
{
NSLog(@"Interstitial with Placement Name:%@ failed to load with error:%@",placementName,error.description);
}
else
{
NSLog(@"Interstitial with Placement Name:%@ didLoad",placementName);
}
}
- (void)heliumInterstitialAdWithPlacementName:(NSString*)placementName
didShowWithError:(HeliumError *)error
{
if (error)
{
NSLog(@"Interstitial with Placement Name:%@ failed to show with error:%@",placementName,error.description);
}
else
{
NSLog(@"Interstitial with Placement Name:%@ didSHow",placementName);
}
}
- (void)heliumInterstitialAdWithPlacementName:(NSString*)placementName
didCloseWithError:(HeliumError *)error
{
if (error)
{
NSLog(@"Interstitial with Placement Name:%@ failed to close with error:%@",placementName,error.description);
}
else
{
NSLog(@"Interstitial with Placement Name:%@ didClose",placementName);
}
}
- (void)heliumInterstitialAdWithPlacementName:(NSString*)placementName
didLoadWinningBidWithInfo:(NSDictionary *)bidInfo
{
NSLog(@"Placement:%@,%@",placementName,bidInfo);
}
- (void)heliumInterstitialAdDidRecordImpressionWithPlacementName:(NSString *)placementName
{
NSLog(@"Impression recorded");
}
Rewarded Ad Delegates
Implement the CHBHeliumRewardedAdDelegate
protocol to receive notifications about rewarded ads loading, displaying, and closing.
@interface ViewController () <CHBHeliumRewardedAdDelegate>
extension ViewController: CHBHeliumRewardedAdDelegate
This will allow you to implement the following methods:
func heliumRewardedAd(
withPlacementName placementName: String,
requestIdentifier: String,
winningBidInfo: [String : Any]?,
didLoadWithError error: ChartboostMediationSDK.ChartboostMediationError?
) {
if let error = error {
print("Rewarded with Placement Name:\(placementName) failed to load with error:\(error.localizedDescription)")
} else {
print("Rewarded with Placement Name:\(placementName) didLoad")
}
}
func heliumRewardedAd(
withPlacementName placementName: String,
didShowWithError error: ChartboostMediationSDK.ChartboostMediationError?
) {
if let error = error {
print("Rewarded with Placement Name:\(placementName) failed to show with error:\(error.localizedDescription)")
} else {
print("Rewarded with Placement Name:\(placementName) didShow")
}
}
func heliumRewardedAd(
withPlacementName placementName: String,
didCloseWithError error: ChartboostMediationSDK.ChartboostMediationError?
) {
if let error = error {
print("Rewarded with Placement Name:\(placementName) failed to close with error:\(error.localizedDescription)")
} else {
print("Rewarded with Placement Name:\(placementName) didClose")
}
}
func heliumRewardedAdDidGetReward(withPlacementName placementName: String) {
print("Got Reward for RV with placementName:\(placementName)")
}
func heliumRewardedAdDidRecordImpression(withPlacementName placementName: String) {
print("Impression recorded")
}
- (void)heliumRewardedAdWithPlacementName:(NSString * _Nonnull)placementName
requestIdentifier:(NSString * _Nonnull)requestIdentifier
winningBidInfo:(NSDictionary<NSString *,id> * _Nullable)winningBidInfo
didLoadWithError:(ChartboostMediationError * _Nullable)error
{
if (error)
{
NSLog(@"Rewarded with Placement Name:%@ failed to load with error:%@", placementName, error.description);
}
else
{
NSLog(@"Rewarded with Placement Name:%@ didLoad", placementName);
}
}
- (void)heliumRewardedAdWithPlacementName:(NSString * _Nonnull)placementName
didShowWithError:(ChartboostMediationError * _Nullable)error
{
if (error)
{
NSLog(@"Rewarded with Placement Name:%@ failed to show with error:%@", placementName, error.description);
}
else
{
NSLog(@"Rewarded with Placement Name:%@ didShow", placementName);
}
}
- (void)heliumRewardedAdWithPlacementName:(NSString * _Nonnull)placementName
didCloseWithError:(ChartboostMediationError * _Nullable)error
{
if (error)
{
NSLog(@"Rewarded with Placement Name:%@ failed to close with error:%@", placementName, error.description);
}
else
{
NSLog(@"Rewarded with Placement Name:%@ didClose", placementName);
}
}
- (void)heliumRewardedAdDidGetRewardWithPlacementName:(NSString * _Nonnull)placementName
{
NSLog(@"Got Reward for RV with placementName:%@", placementName);
}
- (void)heliumRewardedAdDidRecordImpressionWithPlacementName:(NSString *)placementName
{
NSLog(@"Impression recorded");
}
- (void)heliumRewardedAdWithPlacementName:(NSString*)placementName
didLoadWithError:(HeliumError *)error
{
if (error)
{
NSLog(@"Rewarded with Placement Name:%@ failed to load with error:%@",placementName,error.description);
}
else
{
NSLog(@"Rewarded with Placement Name:%@ didLoad",placementName);
}
}
- (void)heliumRewardedAdWithPlacementName:(NSString*)placementName
didShowWithError:(HeliumError *)error
{
if (error)
{
NSLog(@"Rewarded with Placement Name:%@ failed to show with error:%@",placementName,error.description);
}
else
{
NSLog(@"Rewarded with Placement Name:%@ didSHow",placementName);
}
}
- (void)heliumRewardedAdWithPlacementName:(NSString*)placementName
didCloseWithError:(HeliumError *)error
{
if (error)
{
NSLog(@"Rewarded with Placement Name:%@ failed to close with error:%@",placementName,error.description);
}
else
{
NSLog(@"Rewarded with Placement Name:%@ didClose",placementName);
}
}
- (void)heliumRewardedAdWithPlacementName:(NSString*)placementName
didGetReward:(NSInteger)reward {
NSLog(@"Got Reward for RV with placementName:%@, reward: %ld",placementName, (long)reward);
}
- (void)heliumRewardedAdWithPlacementName:(NSString*)placementName
didLoadWinningBidWithInfo:(NSDictionary *)bidInfo
{
NSLog(@"Placement:%@,%@",placementName,bidInfo);
}
- (void)heliumRewardedAdDidRecordImpressionWithPlacementName:(NSString *)placementName
{
NSLog(@"Impression recorded");
}
Banner Ad Delegates
Implement the CHBHeliumBannerAdDelegate
protocol to receive notifications about banner ads loading, displaying, and closing.
extension ViewController: HeliumBannerAdDelegate
@interface ViewController () <CHBHeliumBannerAdDelegate>
This will allow you to implement the following methods:
func heliumBannerAd(
placementName: String,
requestIdentifier: String,
winningBidInfo: [String : Any]?,
didLoadWithError error: ChartboostMediationSDK.ChartboostMediationError?
) {
if let error = error {
print("Banner with Placement Name:\(placementName) failed to load with error:\(error.localizedDescription)")
} else {
print("Banner with Placement Name:\(placementName) didLoad")
}
}
func heliumBannerAd(
placementName: String,
didClickWithError error: ChartboostMediationError?
) {
if let error = error {
print("Banner with Placement Name:\(placementName) didClick with error:\(error.localizedDescription)")
} else {
print("Banner with Placement Name:\(placementName) didClick")
}
}
func heliumBannerAdDidRecordImpression(placementName: String) {
print("Impression recorded")
}
- (void)heliumBannerAdWithPlacementName:(NSString * _Nonnull)placementName
requestIdentifier:(NSString * _Nonnull)requestIdentifier
winningBidInfo:(NSDictionary<NSString *,id> * _Nullable)winningBidInfo
didLoadWithError:(ChartboostMediationError * _Nullable)error
{
if (error)
{
NSLog(@"Banner with Placement Name:%@ failed to load with error:%@", placementName, error.description);
}
else
{
NSLog(@"Banner with Placement Name:%@ didLoad", placementName);
}
}
- (void)heliumBannerAdWithPlacementName:(NSString *)placementName
didClickWithError:(ChartboostMediationError *)error
{
if (error)
{
NSLog(@"Banner with Placement Name:%@ didClick with error:%@", placementName, error.description);
}
else
{
NSLog(@"Banner with Placement Name:%@ didClick", placementName);
}
}
- (void)heliumBannerAdDidRecordImpressionWithPlacementName:(NSString *)placementName
{
NSLog(@"Impression recorded");
}
- (void)heliumBannerAdWithPlacementName:(NSString *)placementName didLoadWithError:(HeliumError *)error {
if (error)
{
[self.txtOutput addNewLine:[NSString stringWithFormat:@"Banner with Placement Id:%@ failed to load with error:%@",placementName,error.errorDescription]];
NSLog(@"Banner with Placement Id:%@ failed to load with error:%@",placementName,error.errorDescription);
}
else
{
[self.txtOutput addNewLine:[NSString stringWithFormat:@"Banner with Placement Id:%@ didLoad",placementName]];
NSLog(@"Banner with Placement Id:%@ didLoad",placementName);
}
}
- (void)heliumBannerAdWithPlacementName:(NSString*)placementName
didLoadWinningBidWithInfo:(NSDictionary *)bidInfo
{
[self.txtOutput addNewLine:[NSString stringWithFormat:@"Banner with Placement Id:%@ didLoadWiningBid:%@",placementName,bidInfo[@"price"]]];
NSLog(@"Placement:%@,%@",placementName,bidInfo);
}
- (void)heliumBannerAdWithPlacementName:(NSString *)placementName didClickWithError:(HeliumError *)error
{
if (error) {
[self.txtOutput addNewLine:[NSString stringWithFormat:@"Banner with Placement Id:%@ didClick with error: %@", placementName, error]];
} else {
[self.txtOutput addNewLine:[NSString stringWithFormat:@"Banner with Placement Id:%@ didClick", placementName]];
}
}
- (void)heliumBannerAdDidRecordImpressionWithPlacementName:(NSString *)placementName
{
NSLog(@"Impression recorded");
}
Note
- (void)heliumBannerAdWithPlacementName:(NSString _)placementName didLoadWinningBidWithInfo:(NSDictionary<NSString _, id> _)bidInfo
will only return information for non-refresh banner configurations.
Updated 4 months ago