Выполните более одного видео в последовательности с 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, но это не отображается. Пожалуйста, можете мне помочь? Заранее спасибо.

1 ответ

Решение

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

При этом, возможный обходной путь для этого будет использовать обработчик и 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(), который вы в данный момент включили. Не стесняйтесь обращаться к нам напрямую по адресу support@AdColony.com для любых других вопросов, которые могут у вас возникнуть.

Другие вопросы по тегам