【问题标题】:increment when finish watching video ads观看完视频广告后增加
【发布时间】:2017-02-14 11:47:10
【问题描述】:

我想在观看完视频广告后增加。我在按钮点击时调用startRevMobSession() 函数,但是当没有可用视频时它也会增加..任何人请告诉我它的正确实现。 我正在使用 Android Studio

双计数器 = 0.0;

双加 = 0.0005;

String strCounter;

SharedPreferences sharedpreferences;

RevMob revmob;
RevMobFullscreen video;
private boolean videoIslodaded;

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

public void startRevMobSession() {
    videoIslodaded = false;
    //RevMob's Start Session method:
    revmob = RevMob.startWithListener(this, new RevMobAdsListener() {
        @Override
        public void onRevMobSessionStarted() {
            loadVideo(); //Cache the video once the session is stared
        }
        @Override
        public void onRevMobSessionNotStarted(String message) {
            //If the session fails, no ad will be displayed.
        }
    },"<YOUR_APP_ID>");
}

public void loadVideo(){
    video = revmob.createVideo(this,new RevMobAdsListener(){
        @Override
        public void onRevMobVideoLoaded() {
            videoIslodaded = true; //Video ready to be displayed
            showVideo();
        }
        @Override
        public void onRevMobVideoStarted() {
            videoIslodaded = false;
        }
        @Override
        public void onRevMobAdNotReceived(String message) {
            videoIslodaded = false; //Ad failed to load;
        }
    });
}

public void showVideo(){
    if(videoIslodaded) video.showVideo();
}

public void watch1_btn(View view){

    startRevMobSession();

    sharedpreferences = getSharedPreferences("MyPREFERENCES", Context.MODE_PRIVATE);
    counter = Double.longBitsToDouble(sharedpreferences.getLong("key",Double.doubleToLongBits(0)));
    counter = counter+adding;
    strCounter = Double.toString(counter);

    sharedpreferences = getSharedPreferences("MyPREFERENCES", Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = sharedpreferences.edit();
    editor.putLong("key", Double.doubleToRawLongBits(counter));
    editor.commit();
}  
}

