Changing Position of Admob BannerView on iOS - ios

I've got my AdMob banners all setup and working but I'm having some trouble positioning them.
This is the code that's in presently to load the bannerview, but I can't quite place how to move it (let's assume to a position of 100, 100)
Can anyone help?
Regards
David
bannerView_ = [[GADBannerView alloc] initWithAdSize:kGADAdSizeFullBanner];
bannerView_.adUnitID = #"a14ff98b8ab890d";
bannerView_.rootViewController = self;
[self.view addSubview:bannerView_];
[bannerView_ loadRequest:[GADRequest request]];

[bannerView_ setFrame:CGRectMake(100,
100,
bannerView_.bounds.size.width,
bannerView_.bounds.size.height)];

You can add origin to your bannerView_
CGPoint origin = CGPointMake(0.0, 0.0); //Update the X and Y origin to what you need, ex: (0.0, 204.0)
bannerView_ = [[GADBannerView alloc] initWithAdSize:kGADAdSizeBanner origin:origin];

Related

Admob not showing in webViewDidFinishLoad when using iframe

I am creating an app using Phonegap and Onsen UI. I am able to show the Admob ads using this code:
- (void)webViewDidFinishLoad:(UIWebView*)theWebView
{
// Black base color for background matches the native apps
theWebView.backgroundColor = [UIColor blackColor];
CGPoint origin = CGPointMake(0.0,
self.view.frame.size.height -
CGSizeFromGADAdSize(kGADAdSizeBanner).height);
bannerView_ = [[GADBannerView alloc] initWithAdSize:kGADAdSizeBanner
origin:origin];
bannerView_.center = CGPointMake(self.view.center.x, self.view.frame.size.height-CGSizeFromGADAdSize(kGADAdSizeBanner).height/2);
bannerView_.adUnitID = #"myid";
bannerView_.rootViewController = self;
[self.view addSubview:bannerView_];
[bannerView_ loadRequest:[GADRequest request]];
return [super webViewDidFinishLoad:theWebView];
}
However, if I use iframe, the ads will not showing. Why this happened and how to solve it?

Hide Admob ads view in iPad

I put an Admob banner at the bottom centre of screen using the following code:
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
CGPoint origin = CGPointMake(0.0,
self.view.frame.size.height -
CGSizeFromGADAdSize(kGADAdSizeBanner).height);
bannerView_ = [[GADBannerView alloc] initWithAdSize:kGADAdSizeBanner
origin:origin];
bannerView_.center = CGPointMake(self.view.center.x, self.view.frame.size.height-CGSizeFromGADAdSize(kGADAdSizeBanner).height/2);
bannerView_.adUnitID = #"myid";
bannerView_.rootViewController = self;
[self.view addSubview:bannerView_];
[bannerView_ loadRequest:[GADRequest request]];
}
However, in iPad, I plan to put different ads on another location. Therefore, I need to hide this ads in iPad. Is it possible for me to do this?
try this
bannerView_.hidden=true;
You do not need to make more than one banner view. The easier solution is using the same banner view but checking the current device idiom before positioning the view. For example here is the code you provided modified to check which device the user is on:
- (void) webViewDidFinishLoad: (UIWebView*) webView
{
CGPoint origin = CGPointMake(0.0,
self.view.frame.size.height -
CGSizeFromGADAdSize(kGADAdSizeBanner).height);
bannerView_ = [[GADBannerView alloc] initWithAdSize:kGADAdSizeBanner
origin:origin];
bannerView_.center = CGPointMake(self.view.center.x, self.view.frame.size.height-CGSizeFromGADAdSize(kGADAdSizeBanner).height/2);
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
// Change the banner's center/origin here for the iPad.
}
bannerView_.adUnitID = #"myid";
bannerView_.rootViewController = self;
[self.view addSubview:bannerView_];
[bannerView_ loadRequest:[GADRequest request]];
}

iOS AdMob memory leak?

