Реализации на AdMob (iOS) - PullRequest
       11

Реализации на AdMob (iOS)

0 голосов
/ 26 октября 2011

Как дела, парни? Так что сегодня это действительно смешной вопрос, но я просто не могу заставить его работать так, как я хочу. Я использую AdMob, но хочу получить дополнительную информацию.

Они дали инструкции на GoogleCodes / AdMob но я не могу сделать это, дайте мне журналы, которые я хочу.

Это на .h

#import <UIKit/UIKit.h>
#import "GADBannerView.h"
#import "GADBannerViewDelegate.h"

@interface AppForAllTestsViewController : UIViewController<GADBannerViewDelegate>

Это на .m

-(void)adViewDidReceiveAd:(GADBannerView *)bannerView{
    NSLog(@"RECEIVED");

    [UIView beginAnimations:@"BannerSlide" context:nil];
    bannerView.frame = CGRectMake(0.0, self.view.frame.size.height - bannerView.frame.size.height, 
                                   bannerView.frame.size.width, 
                                   bannerView.frame.size.height);
    [UIView commitAnimations];
}

-(void)adView:(GADBannerView *)view didFailToReceiveAdWithError:(GADRequestError *)error{
    NSLog(@"FAILURE RECEIVING AD: %@", [error localizedDescription]);
}


-(void)adMobProcess{
    adMobBanner = [[GADBannerView alloc]initWithFrame:CGRectMake(0.0, 
                                                                 self.view.frame.size.height-GAD_SIZE_320x50.height, 
                                                                 GAD_SIZE_320x50.width, 
                                                                 GAD_SIZE_320x50.height)];

    adMobBanner.adUnitID = my_id;
    adMobBanner.rootViewController = self;
    [self.view addSubview:adMobBanner];
    [adMobBanner loadRequest:[GADRequest request]];

}

-(void)awakeFromNib{
    NSLog(@"GOOD MORNING");
    [adMobBanner setDelegate:self];
}

- (void)viewDidLoad{
    [self adMobProcess];
    [super viewDidLoad];
}

Вы видите, что я устанавливаю делегата на "себя", но ничего не происходит, ни одно из изменений, кто-нибудь может мне помочь? (

Ответы [ 3 ]

4 голосов
/ 26 октября 2011

Документация AdMob для iOS гласит:

Не забудьте установить делегата с помощью setDelegate: перед отправкой запроса на объявление.

Поскольку вы устанавливаете делегата в awakeFromNib, вы либо устанавливаете делегата до инициализации adMobBanner (NPE?), Либо вы устанавливаете его после adRequest. Вместо этого вы должны установить делегат в adMobProcess перед вызовом loadRequest.

1 голос
/ 20 декабря 2013

Загрузить библиотеку Google Admob https://developers.google.com/mobile-ads-sdk/download#downloadios

За исключением файла надстроек и файла readme.txt, перетащите файл all в свой проект

Настройки сборки -> Путь поиска -> Путь поиска в библиотеке и Путь поиска в заголовке, добавьте ссылку на файл Google Admob как RECURSIVE $ (SRCROOT) / имя_папки Folder_Name Указывает место размещения библиотеки

Не используйте self.view.frame.size.height для iPhone и iPad, это отличается от высоты баннера ...

Используйте [[UIScreen mainScreen] bounds] .size.height, это автоматически определит границы экрана дисплея iPhone и iPad

Отрегулируйте высоту, поместите баннер в правильное положение

adViewDidReceiveAd - метод делегата, поэтому в файле .h необходимо вызвать метод делегата

.
<GADBannerViewDelegate>

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
    {

        bannerView_ = [[GADBannerView alloc]
                       initWithFrame:CGRectMake(0.0,
                                          [[UIScreen mainScreen] bounds].size.height - 150,
                                          GAD_SIZE_728x90.width + 50,
                                          GAD_SIZE_728x90.height)];

    }

    else if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
    {

        bannerView_ = [[GADBannerView alloc]
                   initWithFrame:CGRectMake(0.0,
                                       [[UIScreen mainScreen] bounds].size.height - 113,
                                        GAD_SIZE_320x50.width,
                                        GAD_SIZE_320x50.height)];

    }


    // Specify the ad unit ID.

    bannerView_.adUnitID = @"****************";

    [bannerView_ setDelegate:self];

    bannerView_.rootViewController = self;

    [bannerView_ loadRequest:[GADRequest request]];
}

- (void)adViewDidReceiveAd:(GADBannerView *)view

{

    [self.view addSubview:bannerView_];

}
0 голосов
/ 03 февраля 2015

Я обнаружил, что должен был установить фрейм при инициализации представления баннера, чтобы он использовал делегата.

// Delegate methods NOT CALLED
self.bannerView = [[DFPBannerView alloc] init];

// Delegate methods ARE CALLED
self.bannerView = [[DFPBannerView alloc] initWithFrame:CGRectMake(0, 0, 1, 1)];
...