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

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

MAX mediationアダプターは、以下の3つの方法のいずれかでアプリにダウンロードして統合できます。

CocoaPods
AppLovinはこの方法での統合を推奨しています。 AppLovinのアダプターのpodは、メディエーション対象ネットワークのSDKとその依存関係を自動的に統合します。
Swift Package Manager
各アダプターは、専用のリポジトリで独自のSwiftパッケージとして配布されています。SPMは、AppLovinSDKを含むアダプターの依存関係を自動的に解決します。
オープンソースアダプター
統合においてより高い柔軟性が必要な場合は、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: @[]];
    ⋮
    // MAX SDKを初期化する
    

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

    #import <FBAudienceNetwork/FBAudienceNetwork.h>
    ⋮
    [FBAdSettings setDataProcessingOptions: @[@"LDU"] country: «country» state: «state»];
    ⋮
    // MAX SDKを初期化する
    

    Google UMPの使用

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

    NSNumber *hasMetaConsent = [ALPrivacySettings additionalConsentStatusForIdentifier: 89];
    if ( hasMetaConsent )
    {
      BOOL consentGiven = hasMetaConsent.boolValue;
      // それに応じてMeta Data Processing Optionsを設定します。
    }
    else
    {
      // AC文字列がディスク上に存在しません。ユーザーがCMPフローを完了した後に同意ステータスを確認してください。
    }
    

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

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

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

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

    • mediationの使用の有無にかかわらず、setAdvertiserTrackingEnabledフラグを実装します。 これにより、パーソナライズされた広告を配信するためにデータを使用できるかどうかがMetaに通知されます。
    • 広告主が広告キャンペーンの成果を測定できるように、Metaが推奨するSKAdNetwork IDをXcodeプロジェクトのInfo.plistに追加します。 統合手順については、SKAdNetworkドキュメントを参照してください。
    [sdk initializeSdkWithCompletionHandler:^(ALSdkConfiguration *sdkConfiguration)
    {
       if ( @available(iOS 14.5, *) )
       {
         // App Tracking Transparencyのトラッキング許可は `sdkConfiguration.appTrackingTransparencyStatus` を介して確認できます。
         // 1. ここでMeta ATEフラグを設定し、その後:
       }
    
       // 2. 広告をロードする
    }];
    

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

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

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

    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からbannerまたはMREC広告をロードする

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

    自動更新されるbanner広告の場合、広告のロードは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' は MAAdView のインスタンスです
      [self.adView setLocalExtraParameterForKey: @"amazon_ad_response" value: adResponse];
      [self.adView loadAd];
    } 
    
    - (void)onFailure:(DTBAdError)error dtbAdErrorInfo:(DTBAdErrorInfo *)errorInfo
    {
      // 'adView' は MAAdView のインスタンスです
      [self.adView setLocalExtraParameterForKey: @"amazon_ad_error" value: errorInfo];
      [self.adView loadAd];
    }
    
    @end
    

    AmazonのSDKからinterstitial広告をロードする

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

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

    #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
    {
      // 初回ロードの場合 - AmazonのSDKから広告をロードし、その後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' は MAInterstitialAd のインスタンスです
      [interstitialAd setLocalExtraParameterForKey: @"amazon_ad_response" value: adResponse];
      [interstitialAd loadAd];
    }
    
    - (void)onFailure:(DTBAdError)error dtbAdErrorInfo:(DTBAdErrorInfo *)errorInfo
    {
      // 'interstitialAd' は MAInterstitialAd のインスタンスです
      [interstitialAd setLocalExtraParameterForKey: @"amazon_ad_error" value: errorInfo];
      [interstitialAd loadAd];
    }
    
    @end
    

    AmazonのSDKから動画interstitial広告をロードする

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

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

    #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
    {
      // 初回ロードの場合 - AmazonのSDKから広告をロードし、その後MAXの広告をロードします
      if ( isFirstLoad )
      {
        isFirstLoad = NO;
    
        DTBAdNetworkInfo *adNetworkInfo = [[DTBAdNetworkInfo alloc] initWithNetworkName: DTBADNETWORK_MAX];
        DTBAdLoader *adLoader = [[DTBAdLoader alloc] initWithAdNetworkInfo: adNetworkInfo];
    
        // デバイスの向きに応じて、動画プレイヤーの幅と高さの値 (320, 480) を切り替えます
        [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' は MAInterstitialAd のインスタンスです
      [interstitialAd setLocalExtraParameterForKey: @"amazon_ad_response" value: adResponse];
      [interstitialAd loadAd];
    }
    
    - (void)onFailure:(DTBAdError)error dtbAdErrorInfo:(DTBAdErrorInfo *)errorInfo
    {
      // 'interstitialAd' は MAInterstitialAd のインスタンスです
      [interstitialAd setLocalExtraParameterForKey: @"amazon_ad_error" value: errorInfo];
      [interstitialAd loadAd];
    }
    
    @end
    

    AmazonのSDKからrewarded動画広告をロードする

    Amazon rewarded動画を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
    {
      // 初回ロードの場合 - AmazonのSDKから広告をロードし、その後MAXの広告をロードします
      if ( isFirstLoad )
      {
        isFirstLoad = NO;
    
        DTBAdNetworkInfo *adNetworkInfo = [[DTBAdNetworkInfo alloc] initWithNetworkName: DTBADNETWORK_MAX];
        DTBAdLoader *adLoader = [[DTBAdLoader alloc] initWithAdNetworkInfo: adNetworkInfo];
    
        // デバイスの向きに応じて、動画プレイヤーの幅と高さの値 (320, 480) を切り替えます
        [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' は MARewardedAd のインスタンスです
      [rewardedAd setLocalExtraParameterForKey: @"amazon_ad_response" value: adResponse];
      [rewardedAd loadAd];
    }
    
    - (void)onFailure:(DTBAdError)error dtbAdErrorInfo:(DTBAdErrorInfo *)errorInfo
    {
      // 'rewardedAd' は 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
    

    Swift Package Manager

    各アダプターは、専用のリポジトリで独自のSwiftパッケージとして提供されています。アダプターを統合するには、Xcodeで以下を行います。

    1. File > Add Package Dependencies… をクリックします。
    2. アダプターのリポジトリURLを入力し、パッケージが表示されたら選択します。
    3. Dependency RuleをそのリポジトリのReleases(タグ)ページに記載されているエンコードされたバージョンに設定し、Add to Projectをアプリのターゲットに設定します。
    4. Add Packageをクリックしてアダプターを統合します。

    各アダプターのURLについては、以下の表を参照してください。

    すべてのMAXアダプターはAppLovinSDKに依存しています。プロジェクトは、2つのパッケージマネージャーを同時に使用してAppLovinSDKを統合することはできません。いずれかのアダプターでSPMを採用した場合は、AppLovinSDKおよび他のすべてのアダプターもSPMを通じて管理してください。これらのコンポーネントにSPMとCocoaPodsの両方を使用すると、AppLovinSDKの重複リンクやバージョンの競合が発生します。

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

    読み込み中...


    search