0

我尝试根据他们网站上提供的这些文档来整合插页式广告。但是广告没有加载。

这是我的代码,

import android.content.Intent
import android.content.pm.PackageManager
import android.os.AsyncTask
import android.os.Build
import android.os.Bundle
import android.preference.PreferenceManager
import android.util.Log
import android.view.View
import android.widget.Button
import androidx.annotation.NonNull
import androidx.appcompat.app.AppCompatActivity
import com.smaato.sdk.core.Config
import com.smaato.sdk.core.SmaatoSdk
import com.smaato.sdk.core.log.LogLevel
import com.smaato.sdk.interstitial.EventListener
import com.smaato.sdk.interstitial.Interstitial
import com.smaato.sdk.interstitial.InterstitialAd
import com.smaato.sdk.interstitial.InterstitialError
import com.smaato.sdk.interstitial.InterstitialRequestError
import kotlinx.android.synthetic.main.activity_download_page.*

class DownloadPageActivity : AppCompatActivity() {

    private val TAG = "DownloadPageActivity"
    lateinit var bannerView: BannerView
    lateinit var newspaperList: NewspaperList
    lateinit var tagOfCardClicked: String
    lateinit var pdfLinks: MutableList<String>
    lateinit var dates: MutableList<String>
    lateinit var date: Date
    var tagOfButtonClicked: Int = 0
    var result: String = ""

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        /*val config: Config = Config.builder() // log errors only
            .setLogLevel(LogLevel.ERROR) // allow HTTPS traffic only
            .setHttpsOnly(true)
            .build()
        SmaatoSdk.init(application, config, "1100046327")
        SmaatoSdk.setGPSEnabled(true)*/

        setContentView(R.layout.activity_download_page)

        newspaperList = NewspaperList()
        pdfLinks = mutableListOf()
        dates = mutableListOf()

        val bundle = intent.extras
        tagOfCardClicked = bundle!!.getString("card_clicked")!!

        title_text_downloadpage.text = newspaperList.getNewspaper(tagOfCardClicked.toInt()).title
    }

    fun buttonClicked(view: View) {
        tagOfButtonClicked = Integer.parseInt(view.tag.toString())
        println("Button clicked + ${view.resources.getResourceName(view.id)}")

        Interstitial.loadAd("130626426", eventListener)
    }

    val eventListener = object : EventListener {
        override fun onAdImpression(p0: InterstitialAd) {
            Log.i(TAG, "onAdImpression-> $p0 ")
        }

        override fun onAdTTLExpired(p0: InterstitialAd) {
            Log.i(TAG, "onAdTTLExpired-> $p0 ")
        }

        override fun onAdClicked(p0: InterstitialAd) {
            Log.i(TAG, "onAdClicked-> $p0 ")
        }

        override fun onAdFailedToLoad(p0: InterstitialRequestError) {
            Log.i(TAG, "onAdFailedToLoad -> $p0")
        }

        override fun onAdLoaded(@NonNull interstitialAd: InterstitialAd) {
            Log.i(TAG, "Interstitial ad loaded")
            interstitialAd.setBackgroundColor(-0xedcbaa)
            interstitialAd.showAd(DownloadPageActivity())
        }

        override fun onAdOpened(p0: InterstitialAd) {
            Log.i(TAG, "onAdOpened-> $p0 ")
        }

        override fun onAdClosed(p0: InterstitialAd) {
            val intent = Intent(applicationContext, WebViewActivity::class.java)
            intent.putExtra("pdf_link", pdfLinks[tagOfButtonClicked - 1])
            Log.i(TAG, "onAdClosed-> $p0 ")
            startActivity(intent)
        }

        override fun onAdError(p0: InterstitialAd, p1: InterstitialError) {
            Log.i(TAG, "onAdError-> $p0 ")
        }
    }
}

这是我得到的日志报告,

I/DownloadPageActivity: onAdFailedToLoad -> com.smaato.sdk.interstitial.InterstitialRequestError@d7e0f16

我正在使用测试 ID 加载广告。我曾尝试在模拟器和真实设备上加载广告,但没有任何进展。我找不到任何文章、教程、博客以及与此错误相关的任何内容。

4

1 回答 1

0

请检查onAdFailedToLoad中的错误代码:

public void onAdFailedToLoad(@NonNull InterstitialRequestError interstitialRequestError) {
            Timber.e("InterstitialAd -> onAdFailedToLoad -> interstitialRequestError : "+interstitialRequestError.getInterstitialError());
            
        }

您在onAdFailedToLoad收到什么错误消息?

interstitialRequestError:[NO_AD_AVAILABLE]:当前没有与请求的参数匹配的广告。请稍后再试。

上面的错误消息现在显示填充率为 0,但实现没有任何问题。广告可能会在稍后的某个时间加载。

注意: 在某些广告服务提供商的情况下,广告填充率取决于用户流量

或者

你可以做什么通过测试单元检查你的实现

  • 使用测试发布者 ID 更改发布者 ID

  • 具有测试广告 ID 的广告单元

    公共类 SmaatoConfig {

     public static boolean ADS_ENABLE = true;
    
     private static String LIVE_PUBLISHER_ID = "Your...";
     private static String LIVE_BANNER_ID = "Your...";
     private static String LIVE_INTERSTITIAL_ID_SKIP = "Your...";
     private static String LIVE_INTERSTITIAL_ID_NON_SKIP = "Your...";
    
     private static String TEST_PUBLISHER_ID = "SMAATO_PUBLISHER_ID";
     private static String TEST_BANNER_ID_RICH_MEDIA = "130626424"; //Banner / Med-rect / Leaderboard / Skyscraper
     private static String TEST_BANNER_ID_STATIC_IMAGE = "130635694"; //Banner / Med-rect / Leaderboard / Skyscraper
     private static String TEST_BANNER_ID_MARID = "130635706"; //Banner / Med-rect / Leaderboard / Skyscraper
     private static String TEST_BANNER_ID_RICH_MEDIA_VIDEO = "130626426"; //Interstitial (Video with an end-card + Rich Media Interstitial for 320×480, 480×320, 1024×768 & 768×1024)
     private static String TEST_VIDEO_ID = "130626427"; //Skippable Video
     private static String TEST_REWARDED_ID = "130626428"; //Rewarded Video
     private static String TEST_REWARDED_WITH_OUT_END_CARD_ID = "130635048"; //Rewarded Video without an end-card
     private static String TEST_Native_ID = "130783664"; //Native with static image main creative
    
    
     //===============================================
    
     //Live Only
     /*public static String PUBLISHER_ID = LIVE_PUBLISHER_ID;
     public static String BANNER_ID = LIVE_BANNER_ID;
     public static String INTERSTITIAL_ID_SKIP = LIVE_INTERSTITIAL_ID_SKIP;
     public static String INTERSTITIAL_ID_NON_SKIP = LIVE_INTERSTITIAL_ID_NON_SKIP;*/
    
     //Test Only
     public static String PUBLISHER_ID = TEST_PUBLISHER_ID;
     public static String BANNER_ID = TEST_BANNER_ID_STATIC_IMAGE;
     public static String INTERSTITIAL_ID_SKIP = TEST_VIDEO_ID;
     public static String INTERSTITIAL_ID_NON_SKIP = TEST_REWARDED_WITH_OUT_END_CARD_ID;
    

    }

我希望它会帮助你。如果它对您有用,请不要忘记回复解决方案,只需添加您的评论并投票即可。所以对其他人也有帮助。

:) 一切顺利 !

于 2020-08-02T03:17:57.380 回答