iPhoneアプリへのアドフリくん導入(AdMobメディエーション編)

AdMobのメディエーションにアドフリくんを登録する方法を以下に記載します。

アドフリくんの導入により、AdMobバナーの在庫がない時にアドフリくんの最適化された広告が表示されます。

実装サンプルを下記からダウンロードできますので、ご参考になれば幸いです。

サンプルダウンロード

導入手順

アドフリくん広告枠の登録

1. アドフリくんのサイトにログインし、「広告枠」メニューを開く

2. 「広告枠の追加」ボタンをクリックし、広告枠を登録する

3. 追加した広告枠を開き、[広告枠 ID]を控える

4. AdMobのサイトにログインし、「収益化」メニューを開く

5. 「すべてのアプリ」をクリックし、既存広告枠の [メディエーションを編集]リンクを開く

6. 「新しい広告ネットワーク」ボタンをクリックする

7. 「カスタムイベント」ボタンをクリックし、[Class Name]AdfurikunAdMobViewと入力、[Label]には判別しやすい名前を入力、[Parameter]にはアドフリくんのサイトで取得した[広告枠 ID]を入力し、「次へ」ボタンをクリック

アプリに AdMobアドフリくんのメディエーションバナーを導入

1. 必要なフレームワークをインポート

必要なフレームワークは下記の通りです。Xcodeからそれぞれインポートします。

  • AVFoundation.framework
  • MessageUI.framework
  • AdSupport.framework
  • AudioToolbox.framework
  • StoreKit.framework
  • SystemConfiguration.framework
  • CoreTelephony.framework

2. Xcodeで [PROJECT][BuildSettings]の順に開き、「Linking」メニューにある [Other Linker Flags]-ObjCと入力

3. アドフリくんの SDKをダウンロード

4. アドフリくんの SDKをインポート

  • AdfurikunAdMobView.h
  • AdfurikunAdMobView.m
  • adfurikunsdk.framework

5. ARCを使用している場合は、プロジェクトの「Build Phases」メニューから [Compile Sources]を開き、AdfurikunAdMobView.mをダブルクリックして 「-fno-objc-arc」と入力

6. AdMobバナーの実装

下記のサンプルコードは動作確認済みです。DCAdMobBanner.hGAD_UNIT_IDには、AdMob[広告ユニットID]を指定してください。

サンプルソースコード

DCAdMobBanner.h

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#import <Foundation/Foundation.h>
#import "GADBannerView.h"

#define GAD_UNIT_ID @"ここに AdMobの「広告ユニットID」を入力してください"

@interface DCAdMobBanner : NSObject

#pragma mark - property
@property (nonatomic, strong) GADBannerView    *gadView;
@property (nonatomic, strong) UIViewController *currentRootViewController;

#pragma mark - public method
+ (id)sharedManager;
- (void)showAdBanner:(UIViewController *)viewController yPos:(CGFloat)yPos;
- (void)removeAdBanner;

@end

DCAdMobBanner.m

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#import "DCAdMobBanner.h"

@implementation DCAdMobBanner

@synthesize gadView                   = _gadView;
@synthesize currentRootViewController = _currentRootViewController;

#pragma mark - Shared Manager

static id sharedInstance = nil;

+ (id)sharedManager
{
    @synchronized(self) {
        if (!sharedInstance) {
            sharedInstance = [[self alloc] init];
        }
    }
  return sharedInstance;
}

#pragma mark - public method

// バナー表示
- (void)showAdBanner:(UIViewController *)viewController yPos:(CGFloat)yPos
{
    self.currentRootViewController = viewController;
    [self showGADBanner:viewController.view yPos:yPos];
}

// バナー削除
- (void)removeAdBanner
{
    if (self.gadView.superview) {
        [self.gadView removeFromSuperview];
    }
}

#pragma mark - GAD Banner

- (void)showGADBanner:(UIView *)targetView yPos:(CGFloat)yPos
{
    if (!self.gadView) {
        self.gadView = [[GADBannerView alloc] initWithAdSize:kGADAdSizeBanner];
        self.gadView.adUnitID = GAD_UNIT_ID;
        [self loadGADBanner:targetView yPos:yPos];
    }
    if (![self.gadView.superview isEqual:targetView]) {
        [self.gadView removeFromSuperview];
        [self loadGADBanner:targetView yPos:yPos];
    }
}

- (void)loadGADBanner:(UIView *)view yPos:(CGFloat)yPos
{
    self.gadView.rootViewController = self.currentRootViewController;

    CGRect gadViewFrame = self.gadView.frame;
    gadViewFrame.origin = CGPointMake(0, yPos);
    self.gadView.frame = gadViewFrame;

    [view addSubview:self.gadView];
    [self.gadView loadRequest:[GADRequest request]];
}

