AdwhirlのadWhirlDidReceiveAdはCustom Eventには効かない?
Adwhirlを入れてはや1ヶ月くらい経ちました。
現在入れているのはiAd、Admob、Admakerの3つですが、iAdはあまりにも効果が少なかったため、その分の通信時間がおしかったので非表示にしてあります。そのため実質AdmobとAdmakerの2つですね。
で、私は広告が表示されていないときは広告のビュー自体を透明化(なんたら.view.alpha = 0.0;)していて、広告を受信したタイミングで透明化をオフにしている(なんたら.view.alpha = 1.0;)のですが、なぜかAdmakerではこれがうまくいかない。Admobではちゃんと動いているのに。
というわけでいろいろ試してみたところ、広告が受信されたタイミングで実行されるAdwhrlの関数である「adWhirlDidReceiveAd」が、Admakerでは実行されていない感じでした。Admobではちゃんと実行されるので、もしかしたらユーザー側で追加した「Custom Event」では「adWhirlDidReceiveAd」関数は呼ばれないのかもしれません。
というわけでしょうがないから下記のようにAdmaker側の広告を受信したタイミングで実行される「didLodAdMakerView」関数の中で不透明化(なんたら.view.alpha = 1.0;)を実行させることで対応しました。
ソースの一部は下記のとおり。
[c]
– (void)viewDidLoad {
[super viewDidLoad];
// 以下、Admaker—————–
AdMaker = [[AdMakerView alloc] init];
[AdMaker setAdMakerDelegate:self];
[AdMaker setFrame:CGRectMake(0, 0, 320, 50)];
[AdMaker start];
// 広告が受信されるまではAdmakerの広告枠自体を非表示
AdMaker.view.alpha = 0.0;
// 以上、Admaker—————–
//adwirl
[super viewDidLoad];
self.awView = [AdWhirlView requestAdWhirlViewWithDelegate:self];
[self.view addSubview:awView];
awView.frame = CGRectMake(0.0, self.view.frame.size.height –
GAD_SIZE_320x50.height – 44,GAD_SIZE_320x50.width, GAD_SIZE_320x50.height);
awView.delegate = self;
awView.alpha = 0.0;
}
// Adwhirl側の広告受信時に実行される関数
– (void)adWhirlDidReceiveAd:(AdWhirlView *)adWhirlView{
// Admobは広告受信時のこの関数が実行されるが、Admakerはなぜか実行されない
awView.alpha = 1.0;
}
// AdMaker側の広告受信時に実行される関数
– (void)didLoadAdMakerView:(AdMakerView*)view{
// しょうがないのでAdmaker側に「awView.alpha = 1.0;」を追加
AdMaker.view.alpha = 1.0;
awView.alpha = 1.0;
}
[/c]