Ad Exchangeネイティブ広告の導入 - united-adstir/AdStir-Integration-Guide-Android GitHub Wiki

こちらの変更履歴をご覧になってから導入を開始してください。

adstir SDK 2.14.6以上をご利用する場合はAndroidXへの移行が必要です。こちらを参考にAndroidXへ移行をお願いいたします。

SDKを更新する際はパッケージに含まれる全てのSDKを更新してください。 バージョンの異なるSDKをご利用の場合、正常に動作しない可能性があります。

対応OS

Android 4.4 以上

  • VideoController.VideoLifecycleCallbacks クラスを使って、動画アセットのライフサイクルでイベントが発生したときに通知を受け取ることができない仕様となっております。 https://developers.google.com/ad-manager/mobile-ads-sdk/android/native/advanced?hl=ja#videocontroller
  • google mobile ads 15.0.0 以上で利用してください(15.0.0未満のバージョンでは、ビルドはできますが、実行することができない仕様となっております)

対応提携ネットワークについて

対応提携ネットワークについてはこちらをご覧ください。

利用準備

初期設定

初期設定をご覧になり、adstir SDKをプロジェクトへ導入してください。 対応提携ネットワークを導入する場合はこちらを参考に対応提携ネットワークを導入してください。

プロジェクトの設定

ProGuardの設定

Proguardを使用しているアプリには導入した対応提携ネットワークの各Proguardもしくは、 動画視聴型広告使用時のProguard設定の追加をお願いいたします。

SDKの実装例

  • MainActivty.java
// 下記のインポートが必要です
import com.google.android.gms.ads.AdListener;
import com.google.android.gms.ads.AdLoader;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.formats.MediaView;
import com.google.android.gms.ads.formats.UnifiedNativeAd;
import com.google.android.gms.ads.formats.UnifiedNativeAdView;

public class MainActivity extends AppCompatActivity {
    private AdLoader customEventNativeLoader;
    //各自idを設定する
    private String customevent_native_ad_unit_id = "";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_admob_native_custom);

        customEventNativeLoader = new AdLoader.Builder(this,
                customevent_native_ad_unit_id)
                .forUnifiedNativeAd(new UnifiedNativeAd.OnUnifiedNativeAdLoadedListener() {
                    @Override
                    public void onUnifiedNativeAdLoaded(UnifiedNativeAd unifiedNativeAd) {
                        FrameLayout frameLayout =
                                (FrameLayout) findViewById(R.id.customeventnative_framelayout);
                        UnifiedNativeAdView adView = (UnifiedNativeAdView) getLayoutInflater()
                                .inflate(R.layout.ad_unified, null);

                        populateUnifiedNativeAdView(unifiedNativeAd, adView);
                        frameLayout.removeAllViews();
                        frameLayout.addView(adView);
                    }
                })
                .withAdListener(new AdListener() {
                    @Override
                    public void onAdFailedToLoad(int errorCode) {
                        Toast.makeText(AdMobNativeCustomActivity.this,
                                "Custom event native ad failed with code: " + errorCode,
                                Toast.LENGTH_SHORT).show();
                    }
                }).build();

        customEventNativeLoader.loadAd(new AdRequest.Builder().build());
        
    }
                    
    private void populateUnifiedNativeAdView(UnifiedNativeAd nativeAd, UnifiedNativeAdView adView) {

        MediaView mediaView = adView.findViewById(R.id.ad_media);
        adView.setMediaView(mediaView);
        // Set other ad assets.
        adView.setBodyView(adView.findViewById(R.id.ad_body));

        if (nativeAd.getBody() == null) {
            adView.getBodyView().setVisibility(View.INVISIBLE);
        } else {
            adView.getBodyView().setVisibility(View.VISIBLE);
            ((TextView) adView.getBodyView()).setText(nativeAd.getBody());
        }

        adView.setNativeAd(nativeAd);
    }
}

詳細はgoogleのドキュメントをご覧ください。