Продолжительность мероприятия в мобильной аналитике? - PullRequest
2 голосов
/ 15 апреля 2011

Я использую мобильную аналитику Localytics для своего приложения для iphone. Например, сколько времени пользователь потратил на просмотр экрана ... это возможно в суматохе .. api доступно ... но возможно ли это в Localytics?

1 Ответ

4 голосов
/ 18 апреля 2011

Лучший способ сделать это с помощью Localytics - это запустить событие, когда экран закрыт, записав время в виде атрибута события с группировкой.Таким образом, у вас будет хорошая круговая диаграмма, показывающая, как часто просматривается экран, а также возможность видеть, сколько пользователей просматривали экран, на каких устройствах он чаще всего используется и все другие показатели, которые позволяет просматривать Localytics.ваши события.

Чтобы запустить это событие, вы хотите сделать что-то вроде:

// When you show the screen
NSDate *date = [NSDate date]; // save this somewhere

// When you close the screen:   
// Find elapsed time and convert to milliseconds
// Use (-) modifier to conversion since receiver is earlier than now
unsigned int seconds = (unsigned int)([date timeIntervalSinceNow] * -1.0);

NSDictionary *dictionary =
     [NSDictionary dictionaryWithObjectsAndKeys:
     [self bucketizeSeconds:seconds],
     @"View Time",
     nil];
[[LocalyticsSession sharedLocalyticsSession] 
  tagEvent:@"Intro Screen viewed" 
  attributes:dictionary];

Это зависит от функции объединения:

- (NSString *) bucketizeSeconds:(unsigned int)seconds
{
  unsigned int secondBuckets[9] = {3, 10, 30, 60, 180, 600, 1800, 3600, -1};
  NSArray *secondBucketNames = [NSArray arrayWithObjects: 
     @"0 - 3 seconds", 
     @"3 - 10 seconds", @"10 - 30 seconds", @"30 - 60 seconds",
     @"1 - 3 minutes", @"3 - 10 minutes", @"10 - 30 minutes", @"30 - 60 minutes",
     @"> 1 hour", nil];

  for(unsigned int i=0; i < (sizeof secondBuckets) / (sizeof secondBuckets[0]); i++) 
  {
    if(secondBuckets[i] > seconds) 
    {
      return [secondBucketNames objectAtIndex: i];
    }       
  }

  return @"error";
}
...