0

I want to increment when finish watching video ads .I am calling startRevMobSession() function on button click , but it increment also when there is no video available.. anyone please tell me its correct implementation. I am using Android Studio

Double counter = 0.0;

Double adding = 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();
}  
}
Abhishek Aryan
  • 19,936
  • 8
  • 46
  • 65

2 Answers2

0

Add VideoFinished listener:

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
        }
    });
}

Also you can add this listeners if your video is rewarded (You need see full video):

    @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
    }
Santi
  • 1
  • 3
0

Two types of video supported by RevMob AdNetwork.

  1. Video
  2. Reward Video

First type is normal video, used whenever you want to show video eg. when you transfer screen from one to another. As I check your requirement i recommend you to use Reward Video. If you still want to stick with video Ad no problems. Call showVideo() if there is a video then it increment your value else not.

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();
    }

Second types is for your requirement. First call loadVideo() and attach listener. Enable a flag when your video is loaded by onRevMobRewardedVideoLoaded() method. By that flag check is your reward video is ready to display, if yes show reward dialog(UI) and by that dialog button interface call 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;
}

In onRevMobRewardedVideoCompleted() method of listener increase your value.

Abhishek Aryan
  • 19,936
  • 8
  • 46
  • 65