首页 > 解决方案 > 点击奖励视频链接没有任何反应?

问题描述

我的应用中有 admob 奖励视频。问题是,当我在文本视图中单击以显示广告时,什么也没有发生。

public RewardedVideoAd mRewardedVideoAd;




MobileAds.initialize(this, "ca-app-pub-3940256099942544/5224354917");

    // Use an activity context to get the rewarded video instance.
    mRewardedVideoAd = MobileAds.getRewardedVideoAdInstance(this);
    mRewardedVideoAd.setRewardedVideoAdListener(this);



tip.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                    loadRewardedVideo();
            }
        });

和覆盖...

 @Override
    public void onRewardedVideoAdLoaded() {
        System.out.println("Loaded()");
    }

    @Override
    public void onRewardedVideoAdOpened() {
        System.out.println("Opened");
    }

    @Override
    public void onRewardedVideoStarted() {
        System.out.println("Started");
    }

    @Override
    public void onRewardedVideoAdClosed() {
        System.out.println("Closed");
    }

    @Override
    public void onRewarded(RewardItem rewardItem) {
        System.out.println("reward");
    }

    @Override
    public void onRewardedVideoAdLeftApplication() {
        System.out.println("left");
    }

    @Override
    public void onRewardedVideoAdFailedToLoad(int i) {
        System.out.println("failed");
    }

    @Override
    public void onRewardedVideoCompleted() {

    }


    private void loadRewardedVideo() {
            mRewardedVideoAd.loadAd("ca-app-pub-3940256099942544/5224354917",
                    new AdRequest.Builder().build());
        }

我错过了什么?这里有什么问题?谢谢。


输出

I/Ads: This request is sent from a test device.
D/dalvikvm: GC_FOR_ALLOC freed 1654K, 22% free 7281K/9236K, paused 9ms, total 10ms
I/Ads: SDK version: afma-sdk-a-v15000000.15000000.0
D/dalvikvm: GC_FOR_ALLOC freed 1478K, 27% free 6773K/9236K, paused 8ms, total 8ms
D/dalvikvm: GC_FOR_ALLOC freed 1109K, 25% free 6979K/9236K, paused 10ms, total 11ms
D/EGL_emulation: eglMakeCurrent: 0xb7aa9b10: ver 2 0
E/EGL_emulation: tid 1994: eglSurfaceAttrib(1199): error 0x3009 (EGL_BAD_MATCH)
W/HardwareRenderer: Backbuffer cannot be preserved
W/AwContents: nativeOnDraw failed; clearing to background color.
I/ExoPlayerImpl: Init ExoPlayerLib/2.4.2 [generic_x86, Android SDK built for x86, unknown, 19]
I/chromium: [INFO:async_pixel_transfer_manager_android.cc(56)] Async pixel transfers not supported
D/gralloc_ranchu: gralloc_alloc: Creating ashmem region of size 589824
D/gralloc_ranchu: gralloc_alloc: Creating ashmem region of size 98304
D/gralloc_ranchu: gralloc_alloc: Creating ashmem region of size 98304
D/MetadataUtil: Skipped unknown metadata entry: gsst
    Skipped unknown metadata entry: gstd
D/MediaCodecVideoRenderer: FalseCheck [legacyFrameSize, 640x360] [generic_x86, Android SDK built for x86, unknown, 19]
    FalseCheck [legacyFrameSize, 640x360] [generic_x86, Android SDK built for x86, unknown, 19]
I/OMXClient: Using client-side OMX mux.
I/SoftAAC2: Reconfiguring decoder: 0->44100 Hz, 0->2 channels
D/dalvikvm: GC_FOR_ALLOC freed 1284K, 25% free 6998K/9236K, paused 16ms, total 16ms
I/System.out: Loaded()

我也在一个真实的设备上进行了测试,也没有任何反应。

标签: androidadmob

解决方案


在我的应用程序上成功运行奖励广告近 1.5 年后,我也试图寻找同样问题的原因。甚至我的帐户也被封锁了,但没有人告诉我早期的奖励库已完全改版。

以下步骤可能仅适用于 Play 商店中的应用程序。

有一个新的奖励广告库和一种新的实施方式。Google 在 inAppBilling 库中引入了 rewardAds,将其与 Admobs 完全分开。你只能在那里看到它的收益。您必须通过 Play 控制台实现它。

  • 转到 Play 控制台>您的应用程序>商店状态>奖励产品
  • 第一次接受协议。
  • 创建任何产品,就像您在此处创建任何其他应用内购买产品一样。
  • 请记住,作为奖励产品创建的产品也有 skutype.INAPP 并且必须被消费。
  • 像往常一样启动您的计费库并查询购买,包括您的奖励产品 ID 作为消耗品。
  • 要加载广告,只需在 queryPurchases 中使用以下内容并启用您的按钮(因为我使用了 View vidbut 的可见性)

for (SkuDetails skuDetails : skuDetailsList) { if (skuDetails.isRewarded()) { rewardSkuDetails = skuDetails; billingManager.queryRewardAsync(skuDetails, new RewardResponseListener() { @Override public void onRewardResponse(BillingResult billingResult) { if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) { findViewById(R.id.vidbut).setVisibility(View.VISIBLE); // Enable the reward product, or make // any necessary updates to the UI. } } }); } }

  • 要展示广告,只需启动购买流程,例如

    billingManager.initiatePurchaseFlow(rewardSkuDetails, null, BillingClient.SkuType.INAPP);

如果您在设置 billingManager 方面需要更多帮助,您可以在评论中自由提问。我希望它能帮助您实施新的奖励广告。祝你好运!


推荐阅读