Не могу показать видеообъявления от Smaato Ads для моего приложения для Android

Я пытаюсь внедрить Smaato Video Ads в свое приложение для Android. Я следовал инструкциям на странице Smaato и в примере приложения Smaato, но пока не могу показать видеообъявления Smaato. Код, который, по-видимому, должен отображать видеорекламу в полноэкранном режиме:

private static Video smaatoVideoAd; // A Smaato Video global variable

smaatoVideoAd = new Video(this.getApplicationContext());
smaatoVideoAd.getAdSettings().setPublisherId(0); //int of 0 is supposedly a test mode
//smaatoVideoAd.getAdSettings().setPublisherId(PublisherID);
smaatoVideoAd.getAdSettings().setAdspaceId(0);  //int of 0 is supposedly a test mode
//smaatoVideoAd.getAdSettings().setAdspaceId(VideoAd_ID);
smaatoVideoAd.setVastAdListener(this);
smaatoVideoAd.setAutoCloseDuration(5);
smaatoVideoAd.disableAutoClose(true);
smaatoVideoAd.setVideoSkipInterval(3);
} // End of onCreate

// Called when the video has been loaded.
@Override
public void onReadyToShow() {
    // Call this when you want to show the video ad.
    smaatoVideoAd.show();
}

@Override
    public void onWillShow() {
    // Called when the ad will show.
}

@Override
public void onWillOpenLandingPage() {
    // Called when the banner has been clicked.
}

@Override
public void onWillClose() {
    // Called when Interstitial ad will be closed.
}

@Override
public void onFailedToLoadAd() {
    // called when video failed to load.
}

Библиотеки Smaato для build.gradle были настроены, и это довольно просто и кратко:

 repositories {
 ...
     flatDir {
         dirs 'libs'
     }
 ...
 }

 dependencies {
 ...
     implementation name:'SOMAAndroid-9.1.3-release', ext:'aar'
 ...
 }

И в AndroidManifest.xml:

 <uses-permission android:name="android.permission.INTERNET" />
 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

 <uses-feature android:name="android.hardware.location.gps" />
 <uses-feature android:name="android.hardware.location.network" />

 <meta-data android:name=”com.google.android.gms.version” android:value=”@integer/google_play_services_version”/>
 <activity android:name="com.smaato.soma.interstitial.InterstitialActivity" android:resizeableActivity="false" android:screenOrientation="landscape" />
 <activity android:name="com.smaato.soma.video.VASTAdActivity" android:resizeableActivity="false" android:screenOrientation="landscape" />
 <activity android:name="com.smaato.soma.ExpandedBannerActivity" android:resizeableActivity="false" android:screenOrientation="landscape" />

Кроме того, Smaato заявляет, что: «Начиная с версии 8.0.0, Smaato Android SDK содержит процедуру автоматической инициализации. Поэтому издателям не нужно вручную вызывать дополнительный метод инициализации SDK».

Но запуск этого кода дает мне следующее предупреждение в Logcat:

SOMA_VIDEO: видео должно быть загружено перед показом

Таким образом, добавление видео вообще не загружается. Что мне здесь не хватает? Вы можете помочь мне? Спасибо.


person Carlos Botero    schedule 24.12.2018    source источник


Ответы (1)


Решено! Видимо, у меня был неправильный порядок следования. При таком порядке предупреждение в Logcat исчезает:

    smaatoVideoAd = new Video(this.getApplicationContext());
    smaatoVideoAd.setVastAdListener(this);
    smaatoVideoAd.setAutoCloseDuration(3);
    smaatoVideoAd.disableAutoClose(false);
    smaatoVideoAd.setVideoSkipInterval(1);

    smaatoVideoAd.getAdSettings().setPublisherId(0); // Trial Publisher Id: 0
    smaatoVideoAd.getAdSettings().setAdspaceId(3090); // Trial Adspace Id for video: 3090
    smaatoVideoAd.asyncLoadNewBanner();

Обратите внимание, что код для видеообъявления Smaato в пробном режиме — 3090, а не 0. Кроме того, я поместил рекламу Smaato в новое действие, поэтому закрытие объявления закроет дочернее действие, а не мое основное.

person Carlos Botero    schedule 11.01.2019