כללי מודעות

IMA Android SDK תומך בפלייליסטים אוטומטיים לחלוטין של מודעות. כשמפעילים את התכונה הזו, המערכת מוסיפה הפסקות למודעות בתוך התוכן שצוין ב-Google Ad Manager במהלך ניהול הטראפיק של המודעות. הוא גם מפשט מאוד את הקוד של נגן הווידאו, כדי לתמוך בהפסקות למודעות, כולל מודעות בתחילת הסרטון, מודעות באמצע הסרטון ומודעות בסוף הסרטון.

  • במהלך ניהול הטראפיק של המודעות ב-Ad Manager ניתן לציין כללי מודעות שונים, למשל "להפעיל תמיד הפסקה למודעה בתחילת התוכן" או "הפעלת הפסקה למודעה למשך דקה אחת בכל 30 דקות".
  • כשנשלחת בקשה להצגת מודעה, שרת המודעות יכול להחזיר פלייליסט של מודעות. ה-SDK מעבד את הפלייליסט ומתזמן אוטומטית את ההפסקות למודעות שצוינו.
  • מאחר ש-Android משתמש באותו נגן וידאו גם להפעלת מודעות וגם לתוכן, אם בכוונתך להטמיע כללי מודעות, עליך לשמור את המיקום הנוכחי של התוכן לאחר הפעלת המודעה. לאחר מכן, עליך לדלג למיקום זה בסיום הצגת המודעה. חשוב להטמיע את הממשק VideoAdPlayer בנגן הווידאו. כך ניתן לוודא שהפסקות למודעות יתווספו באופן אוטומטי בזמנים שצוינו ב-Ad Manager.
    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 משמשים להשהיה ולחידוש התוכן כשההפסקות למודעות מוצגות. לפרטים נוספים על האירועים האלה, עיינו במסמכי ה-API הרלוונטיים.

הערה: לאחר סיום ההפעלה של התוכן או לאחר שהמשתמש הפסיק את ההפעלה, חשוב לקרוא לפונקציה AdsLoader.contentcomplete כדי לאותת ל-SDK שהתוכן הושלם. לאחר מכן, ה-SDK מפעיל את ההפסקה למודעה בסוף הסרטון, אם תוזמנה הפסקה כזו. האירוע ALL_ADS_COMPLETED גדל כשמוצגות כל ההפסקות למודעות. נוסף לכך, מעקב תוכן מתחיל כאשר מתבצעת קריאה אל init() וצריך תמיד להתקשר אל init() לפני הפעלת התוכן.