【问题讨论】:

    标签: android video increment ads revmob


    【解决方案1】:

    添加 VideoFinished 监听器:

    public void loadVideo(){
        video = revmob.createVideo(this,new RevMobAdsListener(){
            @Override
            public void onRevMobVideoLoaded() {
                videoIslodaded = true; //Video ready to be displayed
                showVideo();
            }
    
            @Override
            public void onRevMobVideoStarted() {
                videoIslodaded = false;
            }
    
            @Override
            public void onRevMobAdNotReceived(String message) {
                videoIslodaded = false; //Ad failed to load;
            }
    
            @Override
            public void onRevMobVideoFinished(){
                Log.w("RevMob video finished playing");
                //Add your count here
            }
        });
    }
    

    如果您的视频获得奖励,您也可以添加此听众(您需要查看完整视频):

        @Override
        public void onRevMobRewardedVideoFinished() {
             Log.w("RevMob Rewarded Video finished playing.");
        }
    
        @Override
        public void onRevMobRewardedVideoCompleted() {
            Log.w("RevMob Rewarded Video completed. You earned a coin!");
            //Add your count here
        }
    

    【讨论】:

    • 但是这个方法是针对奖励视频广告的
    • 使用 onRevMobVideoFinished()。我把它放在第一个代码片段中
    • 仅完成视频并没有真正完成。我想在视频完成并被用户关闭时执行
    • 尝试使用 onRevMobVideoStarted()。在视频开始播放时运行
    【解决方案2】:

    RevMob AdNetwork 支持两种类型的视频。

    1. 视频
    2. 奖励视频

    第一种类型是普通视频,在您想显示视频时使用,例如。当您将屏幕从一个转移到另一个时。当我检查您的要求时,我建议您使用奖励视频。如果您仍然想坚持使用视频广告没问题。如果有视频,请致电showVideo(),否则它会增加您的价值。

    public void loadVideo(){
    
            video = revmob.createVideo(currentActivity,new RevMobAdsListener(){
                @Override
                public void onRevMobVideoLoaded() {
                    videoIsLoaded = true; //Video ready to be displayed
                }
                @Override
                public void onRevMobVideoStarted() {
                    videoIsLoaded = false;
                }
                @Override
                public void onRevMobAdNotReceived(String message) {
                    videoIsLoaded = false; //Ad failed to load;
                }
    
                @Override
                public void onRevMobAdClicked() {
                    Log.i("RevMob", "Video clicked.");
                }
    
                @Override
                public void onRevMobAdDismissed() {
                    Log.i("RevMob", "Video dismissed.");
                }
    
    
                @Override
                public void onRevMobVideoNotCompletelyLoaded() {
                    Log.i("RevMob", "Video has not been completely loaded.");
                    //You tried to show it but it's not loaded yet
                }
    
                @Override
                public void onRevMobVideoFinished(){
                    Log.i("RevMob", "Video finished playing");
                }
            });
        }
    
    
        public void showVideo(){
            if(videoIsLoaded) {
    
                 sharedpreferences = getSharedPreferences("MyPREFERENCES", Context.MODE_PRIVATE);
                 counter = Double.longBitsToDouble(sharedpreferences.getLong("key",Double.doubleToLongBits(0)));
                 counter = counter+adding;
                 strCounter = Double.toString(counter);
    
                 sharedpreferences = getSharedPreferences("MyPREFERENCES", Context.MODE_PRIVATE);
                 SharedPreferences.Editor editor = sharedpreferences.edit();
                 editor.putLong("key", Double.doubleToRawLongBits(counter));
                 editor.commit();
                 video.showVideo();                  
            }
            else loadVideo();
        }
    

    第二种类型是您的要求。首先调用loadVideo() 并附加监听器。当您的视频通过onRevMobRewardedVideoLoaded() 方法加载时启用标志。通过该标志检查您的奖励视频是否已准备好显示,如果是则显示奖励对话框(UI)并通过该对话框按钮界面调用showRewardedVideo()

    public void loadRewardedVideo(){
            rewardedVideo = revmob.createRewardedVideo(currentActivity, new RevMobAdsListener(){
                @Override
                public void onRevMobRewardedVideoLoaded() {
                    rewardedVideoIsLoaded = true;
                    Log.i("RevMob","Rewarded Video ready to be displayed");
                }
                @Override
                public void onRevMobAdNotReceived(String message) {
                    rewardedVideoIsLoaded = false;
                    Log.i("RevMob","Rewarded Video failed to load");
                }
    
                @Override
                public void onRevMobAdDismissed() {
                    Log.i("RevMob", "Video dismissed.");
                }
    
                @Override
                public void onRevMobRewardedVideoNotCompletelyLoaded() {
                    Log.i("RevMob", "RevMob Rewarded Video not completely loaded.");
                    //You tried to show it but it's not loaded yet
                }
    
                @Override
                public void onRevMobRewardedVideoStarted() {
                    rewardedVideoIsLoaded = false;
                }
                @Override
                public void onRevMobRewardedVideoCompleted() {
                    Log.i("RevMob", "Rewarded Video completed. You earned a coin!");
                    //User dismissed post-roll static ad
    
                 sharedpreferences = getSharedPreferences("MyPREFERENCES", Context.MODE_PRIVATE);
                 counter = Double.longBitsToDouble(sharedpreferences.getLong("key",Double.doubleToLongBits(0)));
                 counter = counter+adding;
                 strCounter = Double.toString(counter);
    
                 sharedpreferences = getSharedPreferences("MyPREFERENCES", Context.MODE_PRIVATE);
                 SharedPreferences.Editor editor = sharedpreferences.edit();
                 editor.putLong("key", Double.doubleToRawLongBits(counter));
                 editor.commit();
    
    
                    loadRewardedVideo();
                }
                @Override
                public void onRevMobAdClicked() {
                    Log.i("RevMob", "Rewarded Video clicked. You earned a coin!");
                    //User clicked on post-roll static ad
                }
    
                @Override
                public void onRevMobRewardedVideoFinished() {
                    Log.i("RevMob", "RevMob Rewarded Video finished playing.");
                    //The video itself reached its end
                    loadRewardedVideo();
                }
    
                @Override
                public void onRevMobRewardedPreRollDisplayed() {
                    Log.i("RevMob", "RevMob Rewarded Video Pre-Roll displayed");
                }
            });
        }
    
     public boolean showRewardedVideo(){
        if(rewardedVideoIsLoaded) rewardedVideo.showRewardedVideo();
        return rewardedVideoIsLoaded;
    }
    

    onRevMobRewardedVideoCompleted()的监听方法中增加你的价值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-20
      • 1970-01-01
      • 1970-01-01
      • 2014-08-30
      • 2017-11-09
      相关资源
      最近更新 更多