 					_intervalTimer = null;
 					break;
 				case VPAIDEvent.AdVideoStart:
-					startImpressionTimer();
+					videoStarted = true;
+					if ( jsReady ) {
+						startImpressionTimer();
+					}
 					break;
 				default:
 					// do nothing

         * this function is called so that the ad can wait for the beacons to load before dispatching AdLoaded
         */
		public function onJsReady(): void {
			raiseReady();
		}
		/**

	
		private var _vpaidEventsDispatcher:IEventDispatcher = null;

		/**
		 * True if VPAID AdVideoStarted event has been received
		 */
		private var videoStarted:Boolean;
		/**
		 * True if JS is ready, and beacons are loaded if needed.
		 */
		private var jsReady:Boolean;


        ////////////////////////////////////////////////////////////
        //   CONSTRUCTOR 
        ////////////////////////////////////////////////////////////
