|
UIView *gView; |
|
UIViewController *gViewColtroller; |
|
|
|
|
|
@interface myBanner : NSObject <GADBannerViewDelegate> |
|
@property (nonatomic) BOOL show_ads; |
|
@property (strong, nonatomic) GADBannerView *gbanner; |
|
@property (strong, nonatomic) GADRequest *request; |
|
@end |
|
|
|
static myBanner *vbanner = nil; |
|
|
|
@implementation myBanner |
|
|
|
-(id)init { |
|
// admob allocation |
|
NSLog(@"Creating google banner object"); |
|
self.request = [GADRequest request]; |
|
// I'm not sure this is even necessary |
|
self.request.testDevices = @[@"Simulator"]; |
|
//SDLUIKitDelegate *sdldelegate = [SDLUIKitDelegate sharedAppDelegate]; |
|
UIWindow *window = [UIApplication sharedApplication].keyWindow; |
|
UIViewController *rootViewController = window.rootViewController; |
|
|
|
gViewColtroller = rootViewController;//[[SDLLaunchScreenController alloc] init]; |
|
gView = rootViewController.view; ///gViewColtroller.view; |
|
|
|
|
|
// Create a view of the standard size at the top of the screen. |
|
// Available AdSize constants are explained in GADAdSize.h. |
|
self.gbanner = [[GADBannerView alloc] initWithAdSize:kGADAdSizeBanner]; |
|
|
|
[self.gbanner setDelegate:self]; |
|
|
|
// Specify the ad's "unit identifier." The default ID is for Google’s test banner ad. If everything works and you see a google test ad, you have implemented everything correctly. |
|
self.gbanner.adUnitID = @"ca-app-pub-3940256099942544/6300978111"; // google's test id for banner ads |
|
|
|
|
|
|
|
// ------------- Height and position of the banner ad |
|
//CGRect screenBounds = [[UIScreen mainScreen] bounds]; |
|
//[self.gbanner setFrame:CGRectMake(0, 0, screenBounds.size.width, 1.5*self.gbanner.bounds.size.height)]; |
|
//self.gbanner.center = CGPointMake(screenBounds.size.width / 2, screenBounds.size.height - (self.gbanner.bounds.size.height / 2)); |
|
|
|
self.gbanner.hidden = TRUE; |
|
// Let the runtime know which UIViewController to restore after taking |
|
// the user wherever the ad goes and add it to the view hierarchy. |
|
self.gbanner.rootViewController = gViewColtroller; |
|
[gView addSubview:self.gbanner]; |
|
|
|
[self.gbanner loadRequest:self.request]; |
|
|
|
self.show_ads = TRUE; |
|
|
|
return self; |
|
} |
|
|
|
// Called before ad is shown, good time to show the add |
|
- (void)adViewDidReceiveAd:(GADBannerView *)view |
|
{ |
|
NSLog(@"Admob load"); |
|
self.gbanner.hidden = !self.show_ads; |
|
} |
|
|
|
// An error occurred |
|
- (void)adView:(GADBannerView *)view didFailToReceiveAdWithError:(GADRequestError *)error |
|
{ |
|
NSLog(@"Admob error: %@", error); |
|
self.gbanner.hidden = TRUE; |
|
} |
|
|
|
|
|
-(void)dealloc { |
|
NSLog(@"Freeing ads"); |
|
if (self.gbanner) { |
|
|
|
[self.gbanner removeFromSuperview]; |
|
|
|
[self.gbanner release]; |
|
self.gbanner.delegate = nil; |
|
self.gbanner = nil; |
|
} |
|
|
|
[super dealloc]; |
|
} |
|
|
|
|
|
- (void)showAds:(int)ontop { |
|
self.show_ads = TRUE; |
|
|
|
NSLog(@"Displaying banner object ontop:%d.", ontop); |
|
|
|
CGSize AdSize = kGADAdSizeBanner.size; |
|
|
|
|
|
CGRect frame = self.gbanner.frame; |
|
frame.origin.x = (gViewColtroller.view.bounds.size.width - AdSize.width) / 2 ; |
|
|
|
if (ontop) |
|
frame.origin.y = 0.0f; |
|
else |
|
frame.origin.y = gViewColtroller.view.bounds.size.height - AdSize.height; |
|
|
|
self.gbanner.frame = frame; |
|
|
|
} |
|
@end |
|
|
|
|
|
@interface adSwitch : NSObject |
|
@end |
|
@implementation adSwitch |
|
|
|
-(id)init { |
|
if (!vbanner) |
|
{ |
|
vbanner = [[myBanner alloc] init]; |
|
|
|
[vbanner showAds:0]; |
|
} |
|
return self; |
|
} |
|
|
|
-(void) show_ads { |
|
if (!vbanner) |
|
vbanner = [[myBanner alloc] init]; |
|
|
|
[vbanner showAds:0]; |
|
} |
|
|
|
-(void) hide_ads { |
|
if (vbanner) |
|
{ |
|
|
|
|
|
[vbanner release]; |
|
vbanner = nil; |
|
} |
|
} |
|
@end |
|
|
|
|
Dear Erik, It is a beautiful guideline. However, the Xcode has been changed a lot. The code that you have used in the video gives error in the first line. And Xcode Build Settings are different. Everything is for swift but not For Kivy. Please see this link; https://developers.google.com/admob/ios/quick-start#swift
could you tell me about the differences ? Because all I got is framework errors.