かばちんのエンジニアブログ

日々の経験の中で培った内容を備忘録も兼ねて記録していくブログです。少しでも誰かの役に立つために頑張って続けていけたらなと思います。

カジュアルアプリにAppLovinのSDKを導入してみた

[もくじ]

AppLovin広告SDKの導入

 久しぶりの投稿になります。

 さて、タイトルの通りですが新しく全世界向けに配信することになったカジュアルゲーム
AppLovin の広告SDKを導入してみたので、導入の仕方から実際のリリースに至るまでの一連を備忘録として残したいと思います。

[開発に使用した環境]

なぜAppLovinにしたのか?

 これまでに、アドフリくん、アイモバイル、UnityAds、Fello、AdGenerator などいろいろな広告SDKを導入してきました。
今回 AppLovin を選んだ理由としては以下になります。

  • 全世界配信前提なので海外に対応していること(必須)
  • 導入説明を見る限り比較的簡単に導入できそうだったこと
  • バナー広告と動画広告の両方があったこと
  • 逆に自社で広告を出す場合に費用対効果が高いと評判がよかったこと


以上が、今回AppLovinを選んだ主な理由です。

AppLovin の公式サイトはこちら
www.applovin.com



SDKの導入

 SDKの導入自体はとても簡単でした。
公式サイトからダウンロードできる UnityPackage を入れれば基本的には特に何もすることはありません。
気をつけなければいけない点を挙げるとすれば、AndroidManifest.xml が既に存在する場合は自分でマージが必要になります。
それ以外は特に気にすることはないので Import してしまって大丈夫です。

しかしながらSDK導入時にはよくあることですが、ハマったポイントもあるので解説していきたいと思います。


Xcode で Archive したあとの Validation が通らない

 順調に Unity での開発を終え、Xcode プロジェクトを書き出し、Xcode でビルドし実機にて動作確認をします。
ここまでは非常にスムーズに行うことができました。

その後課金周りのテストをしたかったため、一度 AppStore へアップロードしようと思い、
ひとまず Validation を実行したのですが、「Symbols tool failed」というエラーが発生して Validation が失敗します。

f:id:kabatin:20190322185045p:plain
エラー画面

このエラーがなかなか厄介で、ググっても全く情報が見つかりませんでした。
そもそもですが、AppLovin 自体の情報が他の広告会社と比べるとかなり少ない気がします。

海外の広告会社だから日本語のサイトが少ないのは分かるのですが、英語で検索しても本当に少ない。
それが、この記事を書こうと思った大きな理由でもあります。

やっとの思いでヒントになるページを見つけました。
stackoverflow.com

このページの下のほうにこんな書き込みをされている方がいました。

Basically some framework has been added to Copy Bundle Resources. Remove it to resolve the issue!

要約すると「既にバンドルリソースはコピーされているからそれを削除しましょう。」


Xcode の BuildPhases にある Embed Frameworks に libAppLovinSdk.a が追加されている状態なので、
それを削除して再度 Archive を行ってから Validation をしたら成功しました。


動画広告再生時のクラッシュ問題

 他のアプリを Xcode でビルドする際にいつもお決まりで設定している項目があるのですが、
AppLovin を導入しているアプリではそれが原因で、動画再生時にクラッシュすることがあったので記述しておきます。


[Build Settings]

  • Enable Bitcode を NO にする
  • Architectures を Standard architectures(armv7,arm64) にする
  • Build Active Architecture Only を NOにする

[Build Phases]

  • Compile Sources の AL で始まるソースに -fno-objc-arc フラグを設定する (ALAppLovinLogger.m以外)


この中のどれが主な原因になってクラッシュを起こしているのかまでは追跡しませんでしたが、
簡単に言うと AppLovin に関しては UnityPackage を入れたままの状態で正常に動作します。

これはとても素晴らしいことではあるのですが、公式サイトの導入説明には -fno-objc-arc を設定する
指定があったので、マニュアルの状態も最新の状態にしておいて欲しいなと思いました。


まとめ

 今回初めて AppLovin の広告SDKを使ってみましたが、総評としては良かったと思います。
海外向けに広告モデルでアプリを開発する際には導入もしやすく、もしバズった場合などに
追加で広告を出したい状況などが出てきたら恩恵を受けられるのではないかなと思いました。