Невозможно отобразить видеообъявления от 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 libs для 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, SDK Smaato для Android содержит процедуру автоматической инициализации. Поэтому издателям нет необходимости вручную вызывать дополнительный метод инициализации SDK".

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

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

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

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 в новое действие, поэтому закрытие объявления закроет дочернее действие, а не мое основное.

Другие вопросы по тегам