コード例 #1
0
        void trackingPlugin_EventTracked(object sender, EventTrackedEventArgs e)
        {
            var trackedEventList = ResultsEventList.ItemsSource as ObservableCollection <EventTrackedEventArgs>;

            trackedEventList.Add(e);
            Debug.WriteLine(string.Format("{1} - tracked: {0}", e.TrackingEvent.Data, e.Timestamp));
        }
コード例 #2
0
        private void TrackVideoViewMarker(string url, EventTrackedEventArgs e)
        {
            if (!trackingEnded)
            {
                bool     isStart;
                bool     isEnd;
                TimeSpan currentPlayTime;
                if (e.TrackingEvent is PositionTrackingEvent)
                {
                    var playTimeTrackingPlugin = MediaPlayer.Plugins.OfType <PlayTimeTrackingPlugin>().FirstOrDefault();
                    if (playTimeTrackingPlugin == null)
                    {
                        throw new Exception("PlayTimeTrackingPlugin not found; required for FreeWheelPlugin");
                    }
                    var positionTrackingEvent = (PositionTrackingEvent)e.TrackingEvent;
                    if (!positionTrackingEvent.PositionPercentage.HasValue || positionTrackingEvent.PositionPercentage.Value != 1)
                    {
                        throw new Exception("Invalid tracking event was registered for FreeWheelPlugin");
                    }
                    isStart         = false;
                    isEnd           = true;
                    currentPlayTime = playTimeTrackingPlugin.PlayTime;
                    trackingEnded   = true; // set this flag to prevent further tracking
                }
                else if (e.TrackingEvent is PlayTimeTrackingEvent)
                {
                    var playTimeTrackingEvent = (PlayTimeTrackingEvent)e.TrackingEvent;
                    isStart         = playTimeTrackingEvent.PlayTime == TimeSpan.Zero;
                    isEnd           = false;
                    currentPlayTime = playTimeTrackingEvent.PlayTime;
                }
                else
                {
                    throw new ArgumentException();
                }

                TimeSpan delta;
                if (lastTrackingEvent != null)
                {
                    delta = currentPlayTime - lastTrackingEvent.PlayTime;
                }
                else
                {
                    delta = currentPlayTime;
                }
                lastTrackingEvent = e.TrackingEvent as PlayTimeTrackingEvent;

                var newUrl = url + string.Format("{3}init={0}&ct={1}&last={2}", isStart ? 1 : 0, (int)Math.Round(delta.TotalSeconds), isEnd ? 1 : 0, url.Contains("?") ? "&" : "?");
                AdTracking.Current.FireTracking(newUrl);
            }
        }
コード例 #3
0
 private void trackingPlugin_EventTracked(object sender, EventTrackedEventArgs e)
 {
     if (e.TrackingEvent.Area == TrackingEventArea)
     {
         var eventCallback = e.TrackingEvent.Data as FWEventCallback;
         if (eventCallback != null)
         {
             foreach (var url in eventCallback.GetUrls())
             {
                 TrackVideoViewMarker(url, e);
             }
         }
     }
 }
コード例 #4
0
 private void trackingPlugin_EventTracked(object sender, EventTrackedEventArgs e)
 {
     if (e.TrackingEvent.Area == TrackingEventArea)
     {
         var eventCallback = e.TrackingEvent.Data as FWEventCallback;
         if (eventCallback != null)
         {
             foreach (var url in eventCallback.GetUrls())
             {
                 TrackVideoViewMarker(url, e);
             }
         }
     }
 }
コード例 #5
0
 void trackingPlugin_EventTracked(object sender, EventTrackedEventArgs e)
 {
     if (e.TrackingEvent.Area == AnalyticsPlugin.TrackingEventArea)
     {
         if (e.TrackingEvent is PositionTrackingEvent)
         {
             var positionTracked = (PositionTrackingEvent)e.TrackingEvent;
             if (positionTracked.PositionPercentage.HasValue)
             {
                 if (PositionPercentageReached != null)
                 {
                     PositionPercentageReached(this, new PositionPercentageReachedEventArgs(positionTracked.PositionPercentage.Value));
                 }
             }
             else
             {
                 if (PositionReached != null)
                 {
                     PositionReached(this, new PositionReachedEventArgs(positionTracked.Position));
                 }
             }
         }
         else if (e.TrackingEvent is PlayTimeTrackingEvent)
         {
             var PlayTimeTracked = (PlayTimeTrackingEvent)e.TrackingEvent;
             if (PlayTimeTracked.PlayTimePercentage.HasValue)
             {
                 if (PlayTimePercentageReached != null)
                 {
                     PlayTimePercentageReached(this, new PlayTimePercentageReachedEventArgs(PlayTimeTracked.PlayTimePercentage.Value));
                 }
             }
             else
             {
                 if (PlayTimeReached != null)
                 {
                     PlayTimeReached(this, new PlayTimeReachedEventArgs(PlayTimeTracked.PlayTime));
                 }
             }
         }
     }
 }