I just started using AdMob but I noticed that, after running it for about an hour, it's accumulated 50MB! Yikes. I thought about releasing it but I can't since I am using ARC. Any ideas? I'm using the getting started code provided by google:
GADBannerView *bannerView_ = [[GADBannerView alloc] initWithAdSize:kGADAdSizeBanner];
CGRect newFrame = CGRectMake(self.scroller.frame.origin.x,self.scroller.frame.origin.y + 70,self.scroller.frame.size.width,self.scroller.frame.size.height);
[self.scroller setFrame:newFrame];
bannerView_.adUnitID = #"XXXXX";
bannerView_.rootViewController = self;
[bannerView_ setFrame:CGRectMake(0,
20,
bannerView_.bounds.size.width,
bannerView_.bounds.size.height)];
[self.view addSubview:bannerView_];
[bannerView_ loadRequest:[GADRequest request]];
I had the same problem.
When receiving a new ad, you must remove the previous ad from the parent view.
Otherwise, they are superimposed on each other and consumes memory.
So, after receiving more than 15 advertisements, the percentage of allocated memory remained constant.
Hoping that this will help you.
- ( void )displayBanner:( UIView * )banner
{
UIView * oldBanner = [ _bannerView viewWithTag:999 ];
if( oldBanner )
{
[ oldBanner removeFromSuperview ];
oldBanner = nil;
}
banner.tag = 999;
[ _bannerView addSubview:banner ];
}

How to center AdMob advertisement on iPad?

I'm just testing out the AdMob code I've put into my application and I can't figure out why the advertisement is not centring on the iPad. On the iPhone it perfectly centres itself.
This is the code:
//google ad
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
googleBanner_ = [[GADBannerView alloc] initWithAdSize:kGADAdSizeLeaderboard origin:CGPointMake(0, 0)];
}else if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
googleBanner_ = [[GADBannerView alloc] initWithAdSize:kGADAdSizeBanner origin:CGPointMake(0, 0)];
}
//googleBanner_.adUnitID = #"pub";
googleBanner_.rootViewController = self;
[self.view addSubview:googleBanner_];
[googleBanner_ loadRequest:[GADRequest request]];
}
- (BOOL)prefersStatusBarHidden {
return YES;
}
I had assumed that I could change the x-coordinate on the iPad ad position but that simply put half of it off the screen.
(this is what I did)
googleBanner_ = [[GADBannerView alloc] initWithAdSize:kGADAdSizeLeaderboard origin:CGPointMake(384, 0)]; //768/2 = 384
Any ideas as to why this is happening? What can I do to properly center the advertisement on the iPad? NOTE: kGADAdSizeLeaderboard dimensions = 728 x 90
Fixed it. For those that encounter the same problem, simply take the x-dimension of the kGADAdSizeLeaderboard which is 728, and subtract it from the total width which is 768, which gives you 40. Then divide 40 by two to have it even on both sides, giving you 20. Then simply set the x-coordinate in the origin to 20, placing the ad in the middle of the screen.
Code:
googleBanner_ = [[GADBannerView alloc] initWithAdSize:kGADAdSizeLeaderboard origin:CGPointMake(20, 0)];

Integrating admob under a navigation bar

i have added all the required files and frameworks for integrating admob. The problem is that it does not add the subview to the viewcontroller.
My viewcontroller consist of a navigation bar and a UITableView. What i want to achieve is to have a admob in the button of my viewcontroller. How can i achieve this.
At the moment i'm using following code, which is not doing anything and not giving me any errors:
bannerView_.adUnitID = #"Banner Key";
bannerView_.rootViewController = self;
[self.view addSubview:bannerView_];
[bannerView_ loadRequest:[GADRequest request]];
Perhaps you need to set the frame of the banner as well?
1 must set the frame of ad banner so that it can be displayed:
m_bannerView = [[GADBannerView alloc] initWithAdSize:kGADAdSizeBanner];
m_bannerView.adUnitID = #"AD Unit ID";
m_bannerView.rootViewController = self;
m_bannerView.delegate = self;
m_bannerView.frame = CGRectMake(0, 64, 320, 50); // 64 = height of navigation bar
GADRequest *request = [GADRequest request];
[self.view addSubview:m_bannerView];
[m_bannerView loadRequest:request];
You can set the origin points of the adBanner like below.
self.adBanner = [[GADBannerView alloc]initWithAdSize:kGADAdSizeBanner
origin:CGPointMake(0,31)];
self.adBanner.adUnitID = #"YOUR_KEY";
self.adBanner.delegate = self;
self.adBanner.rootViewController = self;
[self.view addSubview:self.adBanner];
[self.adBanner loadRequest:[self request]];

Resources