@end

以上で AdMobへのアドフリくんメディエーション導入は完了になります。

アドフリくんの公式マニュアルにも詳しくメディエーションの登録方法が記載されていますので、そちらも参考にされると良いかもしれません。

関連記事

お薦めの参考書

絶対に挫折しない iPhoneアプリ開発「超」入門 増補改訂第4版
Swiftについて知りたい開発者の方のみならず、プログラミング未経験者の方にも参考になる内容になっています。Swiftの基礎を一から丁寧に解説されており、この書籍があればネットで調べる手間をかなり省くことができると思います。

   このエントリーをはてなブックマークに追加

About

Masaki Hirokawa (@dolice_apps)

デザインエンジニア 廣川政樹の開発ブログ。Objective-Cや Javaなど iPhone/Androidアプリ開発に関する技術情報を掲載しています。

iPhone apps

  • リラックス・ヒーリング(無料)
  • 望みが叶う!引き寄せの法則アプリ(無料)
  • ミステリー - 怖い話や不思議な体験、都市伝説まとめ
  • 浮世絵壁紙 - 美しい日本画ギャラリー(無料)
  • 綺麗な壁紙HD iPhone 7/7 Plus/SE & iPod対応(無料)
  • クールな壁紙HD iPhone 7/7 Plus/SE & iPod対応(無料)

Android apps

  • 浮世絵壁紙 - 美しい日本画ギャラリー
  • 綺麗な高画質壁紙

Objective-C Classes

Tag Cloud

ActionScript(9) ActionScript3(7) Ad(4) Adfurikun(2) AdMob(9) Android(10) Animation(17) AppDelegate(3) ARC(1) ArrayList(1) AVAudioPlayer(4) AVAudioSession(1) AVFoundation(3) Banner(2) Bitmap(1) Camera(4) CGAffineTransform(4) CGBlendMode(2) CGContextRef(1) CGImageRef(1) Classes(44) CLLocationManager(1) ConnectivityManager(1) ContentResolver(1) CoreLocation(2) Delegate(3) Device(7) Display(1) DisplayMetrics(1) Download(101) Facebook(6) Foundation(72) Framework(2) Google Analytics(1) Handler(1) iAd(6) ImageView(1) In-AppPurchase(1) iOS(12) iOS 7(15) iOS 7.1(3) iOS 8(1) iPad(7) iPhone(21) iPhone 6(4) Java(7) JavaScript(2) LINE(4) Localize(1) Magazine(1) MediaStore(1) MFComposeViewController(1) Nend(1) NetworkInfo(1) NSArray(23) NSCalendar(3) NSData(2) NSDate(7) NSDateComponents(2) NSDateFormatter(2) NSDictionary(12) NSEnumerator(1) NSIndexSet(1) NSInteger(6) NSMutableArray(17) NSMutableDictionary(5) NSMutableOrderedSet(7) NSMutableString(4) NSMutableURLRequest(1) NSNotificationCenter(1) NSNumber(1) NSObject(1) NSOrderedSet(7) NSRange(2) NSSelectorFromString(1) NSSet(6) NSString(19) NSTimer(4) NSTimeZone(1) NSURL(7) NSURLConnection(1) NSURLRequest(2) NSUserDefaults(7) NSXMLParser(2) Objective-C(222) PHP(1) Products(14) QuartzCore(3) RSS(2) Runnable(1) Sample(51) Screensaver(9) SDK(2) ShareCompat(1) Social(10) StoreKit(1) Twitter(6) UIAccelerometer(3) UIActionSheet(1) UIActivityIndicator(1) UIActivityIndicatorView(3) UIActivityViewController(1) UIAlertView(5) UIApplication(7) UIButton(4) UIColor(3) UIDatePicker(5) UIDevice(6) UIDeviceOrientation(1) UIEvent(6) UIImage(15) UIImagePickerController(4) UIImageView(12) UIKit(58) UILabel(7) UINavigationBar(4) UINavigationItem(1) UIPasteboard(4) UIScreen(1) UIScrollBar(1) UIScrollView(1) UISlider(3) UIStoryboardSegue(3) UISwitch(1) UITabBar(3) UITableView(4) UITextField(2) UIView(11) UIViewAnimationTransition(1) UIViewController(4) UIWebView(5) WindowManager(1) Xcode(48) Xcode 5(8) Xcode 5.1(2)