          */
         public static function addBusinessEvent( currency:String, amount:int, itemType:String, itemId:String, cartType:String, receipt:String = null, signature:String = null, autoFetchReceipt:Boolean = true ):void {
             if( !isSupported ) return;
-            if( !mInitialized ) return;
+            validateExtensionContext();
 
             if( currency === null ) throw new ArgumentError( "Parameter currency cannot be null." );
             if( itemType === null ) throw new ArgumentError( "Parameter itemType cannot be null." );


        private static function setDimensionInternal( value:String, dimension:int ):void {
            if( !isSupported ) return;
            if( !mInitialized ) return;

            mContext.call( "setDimension", value, dimension );
        }

        private static function log( message:String ):void {

         */
        public static function addProgressionEvent( status:int, progression01:String, progression02:String = null, progression03:String = null, score:int = 0 ):void {
            if( !isSupported ) return;
            validateExtensionContext();

            if( !GAProgressionStatus.isValid( status ) ) throw new ArgumentError( "Parameter status must be one of the values defined in class GAProgressionStatus." );

