Выполняйте более одного видео последовательно с AdColony

Привет, я хочу запустить несколько видео последовательно с помощью AdColony SDK, я имею в виду, что когда одно видео заканчивается, должно показываться другое. Но не могу заставить его работать, одно первое видео заканчивает другое видео не показывается. Это мой код, мой метод onCreate:

@Override
  public void onCreate( Bundle savedInstanceState )
  {
    super.onCreate(savedInstanceState);
    getActionBar().hide();
    // Configure ADC once early before any other ADC calls (except setCustomID/setDeviceID).
    AdColony.configure( this, "1.0", APP_ID, ZONE_ID_ONE_VIDEO );
    // version - arbitrary application version
    // store   - google or amazon

    // Disable rotation if not on a tablet-sized device (note: not
    // necessary to use AdColony).
    if ( !AdColony.isTablet() )
    {
      setRequestedOrientation( ActivityInfo.SCREEN_ORIENTATION_PORTRAIT );
    }

    // Notify this object about confirmed virtual currency.
    AdColony.addV4VCListener( this );

    // Notify this object about ad availability changes.
    AdColony.addAdAvailabilityListener( this );

    setContentView( R.layout.videos_ads_activity );

    mAppPreferences = new AppPreferences(this);

    /*video1 = new AdColonyV4VCAd(WatchVideosActivity.ZONE_ID_ONE_VIDEO);
    video2 = new AdColonyV4VCAd(WatchVideosActivity.ZONES_FIVES_VIDEOS[1]).withListener(this);
    video3 = new AdColonyV4VCAd(WatchVideosActivity.ZONES_FIVES_VIDEOS[2]).withListener(this);
    video4 = new AdColonyV4VCAd(WatchVideosActivity.ZONES_FIVES_VIDEOS[3]).withListener(this);
    video5 = new AdColonyV4VCAd(WatchVideosActivity.ZONES_FIVES_VIDEOS[4]).withListener(this);*/


    showOneVideo = (Button) findViewById(R.id.buttonShowOneVideo);
    showOneVideo.setOnClickListener(
            new View.OnClickListener()
            {
              public void onClick( View v )
              {
                  AdColonyV4VCAd v4vc_ad = new AdColonyV4VCAd()
                    .withListener( WatchVideosActivity.this);

                  if(v4vc_ad.getAvailableViews() == 0){
                      Toast.makeText(WatchVideosActivity.this, "Loading ads", Toast.LENGTH_SHORT).show();
                  }else{
                      v4vc_ad.show();
                  }
              }
            });

    showFiveVideos = (Button) findViewById(R.id.buttonShowFiveVideos);
    showFiveVideos.setOnClickListener(
            new View.OnClickListener()
            {
              public void onClick( View v )
              {
                  v4vc_ad = new AdColonyV4VCAd(ZONE_ID_ONE_VIDEO)
                    .withListener( WatchVideosActivity.this);

                  if(v4vc_ad.getAvailableViews() == 0){
                      Toast.makeText(WatchVideosActivity.this, "Loading ads", Toast.LENGTH_SHORT).show();
                  }else{
                      v4vc_ad.show();
                  }
              }
            });
}

Остальная часть моего класса (я не помещаю переменные экземпляра, но они объявлены):

      public void onPause()
  {
    super.onPause();
    AdColony.pause();
  }

  public void onResume()
  {
    super.onResume();
    AdColony.resume( this );
  }

  // Reward Callback
  public void onAdColonyV4VCReward( AdColonyV4VCReward reward )
  {
    if (reward.success())
    {
      //Guardamos el reward en mi preference
      mAppPreferences.setCoins(mAppPreferences.getCoins() + reward.amount());
      Log.d("AdColony", "rewaerdCallback listener");
    }
  }

  // Ad Started Callback - called only when an ad successfully starts playing
  public void onAdColonyAdStarted( AdColonyAd ad )
  {
    Log.d("AdColony", "onAdColonyAdStarted");
  }

  //Ad Attempt Finished Callback - called at the end of any ad attempt - successful or not.
  public void onAdColonyAdAttemptFinished( AdColonyAd ad )
  {

          try {
                Thread.sleep(1500);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        AdColonyV4VCAd v4vc_ad = new AdColonyV4VCAd()
        .withListener( WatchVideosActivity.this);

        v4vc_ad.show();
      }
  }

Я создаю новое видео в обратном вызове onAdColonyAdAttemptFinished, но оно не отображается. Пожалуйста, можете мне помочь? Заранее спасибо.


person user1977204    schedule 17.04.2014    source источник


Ответы (1)


Новое видеообъявление AdColony не будет готово до тех пор, пока не будет выполнен обратный вызов onAdColonyAdAttemptFinished. Кроме того, идея иметь кнопку для показа пяти видео таким образом не рекомендуется, так как нет способа всегда гарантировать такой уровень доступности рекламы.

При этом возможным обходным путем для этого было бы использование Handler и Runnable следующим образом:

//In your onCreate method w/ the variables declared globally
handler = new Handler();
runnable = new Runnable()
{
  public void run()
  {
    AdColonyV4VCAd ad = new AdColonyV4VCAd( ZONE_ID ).withListener( listener );
    ad.show();
  }
};

...
...
...

//At the end of your onAdColonyAdAttemptFinished method,
//delay a second or so to allow your Activity to regain 
//control before attempting to launch the new advertisement.
handler.postDelayed( runnable, 1000 );

С этим решением также нет необходимости в Thread.sleep(), который вы сейчас включили. Не стесняйтесь обращаться к нам напрямую по адресу [email protected] по любым другим вопросам, которые могут у вас возникнуть.

person bread    schedule 18.04.2014
comment
мои межстраничные объявления adcolony запускаются один раз, когда я перехожу к другому действию вперед или назад. Мои межстраничные объявления не отображаются, почему. - person AndroidGeek; 08.07.2014