Facebook Audience NetworkをAdMobのメディエーションするためには、公式のドキュメントが当然あるのですが、どうも間違っているような気がするのでここにまとめ直します。(いやお前が間違っているだろうというツッコミ大歓迎です。)
Android版実装ガイド
iOS版実装ガイド
なお、AdMob管理画面上、メディエーションの設定はすでに済んでいるものとします。
Android向け設定
プロジェクトレベルのbuild.gradle
buildscriptのrepositoriesにmavenCentral()を追加します。
buildscript { ext.kotlin_version = '1.3.50' repositories { google() jcenter() mavenCentral() // これ } }
appレベルのbuild.gradle
appレベルのbuild.gradleには、dependenciesに以下の1行を追記します。
dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation 'com.android.support:multidex:1.0.3' implementation 'com.google.ads.mediation:facebook:5.10.0.0' // これ // implementation 'androidx.annotation:annotation:1.0.0' // これじゃない // implementation 'com.facebook.android:audience-network-sdk:6.+' //これじゃない }
Facebookのページには下2行を追記するように書かれていたのですが、どうもそれらではないようでした。
AdMobのページに書かれていたcom.google.ads.mediation:facebook:の方が正しいようです。
また、最新版は、6.4.0.0なようなのですが、私は多数以下のエラーが出て叱られたので、最低バージョンの5.10.0.0を使うことでビルドを通しました。
Duplicate class com.google.android.gms.measurement.internal.zzia found in modules jetified-play-services-measurement-base-18.0.0-runtime (com.google.android.gms:play-services-measurement-base:18.0.0) and jetified-play-services-measurement-impl-17.2.2-runtime (com.google.android.gms:play-services-measurement-impl:17.2.2)
AndroidManifest.xml
<application>タグに以下の属性を追記します。
<application ・・・ android:networkSecurityConfig="@xml/network_security_config"> // これ
network_security_config.xmlを新規作成
app/main/res/xml配下に、network_security_config.xmlファイルを追加し、以下の通り記載。
<?xml version="1.0" encoding="utf-8"?> <network-security-config> <domain-config cleartextTrafficPermitted="true"> <domain includeSubdomains="true">127.0.0.1</domain> </domain-config> </network-security-config>
iOS向けの設定
Podfile
CocoaPodsのライブラリを読み込むため、Podfileに以下追記する。
target 'Runner' do use_frameworks! use_modular_headers! flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) pod 'GoogleMobileAdsMediationFacebook' # これ end
AppDelegate.swift
広告トラッキングを有効にする必要があるため、AppDelegate.swiftに以下のコードを追記します。
override func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { GeneratedPluginRegistrant.register(with: self) FBAdSettings.setAdvertiserTrackingEnabled(true) // これ return super.application(application, didFinishLaunchingWithOptions: launchOptions) }
Info.plist
Info.plistにSKAdNetworkの識別子を追記します。
<dict> <key>SKAdNetworkIdentifier</key> <string>v9wttpbfk9.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>n38lu8286q.skadnetwork</string> </dict>
以上ですが、まだどこか間違ってるような気がするので、確認が取れたら更新します!