メディエーション対象ネットワークの準備

サードパーティSDKをモバイルプロパティに統合する場合、その統合に関する責任はすべてお客様が負うものとします。 お客様およびサードパーティSDKプロバイダーは、ユーザーまたはデバイスに基づくプライバシーの選択やフラグに準拠したデータ処理および取り扱いを確実に行う必要があります。

    Android

    MAX mediationアダプターをダウンロードしてアプリに統合する方法は2つあります。

    Gradle
    AppLovinはこの方法での統合を推奨しています。 AppLovinのアダプターのPOMファイルは、メディエーション対象ネットワークのSDKとその依存関係を自動的に統合します。
    オープンソースアダプター
    統合においてより高い柔軟性が必要な場合は、AppLovinのオープンソースアダプターを統合できます。 この場合、メディエーション対象SDKとその依存関係の統合はお客様の責任となります。 これらのアダプターは、AppLovin-MAX-SDK-Android GitHubリポジトリで確認できます。

    アダプターの名前やパッケージ名は変更しないでください。 変更すると、MAX SDKがアダプターを認識できなくなり、広告がロードされなくなります。

    Gradle

    統合したいメディエーション対象の広告ネットワークのチェックボックスをオンにしてください。 チェックを入れると、このページにそれらのネットワークに特化した手順が表示されます。

    また、このページはお客様向けにカスタマイズされたGradleスクリプトを生成します。 以下のカスタマイズされたGradleスクリプトを、アプリレベルのbuild.gradleにコピーしてください。

  • Amazon
  • BidMachine
  • BIGO Ads
  • Chartboost
  • DT Exchange
  • Google Ad Manager
  • Google Bidding and Google AdMob
  • HyprMX
  • InMobi
  • ironSource
  • Liftoff Monetize
  • LINE
  • Maio
  • Meta Audience Network
  • Mintegral
  • MobileFuse
  • Moloco
  • Ogury
  • Pangle
  • PubMatic
  • Smaato
  • Unity Ads
  • Verve
  • VK Ad Network
  • Yandex
  • YSO Network
  • // build.gradle
    repositories {
        google()
        mavenCentral()
        maven { url "https://artifactory.bidmachine.io/bidmachine" }
        maven { url "https://cboost.jfrog.io/artifactory/chartboost-ads/" }
        maven { url "https://imobile-maio.github.io/maven" }
        maven { url "https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea" }
        maven { url "https://maven.ogury.co" }
        maven { url "https://artifact.bytedance.com/repository/pangle" }
        maven { url "https://repo.pubmatic.com/artifactory/public-repos" }
        maven { url "https://s3.amazonaws.com/smaato-sdk-releases/" }
        maven { url "https://verve.jfrog.io/artifactory/verve-gradle-release" }
        maven { url "https://ysonetwork.s3.eu-west-3.amazonaws.com/sdk/android" }
    
    }
    
    dependencies {
        implementation 'com.applovin.mediation:amazon-tam-adapter:+'
        implementation 'com.amazon.android:aps-sdk:+'
        implementation 'com.applovin.mediation:bidmachine-adapter:+'
        implementation 'com.applovin.mediation:bigoads-adapter:+'
        implementation 'com.applovin.mediation:chartboost-adapter:+'
        implementation 'com.google.android.gms:play-services-base:16.1.0'
        implementation 'com.applovin.mediation:fyber-adapter:+'
        implementation 'com.applovin.mediation:google-ad-manager-adapter:+'
        implementation 'com.applovin.mediation:google-adapter:+'
        implementation 'com.applovin.mediation:hyprmx-adapter:+'
        implementation 'com.applovin.mediation:inmobi-adapter:+'
        implementation 'com.squareup.picasso:picasso:2.8'
        implementation 'androidx.recyclerview:recyclerview:1.1.0'
        implementation 'com.applovin.mediation:ironsource-adapter:+'
        implementation 'com.applovin.mediation:vungle-adapter:+'
        implementation 'com.applovin.mediation:line-adapter:+'
        implementation 'com.applovin.mediation:maio-adapter:+'
        implementation 'com.applovin.mediation:facebook-adapter:+'
        implementation 'com.applovin.mediation:mintegral-adapter:+'
        implementation 'com.applovin.mediation:mobilefuse-adapter:+'
        implementation 'com.applovin.mediation:moloco-adapter:+'
        implementation 'com.applovin.mediation:ogury-presage-adapter:+'
        implementation 'com.applovin.mediation:bytedance-adapter:+'
        implementation 'com.applovin.mediation:pubmatic-adapter:+'
        implementation 'com.applovin.mediation:smaato-adapter:+'
        implementation 'com.applovin.mediation:unityads-adapter:+'
        implementation 'com.applovin.mediation:verve-adapter:+'
        implementation 'com.applovin.mediation:mytarget-adapter:+'
        implementation 'com.applovin.mediation:yandex-adapter:+'
        implementation 'com.applovin.mediation:yso-network-adapter:+'
    
    }

    AndroidXへの移行

    AndroidXライブラリをプロジェクトに統合します。 プロジェクトの移行方法に関する詳細については、AndroidXへの移行ガイドを参照してください。

    Google AdSense、AdManager、またはAdMobを使用する開発者およびパブリッシャーは、Googleが認定した同意管理プラットフォーム(CMP)を使用する必要があります。 欧州経済領域(EEA)または英国のユーザーに広告を配信する場合、CMPはIABのTransparency and Consent Framework(TCF)と統合されている必要があります。 詳細については、プライバシー:「TCF v2同意」を参照してください。

    Google biddingおよびGoogle AdMob / Google Ad ManagerのアプリIDの追加

    アプリのAndroidManifest.xmlで、<application>タグ内に<meta-data>タグを追加します。 以下の例は、このタグの正しい属性を示しています。 «your-admob-app-id»を、お客様のGoogle biddingおよびGoogle AdMob / Google Ad ManagerのアプリIDに置き換えてください。

    <?xml version="1.0" encoding="utf-8"?>
    <manifest … >
      <application … >
        <meta-data
          android:name="com.google.android.gms.ads.APPLICATION_ID"
          android:value="«your-admob-app-id»"/>
        ⋮
      </application>
    </manifest>
    

    Gradleエラー

    Google AdMobには、Android Gradleプラグイン バージョン4.2.0以上およびGradle バージョン6.7.1以上が必要です。 以下のエラーが表示される場合は、Android GradleプラグインとGradleのバージョンをアップデートしてください。

    AAPT: error: unexpected element <property> found in <manifest><application>.
    

    compileSdkVersion

    Google Mobile Ads SDK バージョン23.1.0以降では、compileSdkVersionを34以上にする必要があります。

    アプリのbuild.gradlecompileSdkVersion34以上に設定してください。

    最新のcompileSdkVersion要件については、Google Mobile Ads SDK リリースノートを参照してください。

    Amazon SDKの初期化

    Amazon Publisher Services SDKは、MAX SDKの外部で初期化する必要があります。

    // Amazon requires an 'Activity' instance
    AdRegistration.getInstance( "AMAZON_APP_ID", this );
    AdRegistration.setMRAIDSupportedVersions( new String[] { "1.0", "2.0", "3.0" } );
    AdRegistration.setMRAIDPolicy( MRAIDPolicy.CUSTOM );
    

    Amazon SDKからのバナーまたはMREC広告のロード

    Amazon広告をMAXに統合するには、まずAmazon広告をロードする必要があります。 MAX広告をロードする前に、DTBAdResponseまたはAdErrorMaxAdViewのインスタンスに渡します。 これは、MaxAdView#setLocalExtraParameter()を呼び出すことで実行できます。

    自動更新されるバナー広告の場合、広告のロードは1回のみで十分です。

    class ExampleActivity
            extends Activity
    {
      ⋮
    
      private void loadAd()
      {
        String amazonAdSlotId;
        MaxAdFormat adFormat;
    
        if ( AppLovinSdkUtils.isTablet( getApplicationContext() ) )
        {
          amazonAdSlotId = "«Amazon-leader-slot-ID»";
          adFormat = MaxAdFormat.LEADER;
        }
        else
        {
          amazonAdSlotId = "«Amazon-banner-slot-ID»";
          adFormat = MaxAdFormat.BANNER;
        }
    
        // Raw size will be 320x50 for BANNERs on phones, and 728x90 for LEADERs on tablets
        AppLovinSdkUtils.Size rawSize = adFormat.getSize();
        DTBAdSize size = new DTBAdSize( rawSize.getWidth(), rawSize.getHeight(), amazonAdSlotId );
    
        DTBAdRequest adLoader = new DTBAdRequest( getApplicationContext(), new DTBAdNetworkInfo( ApsAdNetwork.MAX ) );
        adLoader.setSizes( size );
        adLoader.loadAd( new DTBAdCallback()
        {
          @Override
          public void onSuccess(@NonNull final DTBAdResponse dtbAdResponse)
          {
            // 'adView' is your instance of MaxAdView
            adView.setLocalExtraParameter( "amazon_ad_response", dtbAdResponse );
            adView.loadAd();
          }
    
          @Override
          public void onFailure(@NonNull final AdError adError)
          {
            // 'adView' is your instance of MaxAdView
            adView.setLocalExtraParameter( "amazon_ad_error", adError );
            adView.loadAd();
          }
        } );
      }
    }
    

    Amazon SDKからのインタースティシャル広告のロード

    Amazonインタースティシャル広告をMAXに統合するには、まずAmazon広告をロードする必要があります。 MAX広告をロードする前に、DTBAdResponseまたはAdErrorMaxInterstitialAdのインスタンスに渡します。 これは、MaxInterstitialAd#setLocalExtraParameter()を呼び出すことで実行できます。

    セッションごとに1回だけ、AmazonのDTBAdResponseまたはDTBAdErrorInfoをロードしてMaxInterstitialAdインスタンスに渡す必要があります。

    class ExampleActivity
           extends Activity
    {
      private static MaxInterstitialAd interstitialAd; // static to ensure only one instance exists
      private static boolean           isFirstLoad = true;
    
      private void loadAd()
      {
        if ( isFirstLoad )
        {
          isFirstLoad = false;
    
          if ( interstitialAd == null )
          {
            interstitialAd = new MaxInterstitialAd( "«MAX-inter-ad-unit-ID»" );
          }
    
          DTBAdRequest adLoader = new DTBAdRequest( getApplicationContext(), new DTBAdNetworkInfo( ApsAdNetwork.MAX ) );
          adLoader.setSizes( new DTBAdSize.DTBInterstitialAdSize( "«Amazon-inter-slot-ID»" ) );
          adLoader.loadAd( new DTBAdCallback()
          {
            @Override
            public void onSuccess(@NonNull final DTBAdResponse dtbAdResponse)
            {
              // 'interstitialAd' is your instance of MaxInterstitialAd
              interstitialAd.setLocalExtraParameter( "amazon_ad_response", dtbAdResponse );
              interstitialAd.loadAd();
            }
    
            @Override
            public void onFailure(@NonNull final AdError adError)
            {
              // 'interstitialAd' is your instance of MaxInterstitialAd
              interstitialAd.setLocalExtraParameter( "amazon_ad_error", adError );
              interstitialAd.loadAd();
            }
          } );
        }
        else
        {
          interstitialAd.loadAd();
        }
      }
    }
    

    Amazon SDKからの動画インタースティシャル広告のロード

    Amazon動画インタースティシャル広告をMAXに統合するには、まずAmazon広告をロードする必要があります。 MAX広告をロードする前に、DTBAdResponseまたはAdErrorMaxInterstitialAdのインスタンスに渡します。 これは、MaxInterstitialAd#setLocalExtraParameter()を呼び出すことで実行できます。

    セッションごとに1回だけ、DTBAdResponseまたはDTBAdErrorInfoをロードしてMaxInterstitialAdインスタンスに渡す必要があります。

    class ExampleActivity
           extends Activity
    {
      private static MaxInterstitialAd interstitialAd; // static to ensure only one instance exists
      private static boolean           isFirstLoad = true;
    
      private void loadAd()
      {
        if ( isFirstLoad )
        {
          isFirstLoad = false;
    
          if ( interstitialAd == null )
          {
            interstitialAd = new MaxInterstitialAd( "«MAX-inter-ad-unit-ID»" );
          }
    
          DTBAdRequest adLoader = new DTBAdRequest( getApplicationContext(), new DTBAdNetworkInfo( ApsAdNetwork.MAX ) );
    
          // Switch video player width and height values(320, 480) depending on device orientation
          adLoader.setSizes( new DTBAdSize.DTBVideo(320, 480, "«Amazon-video-inter-slot-ID»") );
          adLoader.loadAd( new DTBAdCallback()
          {
            @Override
            public void onSuccess(@NonNull final DTBAdResponse dtbAdResponse)
            {
              // 'interstitialAd' is your instance of MaxInterstitialAd
              interstitialAd.setLocalExtraParameter( "amazon_ad_response", dtbAdResponse );
              interstitialAd.loadAd();
            }
    
            @Override
            public void onFailure(@NonNull final AdError adError)
            {
              // 'interstitialAd' is your instance of MaxInterstitialAd
              interstitialAd.setLocalExtraParameter( "amazon_ad_error", adError );
              interstitialAd.loadAd();
            }
          } );
        }
        else
        {
          interstitialAd.loadAd();
        }
      }
    }
    

    Amazon SDKからの動画リワード広告のロード

    Amazon動画リワード広告をMAXに統合するには、まずAmazon広告をロードします。 MAX広告をロードする前に、DTBAdResponseまたはAdErrorMaxRewardedAdのインスタンスに渡します。 これは、MaxRewardedAd#setLocalExtraParameter()を呼び出すことで実行できます。

    セッションごとに1回だけ、DTBAdResponseまたはAdErrorMaxRewardedAdインスタンスにロードして渡す必要があります。

    class ExampleActivity
            extends Activity
    {
      private static MaxRewardedAd rewardedAd; // static to ensure only one instance exists
      private static boolean       isFirstLoad = true;
    
      private void loadAd()
      {
        if ( isFirstLoad )
        {
          isFirstLoad = false;
    
          if ( rewardedAd == null )
          {
            rewardedAd = MaxRewardedAd.getInstance( "«MAX-rewarded-ad-unit-ID»" );
          }
    
          DTBAdRequest adLoader = new DTBAdRequest( getApplicationContext(), new DTBAdNetworkInfo( ApsAdNetwork.MAX ) );
    
          // Switch video player width and height values(320, 480) depending on device orientation
          adLoader.setSizes( new DTBAdSize.DTBVideo( 320, 480, "«Amazon-video-rewarded-slot-ID»" ) );
          adLoader.loadAd( new DTBAdCallback()
          {
            @Override
            public void onSuccess(@NonNull final DTBAdResponse dtbAdResponse)
            {
              // 'rewardedAd' is your instance of MaxRewardedAd
              rewardedAd.setLocalExtraParameter( "amazon_ad_response", dtbAdResponse );
              rewardedAd.loadAd();
            }
    
            @Override
            public void onFailure(@NonNull final AdError adError)
            {
              // 'rewardedAd' is your instance of MaxRewardedAd
              rewardedAd.setLocalExtraParameter( "amazon_ad_error", adError );
              rewardedAd.loadAd();
            }
          } );
        }
        else
        {
          rewardedAd.loadAd();
        }
      }
    }
    

    Amazon Publisher Servicesのテスト

    AppLovinは、AmazonのSDKでテストモードを有効にすることを推奨しています。 これにより、テスト広告を受け取ることができます。 以下の呼び出しを行うことでテストモードを有効にします。

    AdRegistration.enableTesting( true );
    AdRegistration.enableLogging( true );
    

    ウォーターフォールをフィルタリングして、Amazon広告のみを含めるようにすることができます。 これを行うには、Mediation DebuggerSelect Live Network に移動し、Amazonネットワークを選択します。

    Meta Audience Networkのデータ処理オプション

    Limited Data Use(LDU)モードを有効にしない場合は、SetDataProcessingOptions()に空の文字列配列を渡します。

    import com.facebook.ads.AdSettings;
    ⋮
    AdSettings.setDataProcessingOptions( new String[] {} );
    ⋮
    // Initialize MAX SDK
    

    ユーザーに対してLDUを有効にし、ユーザーの地域を指定するには、以下のような形式でSetDataProcessingOptions()を呼び出します。

    import com.facebook.ads.AdSettings;
    ⋮
    AdSettings.setDataProcessingOptions( new String[] {"LDU"}, «country», «state» );
    ⋮
    // Initialize MAX SDK
    

    Google UMPの使用

    CMPとしてGoogle UMPを使用している場合、ユーザーがMetaに同意したかどうかを判断できます。 そのためには、以下のようなコードを使用します。

    Boolean hasMetaConsent = AppLovinPrivacySettings.getAdditionalConsentStatus( 89 );
    if ( hasMetaConsent != null )
    {
      // Set Meta Data Processing Options accordingly.
    }
    else
    {
      // AC String is not available on disk. Please check for consent status after the user completes the CMP flow.
    }
    

    カリフォルニア州のユーザー向けのMeta Audience Networkデータ処理オプション

    カリフォルニア州でMeta Audience Networkの「Limited Data Use」フラグを実装する方法については、Meta for Developersのドキュメントを参照してください。

    難読化

    コードの難読化やリソースの縮小を使用する場合は、Pangleの難読化ガイドラインに従ってください。

    Androidマニフェストのマージエラー

    一部のネットワークSDKは、バンドルされているAndroid Manifestファイルに<queries>要素を含んでいます。 互換性のないバージョンのAndroid Gradleプラグインを使用している場合、これが原因で以下のいずれかのビルドエラーが発生します。

    com.android.builder.internal.aapt.v2.Aapt2Exception: Android resource linking failed
    error: unexpected element <queries> found in <manifest>.
    

    このエラーを修正するには、以下のいずれかのバージョンのAndroid Gradleプラグインにアップグレードしてください。 これらのバージョンは<queries>要素をサポートしています。

    Gradle Build Toolsではなく、Android Gradle Pluginをアップグレードしてください。

    現在のAndroid Gradleプラグインのバージョン<queries>要素をサポートするバージョン
    4.1.*すべて
    4.0.*4.0.1+
    3.6.*3.6.4+
    3.5.*3.5.4+
    3.4.*3.4.3+
    3.3.*3.3.3+

    アダプターネットワーク情報

    読み込み中...

    iOS

    MAX mediationアダプターをダウンロードしてアプリに統合する方法は2つあります。

    CocoaPods
    AppLovinはこの方法での統合を推奨しています。 AppLovinのアダプターのpodは、メディエーション対象ネットワークのSDKとその依存関係を自動的に統合します。
    オープンソースアダプター
    統合においてより高い柔軟性が必要な場合は、AppLovinのオープンソースアダプターを統合できます。 この場合、メディエーション対象SDKとそれらが必要とする依存関係の統合はお客様の責任となります。 これらのアダプターは、AppLovin-MAX-SDK-iOS GitHubリポジトリで確認できます。

    アダプターの名前は変更しないでください。 変更すると、MAX SDKがアダプターを認識できなくなり、広告がロードされなくなります。

    CocoaPods

    統合したいメディエーション対象の広告ネットワークのチェックボックスをオンにしてください。 チェックを入れると、このページにそれらのネットワークに特化した手順が表示されます。 また、このページはお客様向けにカスタマイズされたCocoaPodsスクリプトを生成します。 以下のカスタマイズされたCocoaPodsスクリプトを、Podfileにコピーしてください。

  • Amazon
  • BidMachine
  • BIGO Ads
  • Chartboost
  • CSJ
  • DT Exchange
  • Google Ad Manager
  • Google Bidding and Google AdMob
  • HyprMX
  • InMobi
  • ironSource
  • Liftoff Monetize
  • LINE
  • Maio
  • Meta Audience Network
  • Mintegral
  • MobileFuse
  • Moloco
  • Ogury
  • Pangle
  • PubMatic
  • Smaato
  • Tencent
  • Unity Ads
  • Verve
  • VK Ad Network
  • Yandex
  • YSO Network
  • # Settings
    use_frameworks!
    inhibit_all_warnings!
    
    # Pods
    target 'YOUR_PROJECT_NAME' do
      pod 'AmazonPublisherServicesSDK'
      pod 'AppLovinMediationAmazonAdMarketplaceAdapter'
      pod 'AppLovinMediationBidMachineAdapter'
      pod 'AppLovinMediationBigoAdsAdapter'
      pod 'AppLovinMediationChartboostAdapter'
      pod 'AppLovinMediationCSJAdapter'
      pod 'AppLovinMediationFyberAdapter'
      pod 'AppLovinMediationGoogleAdManagerAdapter'
      pod 'AppLovinMediationGoogleAdapter'
      pod 'AppLovinMediationHyprMXAdapter'
      pod 'AppLovinMediationInMobiAdapter'
      pod 'AppLovinMediationIronSourceAdapter'
      pod 'AppLovinMediationVungleAdapter'
      pod 'AppLovinMediationLineAdapter'
      pod 'AppLovinMediationMaioAdapter'
      pod 'AppLovinMediationFacebookAdapter'
      pod 'AppLovinMediationMintegralAdapter'
      pod 'AppLovinMediationMobileFuseAdapter'
      pod 'AppLovinMediationMolocoAdapter'
      pod 'AppLovinMediationOguryPresageAdapter'
      pod 'AppLovinMediationByteDanceAdapter'
      pod 'AppLovinMediationPubMaticAdapter'
      pod 'AppLovinMediationSmaatoAdapter'
      pod 'AppLovinMediationTencentGDTAdapter'
      pod 'AppLovinMediationUnityAdsAdapter'
      pod 'AppLovinMediationVerveAdapter'
      pod 'AppLovinMediationMyTargetAdapter'
      pod 'AppLovinMediationYandexAdapter'
      pod 'AppLovinMediationYSONetworkAdapter'
    
    end

    Pangle iOSアダプター バージョン4.9.1.0.0以降、Pangleは中国本土では利用できなくなりました。 中国本土のトラフィックを収益化するには、CSJネットワークを設定し、CSJアダプターを追加してください。 中国本土を除くグローバルトラフィックについては、引き続きPangleを使用して収益化できます。

    Swiftビルド設定

    12.2未満のiOSバージョンでSwiftをサポートするには:

    1. Xcodeプロジェクトのメインターゲットで、File > Build Settings を選択します。
    2. Always Embed Swift Standard LibrariesYes に設定します。

    設定:Always Embed Swift Standard Libraries。AppLovin MAXデモアプリ:Yes。

    App Delegateのwindowプロパティ

    App Delegateファイルのwindowプロパティは削除しないでください。 削除すると、InMobiのSDKがクラッシュする可能性があります。

    @property (nonatomic, strong) UIWindow *window;
    

    Meta Audience Networkのデータ処理オプション

    Limited Data Use(LDU)モードを有効にしない場合は、SetDataProcessingOptions()に空の配列を渡します。

    #import <FBAudienceNetwork/FBAudienceNetwork.h>
    ⋮
    [FBAdSettings setDataProcessingOptions: @[]];
    ⋮
    // Initialize MAX SDK
    

    ユーザーに対してLDUを有効にし、ユーザーの地域を指定するには、以下のようにSetDataProcessingOptions()を呼び出します。

    #import <FBAudienceNetwork/FBAudienceNetwork.h>
    ⋮
    [FBAdSettings setDataProcessingOptions: @[@"LDU"] country: «country» state: «state»];
    ⋮
    // Initialize MAX SDK
    

    Google UMPの使用

    CMPとしてGoogle UMPを使用している場合、ユーザーがMetaに同意したかどうかを判断できます。 そのためには、以下のようなコードを使用します。

    NSNumber *hasMetaConsent = [ALPrivacySettings additionalConsentStatusForIdentifier: 89];
    if ( hasMetaConsent )
    {
      BOOL consentGiven = hasMetaConsent.boolValue;
      // Set Meta Data Processing Options accordingly.
    }
    else
    {
      // AC String is not available on disk. Please check for consent status after the user completes the CMP flow.
    }
    

    カリフォルニア州のユーザー向けのMeta Audience Networkデータ処理オプション

    カリフォルニア州でMeta Audience Networkの「Limited Data Use」フラグを実装する方法については、Meta for Developersのドキュメントを参照してください。

    iOS 14.5以降に向けたMetaの準備

    Audience Network SDK 6.2.1では、以下の重要な要件が導入されています。

    • メディエーションの使用の有無にかかわらず、setAdvertiserTrackingEnabledフラグを実装します。 これにより、パーソナライズされた広告を配信するためにデータを使用できるかどうかがMetaに通知されます。
    • 広告主が広告キャンペーンの成果を測定できるように、Metaが推奨するSKAdNetwork IDをXcodeプロジェクトのInfo.plistに追加します。 統合手順については、SKAdNetworkのドキュメントを参照してください。
    [sdk initializeSdkWithCompletionHandler:^(ALSdkConfiguration *sdkConfiguration)
    {
       if ( @available(iOS 14.5, *) )
       {
         // Note that App transparency tracking authorization can be checked via `sdkConfiguration.appTrackingTransparencyStatus`
         // 1. Set Meta ATE flag here, THEN
       }
    
       // 2. Load ads
    }];
    

    Google AdSense、AdManager、またはAdMobを使用する開発者およびパブリッシャーは、Googleが認定した同意管理プラットフォーム(CMP)を使用する必要があります。 欧州経済領域(EEA)または英国のユーザーに広告を配信する場合、CMPはIABのTransparency and Consent Framework(TCF)と統合されている必要があります。 詳細については、プライバシー:「TCF v2同意」を参照してください。

    Google biddingおよびGoogle AdMob / Google Ad ManagerのアプリIDの追加

    アプリのInfo.plistに、GADApplicationIdentifierキーを追加します。 このキーに、Google biddingおよびGoogle AdMob / Google Ad ManagerのアプリIDの文字列値を設定します。

    GADApplicationIdentifier (String): «YOUR_ADMOB_APP_ID»

    Amazon SDKの初期化

    Amazon Publisher Services SDKは、MAX SDKの外部で初期化する必要があります。

    [[DTBAds sharedInstance] setAppKey: appId];
    [DTBAds sharedInstance].mraidCustomVersions = @[@"1.0", @"2.0", @"3.0"];
    [DTBAds sharedInstance].mraidPolicy = CUSTOM_MRAID;
    

    レポートの不一致を避けるため、最新のAmazon Publisher Servicesアダプターバージョンを使用してください。

    Amazon SDKからのバナーまたはMREC広告のロード

    Amazon広告をMAXに統合するには、まずAmazon広告をロードする必要があります。 MAX広告をロードする前に、DTBAdResponseまたはDTBAdErrorInfoMAAdViewのインスタンスに渡します。 これは、-[MAAdView setLocalExtraParameterForKey:value:]を呼び出すことで実行できます。

    自動更新されるバナー広告の場合、広告のロードは1回のみで十分です。

    @interface ExampleViewController ()<DTBAdCallback>
    ⋮
    @end
    
    @implementation ExampleViewController
    
    - (void)viewDidLoad
    {
      [super viewDidLoad];
    
      NSString *amazonAdSlotId;
      MAAdFormat *adFormat;
    
      if ( UIDevice.currentDevice.userInterfaceIdiom == UIUserInterfaceIdiomPad )
      {
        amazonAdSlotId = @"«Amazon-leader-slot-ID»";
        adFormat = MAAdFormat.leader;
      }
      else
      {
        amazonAdSlotId = @"«Amazon-banner-slot-ID»";
        adFormat = MAAdFormat.banner;
      }
    
      CGSize rawSize = adFormat.size;
      DTBAdSize *size = [[DTBAdSize alloc] initBannerAdSizeWithWidth: rawSize.width
                                                              height: rawSize.height
                                                         andSlotUUID: amazonAdSlotId];
    
      DTBAdNetworkInfo *adNetworkInfo = [[DTBAdNetworkInfo alloc] initWithNetworkName: DTBADNETWORK_MAX];
      DTBAdLoader *adLoader = [[DTBAdLoader alloc] initWithAdNetworkInfo: adNetworkInfo];
      [adLoader setAdSizes: @[size]];
      [adLoader loadAd: self];
    }
    
    - (void)onSuccess:(DTBAdResponse *)adResponse
    {
      // 'adView' is your instance of MAAdView
      [self.adView setLocalExtraParameterForKey: @"amazon_ad_response" value: adResponse];
      [self.adView loadAd];
    } 
    
    - (void)onFailure:(DTBAdError)error dtbAdErrorInfo:(DTBAdErrorInfo *)errorInfo
    {
      // 'adView' is your instance of MAAdView
      [self.adView setLocalExtraParameterForKey: @"amazon_ad_error" value: errorInfo];
      [self.adView loadAd];
    }
    
    @end
    

    Amazon SDKからのインタースティシャル広告のロード

    Amazonインタースティシャル広告をMAXに統合するには、まずAmazon広告をロードする必要があります。 MAX広告をロードする前に、DTBAdResponseまたはDTBAdErrorInfoMAInterstitialAdのインスタンスに渡します。 これは、-[MAInterstitialAd setLocalExtraParameterForKey:value:]を呼び出すことで実行できます。

    セッションごとに1回だけ、AmazonのDTBAdResponseまたはDTBAdErrorInfoをロードしてMAInterstitialAdインスタンスに渡す必要があります。

    #import <AppLovinSDK/AppLovinSDK.h>
    #import <DTBiOSSDK/DTBiOSSDK.h>
    
    @interface ExampleViewController ()<DTBAdCallback>
    ⋮
    @end
    
    @implementation ExampleViewController
    static MAInterstitialAd *interstitialAd;
    static BOOL isFirstLoad;
    
    + (void)initialize
    {
      [super initialize];
    
      interstitialAd = [[MAInterstitialAd alloc] initWithAdUnitIdentifier: @"«MAX-inter-ad-unit-ID»"];
      isFirstLoad = YES;
    }
    
    - (void)loadAd
    {
      // If first load - load ad from Amazon's SDK, then load ad for MAX
      if ( isFirstLoad )
      {
        isFirstLoad = NO;
    
        DTBAdNetworkInfo *adNetworkInfo = [[DTBAdNetworkInfo alloc] initWithNetworkName: DTBADNETWORK_MAX];
        DTBAdLoader *adLoader = [[DTBAdLoader alloc] initWithAdNetworkInfo: adNetworkInfo];
        [adLoader setAdSizes: @[
          [[DTBAdSize alloc] initInterstitialAdSizeWithSlotUUID: @"«Amazon-inter-slot-ID»"]
        ]];
        [adLoader loadAd: self];
      }
      else
      {
        [interstitialAd loadAd];
      }
    }
    
    - (void)onSuccess:(DTBAdResponse *)adResponse
    {
      // 'interstitialAd' is your instance of MAInterstitialAd
      [interstitialAd setLocalExtraParameterForKey: @"amazon_ad_response" value: adResponse];
      [interstitialAd loadAd];
    }
    
    - (void)onFailure:(DTBAdError)error dtbAdErrorInfo:(DTBAdErrorInfo *)errorInfo
    {
      // 'interstitialAd' is your instance of MAInterstitialAd
      [interstitialAd setLocalExtraParameterForKey: @"amazon_ad_error" value: errorInfo];
      [interstitialAd loadAd];
    }
    
    @end
    

    Amazon SDKからの動画インタースティシャル広告のロード

    Amazonインタースティシャル広告をMAXに統合するには、まずAmazon広告をロードする必要があります。 MAX広告をロードする前に、DTBAdResponseまたはDTBAdErrorInfoMAInterstitialAdのインスタンスに渡します。 これは、-[MAInterstitialAd setLocalExtraParameterForKey:value:]を呼び出すことで実行できます。

    セッションごとに1回だけ、AmazonのDTBAdResponseまたはDTBAdErrorInfoをロードしてMAInterstitialAdインスタンスに渡す必要があります。

    #import <AppLovinSDK/AppLovinSDK.h>
    #import <DTBiOSSDK/DTBiOSSDK.h>
    
    @interface ExampleViewController ()<DTBAdCallback>
    ⋮
    @end
    
    @implementation ExampleViewController
    static MAInterstitialAd *interstitialAd;
    static BOOL isFirstLoad;
    
    + (void)initialize
    {
      [super initialize];
    
      interstitialAd = [[MAInterstitialAd alloc] initWithAdUnitIdentifier: @"«MAX-inter-ad-unit-ID»"];
      isFirstLoad = YES;
    }
    
    - (void)loadAd
    {
      // If first load - load ad from Amazon's SDK, then load ad for MAX
      if ( isFirstLoad )
      {
        isFirstLoad = NO;
    
        DTBAdNetworkInfo *adNetworkInfo = [[DTBAdNetworkInfo alloc] initWithNetworkName: DTBADNETWORK_MAX];
        DTBAdLoader *adLoader = [[DTBAdLoader alloc] initWithAdNetworkInfo: adNetworkInfo];
    
        // Switch video player width and height values(320, 480) depending on device orientation
        [adLoader setAdSizes: @[
          [[DTBAdSize alloc] initVideoAdSizeWithPlayerWidth: 320 height: 480 andSlotUUID:@"«Amazon-video-inter-slot-ID»"]
        ]];
        [adLoader loadAd: self];
      }
      else
      {
        [interstitialAd loadAd];
      }
    }
    
    - (void)onSuccess:(DTBAdResponse *)adResponse
    {
      // 'interstitialAd' is your instance of MAInterstitialAd
      [interstitialAd setLocalExtraParameterForKey: @"amazon_ad_response" value: adResponse];
      [interstitialAd loadAd];
    }
    
    - (void)onFailure:(DTBAdError)error dtbAdErrorInfo:(DTBAdErrorInfo *)errorInfo
    {
      // 'interstitialAd' is your instance of MAInterstitialAd
      [interstitialAd setLocalExtraParameterForKey: @"amazon_ad_error" value: errorInfo];
      [interstitialAd loadAd];
    }
    
    @end
    

    Amazon SDKからの動画リワード広告のロード

    Amazon動画リワード広告をMAXに統合するには、まずAmazon広告をロードする必要があります。 MAX広告をロードする前に、DTBAdResponseまたはDTBAdErrorInfoMARewardedAdのインスタンスに渡します。 これは、-[MARewardedAd setLocalExtraParameterForKey:value:]を呼び出すことで実行できます。

    AmazonのDTBAdResponseまたはDTBAdErrorInfoをロードしてMARewardedAdインスタンスに渡すのは、1回のみにする必要があります。

    #import <AppLovinSDK/AppLovinSDK.h>
    #import <DTBiOSSDK/DTBiOSSDK.h>
    
    @interface ExampleViewController ()<DTBAdCallback>
    ⋮
    @end
    
    @implementation ExampleViewController
    static MARewardedAd *rewardedAd;
    static BOOL isFirstLoad;
    
    + (void)initialize
    {
      [super initialize];
    
      rewardedAd = [MARewardedAd sharedWithAdUnitIdentifier: @"«MAX-rewarded-ad-unit-ID»"];
      isFirstLoad = YES;
    }
    
    - (void)loadAd
    {
      // If first load - load ad from Amazon's SDK, then load ad for MAX
      if ( isFirstLoad )
      {
        isFirstLoad = NO;
    
        DTBAdNetworkInfo *adNetworkInfo = [[DTBAdNetworkInfo alloc] initWithNetworkName: DTBADNETWORK_MAX];
        DTBAdLoader *adLoader = [[DTBAdLoader alloc] initWithAdNetworkInfo: adNetworkInfo];
    
        // Switch video player width and height values(320, 480) depending on device orientation
        [adLoader setAdSizes: @[
          [[DTBAdSize alloc] initVideoAdSizeWithPlayerWidth: 320 height: 480 andSlotUUID:@"«Amazon-video-rewarded-slot-ID»"]
        ]];
        [adLoader loadAd: self];
      }
      else
      {
        [rewardedAd loadAd];
      }
    }
    
    - (void)onSuccess:(DTBAdResponse *)adResponse
    {
      // 'rewardedAd' is your instance of MARewardedAd
      [rewardedAd setLocalExtraParameterForKey: @"amazon_ad_response" value: adResponse];
      [rewardedAd loadAd];
    }
    
    - (void)onFailure:(DTBAdError)error dtbAdErrorInfo:(DTBAdErrorInfo *)errorInfo
    {
      // 'rewardedAd' is your instance of MARewardedAd
      [rewardedAd setLocalExtraParameterForKey: @"amazon_ad_error" value: errorInfo];
      [rewardedAd loadAd];
    }
    
    @end
    

    Amazon Publisher Servicesのテスト

    AppLovinは、AmazonのSDKでテストモードを有効にすることを推奨しています。 これにより、テスト広告を受け取ることができます。 以下の呼び出しを行うことでテストモードを有効にします。

    [[DTBAds sharedInstance] setLogLevel: DTBLogLevelAll];
    [[DTBAds sharedInstance] setTestMode: YES];
    

    ウォーターフォールをフィルタリングして、Amazon広告のみを含めるようにすることができます。 これを行うには、Mediation DebuggerSelect Live Network に移動し、Amazonネットワークを選択します。

    App Transport Securityの無効化

    App Transport Security(ATS)を無効にするには、アプリのInfo.plistNSAppTransportSecurityを追加します。 次に、キーNSAllowsArbitraryLoadsを追加し、そのBoolean値をYESに設定します。 このキーのみが存在することを確認してください。

    App Transport Security Settings (Dictionary): 1 item. Allow Arbitrary Loads (Boolean): YES.

    SKAdNetwork

    統合手順については、SKAdNetworkのドキュメントを参照してください。

    新しいpodのインストール

    コマンドラインで以下を実行します。

    pod install --repo-update
    

    アダプターネットワーク情報

    読み込み中...


search