قواعد الإعلانات

تتوافق أداة تطوير البرامج (SDK) لإعلانات الوسائط التفاعلية (IMA) من Android مع قوائم تشغيل تلقائية بالكامل. تُدرج هذه الميزة فواصل الإعلانات في المحتوى كما هو محدّد في مدير إعلانات Google عند نقل إعلاناتك. كما تبسّط هذه الشفرة كثيرًا شفرة مشغّل الفيديو اللازمة لدعم الفواصل الإعلانية، بما في ذلك إعلانات ما قبل التشغيل وأثناء التشغيل وما بعد التشغيل.

  • عند التعامل مع الإعلانات في "مدير الإعلانات"، من الممكن تحديد قواعد إعلانية متنوعة مثل "التشغيل دائمًا للفاصل الإعلاني في بداية المحتوى" أو "تشغيل فاصل إعلاني لمدة دقيقة واحدة كل 30 دقيقة من المحتوى".
  • عندما يتم طلب الإعلانات، يمكن أن يعرض خادم الإعلانات قائمة تشغيل للإعلانات. تعالج حزمة تطوير البرامج (SDK) قائمة التشغيل وتجدول الفواصل الإعلانية التي تم تحديدها تلقائيًا.
  • وبما أنّ نظام التشغيل Android يستخدم مشغّل الفيديو نفسه لتشغيل كلٍّ من الإعلان والمحتوى، إذا كنت تخطّط لتنفيذ قواعد الإعلانات، يجب حفظ موضع رأس المحتوى للمحتوى عند بدء عرض الإعلان، ثم السعي إلى الوصول إلى ذلك الموضع بعد انتهائه. احرص على تنفيذ واجهة VideoAdPlayer في مشغّل الفيديو. ويضمن ذلك إدراج الفواصل الإعلانية تلقائيًا في الأوقات المحدّدة في "مدير الإعلانات".
    private boolean playingContent = true;
    private int contentPosition = -1;
    private List callbacks =
        new ArrayList();
    
    @Override
    public void addCallback(VideoAdPlayerCallback callback) {
      callbacks.add(callback);
    }
    
    @Override
    public void removeCallback(VideoAdPlayerCallback callback) {
      callbacks.remove(callback);
    }
    
    public void loadContent()
      playingContent = true;
      load(CONTENT_URL);
    }
    
    @Override
    public void loadAd(String mediaUrl) {
      playingContent = false;
      load(mediaUrl);
    }
    
    public void pauseContent() {
      savePosition();
      pause();
    }
    
    @Override
    public void pauseAd() {
      pause();
    }
    
    private void pause() {
      myVideoView.pause();
      for (VideoAdPlayerCallback callback : callbacks) {
        callback.onPause();
      }
    }
    
    public void resumeContent() {
      loadContent();
      if (contentPosition > 0) {
        restorePosition();
      }
      resume();
    }
    
    @Override
    public void resumeAd() {
      resume();
    }
    
    private void resume() {
      myVideoView.start();
      for (VideoAdPlayerCallback callback : callbacks) {
        callback.onResume();
      }
    }
    
    public void savePosition() {
      contentPosition = myVideoView.getCurrentPosition();
    }
    
    public void restorePosition() {
      myVideoView.seekTo(contentPosition);
    }
    
  • يتم استخدام حدثَي CONTENT_PAUSE_REQUESTED وCONTENT_RESUME_REQUESTED لإيقاف المحتوى مؤقتًا واستئناف عرضه عند تشغيل الفواصل الإعلانية. يمكنك الرجوع إلى مستندات واجهة برمجة التطبيقات ذات الصلة للاطّلاع على تفاصيل حول هذه الأحداث.

ملاحظة: عند انتهاء تشغيل المحتوى أو عند توقّف المستخدم عن التشغيل، يُرجى استدعاء AdsLoader.contentComplete للإشارة إلى حزمة تطوير البرامج (SDK) بأنّ المحتوى قد تم. وستشغّل حزمة تطوير البرامج بعد ذلك الفاصل الإعلاني الذي يظهر بعد التشغيل، إذا كان قد تم تحديد موعد لنشره. تتم زيادة الفعالية ALL_ADS_COMPLETED عند تشغيل جميع الفواصل الإعلانية. إضافةً إلى ذلك، يُذكر أنّ تتبُّع المحتوى يبدأ عندما يتم استدعاء init() وعليك دائمًا استدعاء init() قبل تشغيل المحتوى.