"Stack Exchange page visits" alike implementation
My 2 cents:


I would not use an array of objects to represent the pages, I would use an object where each $scope.ad.id is a property and where the value is the last time visited. This would take out your loop and dupe management
Any enterprising individual is able to artificially inflate the counter, either by clearing the localStorage or by calling FData.incrementVisitsForID(id); in a loop from the console.
Are you sure that 10 minutes = 3600 * 10, it seems wrong to me


I would counter propose something like this:

//Is data storage available?
if(typeof(Storage)!=="undefined")
{
  var tenMinutes =  1000 * 60 * 10; //10 minutes
  var now = (new Date()).getTime(); 
  //Get visits array from local storage or if that fails, an empty object
  var visits = JSON.parse(localStorage.getItem('visits')) || {}; 
  //Get time of last visit, or 0
  var lastVisit = visits[ $scope.ad.id ] || 0;
  //Does it count?
  if( now - lastVisit &gt; tenMinutes)
  {
    FData.incrementVisitsForID( $scope.ad.id );
  }
  //Update visits for the next time
  visits[ $scope.ad.id ] = now;
  //Save visits array in local storage
  localStorage.setItem('visits', JSON.stringify(visits));
}