コード例 #6
0
 void trackingPlugin_EventTracked(object sender, EventTrackedEventArgs e)
 {
     var trackedEventList = ResultsEventList.ItemsSource as ObservableCollection<EventTrackedEventArgs>;
     trackedEventList.Add(e);
 }
コード例 #7
0
        void trackingPlugin_EventTracked(object sender, EventTrackedEventArgs e)
        {
            var trackedEventList = ResultsEventList.ItemsSource as ObservableCollection <EventTrackedEventArgs>;

            trackedEventList.Add(e);
        }
コード例 #8
0
 void trackingPlugin_EventTracked(object sender, EventTrackedEventArgs e)
 {
     if (e.TrackingEvent.Area == AnalyticsPlugin.TrackingEventArea)
     {
         if (e.TrackingEvent is PositionTrackingEvent)
         {
             var positionTracked = (PositionTrackingEvent)e.TrackingEvent;
             if (positionTracked.PositionPercentage.HasValue)
             {
                 if (PositionPercentageReached != null) PositionPercentageReached(this, new PositionPercentageReachedEventArgs(positionTracked.PositionPercentage.Value));
             }
             else
             {
                 if (PositionReached != null) PositionReached(this, new PositionReachedEventArgs(positionTracked.Position));
             }
         }
         else if (e.TrackingEvent is PlayTimeTrackingEvent)
         {
             var PlayTimeTracked = (PlayTimeTrackingEvent)e.TrackingEvent;
             if (PlayTimeTracked.PlayTimePercentage.HasValue)
             {
                 if (PlayTimePercentageReached != null) PlayTimePercentageReached(this, new PlayTimePercentageReachedEventArgs(PlayTimeTracked.PlayTimePercentage.Value));
             }
             else
             {
                 if (PlayTimeReached != null) PlayTimeReached(this, new PlayTimeReachedEventArgs(PlayTimeTracked.PlayTime));
             }
         }
     }
 }
コード例 #9
0
 void trackingPlugin_EventTracked(object sender, EventTrackedEventArgs e)
 {
     var trackedEventList = ResultsEventList.ItemsSource as ObservableCollection<EventTrackedEventArgs>;
     trackedEventList.Add(e);
     Debug.WriteLine(string.Format("{1} - tracked: {0}", e.TrackingEvent.Data, e.Timestamp));
 }
コード例 #10
0
        private void TrackVideoViewMarker(string url, EventTrackedEventArgs e)
        {
            if (!trackingEnded)
            {
                bool isStart;
                bool isEnd;
                TimeSpan currentPlayTime;
                if (e.TrackingEvent is PositionTrackingEvent)
                {
                    var playTimeTrackingPlugin = MediaPlayer.Plugins.OfType<PlayTimeTrackingPlugin>().FirstOrDefault();
                    if (playTimeTrackingPlugin == null) throw new Exception("PlayTimeTrackingPlugin not found; required for FreeWheelPlugin");
                    var positionTrackingEvent = (PositionTrackingEvent)e.TrackingEvent;
                    if (!positionTrackingEvent.PositionPercentage.HasValue || positionTrackingEvent.PositionPercentage.Value != 1) throw new Exception("Invalid tracking event was registered for FreeWheelPlugin");
                    isStart = false;
                    isEnd = true;
                    currentPlayTime = playTimeTrackingPlugin.PlayTime;
                    trackingEnded = true; // set this flag to prevent further tracking
                }
                else if (e.TrackingEvent is PlayTimeTrackingEvent)
                {
                    var playTimeTrackingEvent = (PlayTimeTrackingEvent)e.TrackingEvent;
                    isStart = playTimeTrackingEvent.PlayTime == TimeSpan.Zero;
                    isEnd = false;
                    currentPlayTime = playTimeTrackingEvent.PlayTime;
                }
                else
                {
                    throw new ArgumentException();
                }

                TimeSpan delta;
                if (lastTrackingEvent != null)
                {
                    delta = currentPlayTime - lastTrackingEvent.PlayTime;
                }
                else
                {
                    delta = currentPlayTime;
                }
                lastTrackingEvent = e.TrackingEvent as PlayTimeTrackingEvent;

                var newUrl = url + string.Format("{3}init={0}&ct={1}&last={2}", isStart ? 1 : 0, (int)Math.Round(delta.TotalSeconds), isEnd ? 1 : 0, url.Contains("?") ? "&" : "?");
                AdTracking.Current.FireTracking(newUrl);
            }
        }