2017-02-14 2 views
0

비디오 광고 시청이 끝나면 증가하고 싶습니다. 버튼 클릭시 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(); 
} 
} 

답변

0

VideoFinished 리스너를 추가로 지원하는 비디오의

@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 
    } 
+0

하지만이 방법은 일반 비디오 광고를 사용하는 보상 비디오 광고를위한 것입니다. onRevMobRewardedVideoCompleted() 함수가 다른 아이디어로 작동하지 않습니까? –

+0

onRevMobVideoFinished()를 사용합니다. 첫 번째 코드 조각 – Santi

+0

에 넣으십시오. 비디오는 실제로 완료되지 않습니다. 비디오가 끝나고 사용자가 닫을 때 수행하고 싶습니다. –

0

두 가지 유형을 : 비디오가 보상되는 경우

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

는 또한이 청취자를 추가 할 수 있습니다 (당신은 전체 비디오를 볼 필요) 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) 경우와 청취자의 onRevMobRewardedVideoCompleted() 방법에서 그 대화 버튼 인터페이스 호출 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; 
} 

하여 보상 비디오를 표시 할 준비가되어 있습니다.

관련 문제