21
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[Swift+SpriteKit]AppLovinの広告を導入してApple TVのアプリでマネタイズする

Last updated at Posted at 2015-12-12

アプリ道場のお父さん開発者 @esum1527です。

ApplovinがtvOS用の広告配信用SDKをリリースしました。これで広告による収益発生するアプリを作成できます。

今回はSwift+SpriteKitでApplovin SDKを利用するサンプルとしてSiri RemoteのPlay/Pauseボタンを押した時に広告を表示するというプロジェクトを作成してみます。

##実行した環境
OSX El Capitan + Xcode7.1 + applovin-tvos-sdk-3.2.0

##SDKのダウンロード
ApplovinからSDKをダウンロードします。
ダウンロードにはSign In後になります。利用を考えている方はSign Upが必要です。

Sign In後、Docs>tvOS>Apple tvOS Integration
https://www.applovin.com/integration#tvosIntegration
からSDKをダウンロードすることができます。

##プロジェクトの作成
Xcodeを起動し、プロジェクトを新規作成します。
作成の際にはtvOSのApplicationからGameを選択します。

Project作成

任意のプロジェクト名(今回のサンプルは ALTestとしました。)を設定し、フォルダに保存してください。

##SDKのインポート
ダウンロードしたファイルを解凍し、

  • headersフォルダ
  • libAppLovinTVOS.a

をプロジェクトに追加します。

SDKインポート

この時
Destinationの Copy items if needed にチェックを忘れずに

コピー時チェック

##Frameworkの追加
SDKを利用するために必要なライブラリを追加します。

ライブラリ追加

framework追加

の手順で以下のFrameworkをプロジェクトに追加します。

  • AdSupport
  • AVFoundation
  • CoreGraphics
  • CoreMedia
  • StoreKit
  • SystemConfiguration
  • UIKit

##SDK Keyの設定
Info.plist ファイルに 行を追加します。
Key追加.png

Key及びValueに値を手入力します。

Key Value 補足
AppLovinSdkKey (個別のキー) Sign In時に表示されているご自身のSDK Keyを指定します。

Key設定

Bridgeファイルの作成

SDKはObjective-Cで記述されているため、Swiftで利用するためにBridgeファイルを作成します。

Headerファイル作成

ファイル名は ALTest-Bridging-Header.h とします。

Headerファイル追加

##Setting
SDKを利用するために -ObjC Flgの設定が必要なため
Buid Settings - Other Linker Flags に
-ObjCを追加します。

BuldSettings1

次に、Bridgeファイルを利用するので、設定を追加します。
Bridging-Header に
$(SRCROOT)/$(PROJECT)/ALTest-Bridging-Header.h

を追加します。

BuldSettings2

一旦Buildしてみる

Buildしてエラーが出ないことを確認します。
エラーが発生する場合はこれまでの手順を見直してください。

#コードの記述

Bridgeに必要なファイルをimport

ブリッジファイルにAppLovin SDKのheaderを追加します。

ALTest-Bridging-Header.h

#import "ALSwiftHeaders.h"

#SDK初期化
SDK初期化のコードを記述します。
AppDelegate.swiftのdidFinishLaunchingWithOptionsを以下のように書き換えます。

AppDelegate.swift
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
  // Override point for customization after application launch.
  ALSdk.initializeSdk()
  
  return true
}

#Play/Pauseボタンの検知
今回はPlay/Pauseボタンを押した時に広告を表示するようにしますので、ボタンを押された場合に処理するメソッドの準備をします。
GameScene.swift の didMoveToView を以下のように書き換えます。

GameScene.swift
override func didMoveToView(view: SKView) {
  /* Setup your scene here */
  let myLabel = SKLabelNode(fontNamed:"Chalkduster")
  myLabel.text = "Press Play/Pause Button!";
  myLabel.fontSize = 65;
  myLabel.position = CGPoint(x:CGRectGetMidX(self.frame),
                             y:CGRectGetMidY(self.frame));

  self.addChild(myLabel)

  // Play/Pauseボタンの設定
  let tapGesture = UITapGestureRecognizer()
  tapGesture.allowedPressTypes = [NSNumber (integer: UIPressType.PlayPause.rawValue)]
  tapGesture.addTarget(self, action: "showAd")
  self.view?.addGestureRecognizer(tapGesture)

}

#広告表示のコードを記述
PlayPauseボタンが押された時のアクション showAd を定義します。
didMoveToViewの下に以下のメソッドを追加します。

GameScene.swift
func showAd() {
  if ALInterstitialAd.isReadyForDisplay() {
    ALInterstitialAd.show()
  }
}

#実行してみる
Buildしてエラーが出ないことを確認して実行しましょう。

シミュレータのPlay/Pauseボタンをクリックしましょう。
※リモコンが表示されていない場合は [Hardware]-[Show Apple TV Remote]を選択します。

実行

広告が表示されました。

スクリーンショット 2015-12-11 21.51.49.png

#最後に
Apple TVのマネタイズは有料アプリかアプリ内課金でしたが、ApplovinがtvOS用の広告配信用SDKをリリースしたことで広告による収益発生するアプリも作成できるようになりました。
ゲームに溶け込むような形でうまく広告を導入していきたいですね。

<参考>
AppLovin
tvOS-Demo-App
AppLovin、「AppleTV」向けに広告を配信できるSDKをリリース @tatsuosakamoto @maskin

21
20
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?