Skip to content

App Transport Security(ATS)への対応

yuji-morita edited this page Dec 21, 2018 · 20 revisions

AdStirのSDKは、v2.5.10よりApp Transport Securityに対応しております。

ATSへの対応方法

AdStir SDKのv2.5.10以降では、自動的にAdStirからのリクエストをすべてSSLを用いて行います。 デベロッパー様は、最新版のSDKに差し替えて頂くだけで、特別な改修は必要ありません。 ただし、弊社以外がリリースしているSDKを含む場合においてはその限りではございませんので、各広告メニュー毎のドキュメントに記載の注釈を必ずご覧下さい。

ATS対応における制限

ATSが有効なiOS9以降のOSでは、すべてのネットワーク通信がSSL経由で行われる必要があります。 そのため、AdStirがATSに対応していても、対応提携ネットワークやデベロッパー様が用意されたカスタムネットワークのタグがSSLに対応していない場合、広告の配信が正常に行われません。

カスタムネットワークにおけるATS

デベロッパー様の用意されたカスタムネットワークの広告タグにつきましては、AdStirのシステムはSSLに対応しているものとして配信いたします。 ですが、前述の通りSSLに対応していない広告タグはiOS9以降の端末では正常に広告が表示されないため、SSLに対応した広告タグに差し替えていただく必要がございます。

ただし、万が一非対応の広告タグが配信され、広告が正常に表示できなかった場合などには、AdStirの広告在庫検知機能により、自動的にAdStir CPCの広告が配信されますので、収益機会の損失を抑えることができます。

動画リワード広告やメディエーションSDK等、第3者のSDKをご利用の場合

動画リワード広告やメディエーションSDKをご利用の場合、同時に利用されるネットワークのSDKによっては、ATSに対応していない場合がございます。 その際、それらのネットワークの広告を表示するためには、ATSを無効化する必要があります。 詳しくは、動画リワード広告やフルスクリーンインタースティシャル広告の場合には該当のドキュメントを、メディエーションSDKの場合は、ご契約されているネットワークに、お問い合わせください。

WebViewへの掲載方法

独自にWebViewを作成して掲載する場合、下記のいずれかに対応する必要があります。

  • 掲載するページがhttpsであること より正確には、JavaScriptでwindow.location.protocolを評価した結果が"http:"の文字列となること
  • 呼び出しパラメータのadstir_vars.secureにtrueが設定されていること

具体的には、下記のような記述になっていれば、ATSに対応が可能です。

    <script type="text/javascript">
    var adstir_vars = {
        ver     : "4.0",
        app_id  : "MEDIA-9876abcd", // 適切なパラメータに変更してください
        ad_spot : 99,               // 適切なパラメータに変更してください
        center  : false,
        secure  : true              // このパラメータを追加する
    };
    </script>
    <script type="text/javascript" src="https://js.ad-stir.com/js/adstir.js?20130527"></script>

メディエーションSDKを利用する場合

メディエーションSDKを利用されている場合、ATSには対応しておりません。 iOS9以降で動作させるアプリを作成される場合には、下記のATSの無効化が必要です。

SSL通信の無効化

v2.5.10以降のAdStir SDKは、設定を変更することでSSL通信を無効化できます。 ただし、特別な事情が無い限り、この設定はお勧めいたしません。

■Objective-Cの場合

    [AdstirConfig setSSLModeEnabled:NO];

■Swiftの場合

    AdstirConfig.setSSLModeEnabled(false)

ATSの無効化(非推奨)

ビルド時の設定によりATSを無効化するには、下記の手順を実行します。 プロジェクト内にある、Info.plistファイルをSource Codeモードで開き、下記の記述を追加します。

    <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
    </dict>

この設定は、iOS9から強化されたセキュリティを無効にする方法であるため、最終手段としてお使いいただく事をお勧めいたします。

Clone this wiki locally