iOS:为什么我需要使用antire mixpanel sdk才能跟踪事件?

时间:2014-12-24 09:41:19

标签: ios mixpanel

  

我将mixpanel iOS sdk与我的ios应用程序集成在一起。它工作正常   但我的问题是这个,只是跟踪我需要的事件   故事板和资产以及所有?有谁知道这里有什么   足以跟踪事件的必要文件?问题是,为什么我需要在我的项目中保留未使用的文件?

任何可能非常感激的帮助。

1 个答案:

答案 0 :(得分:0)

我创建了一个使用MixPanel规范的适用于iOS的MixPanel的缩减版本。

您可以从我的github页面下载它和一个演示应用程序: https://github.com/peterept/mixpanellite

代码的关键是:

+(void)track:(NSString*)event properties:(NSDictionary*)properties {

  NSMutableDictionary *allProperties = [NSMutableDictionary dictionaryWithObjectsAndKeys:[mixpanellite distinctIdentifier],@"distinct_id", MIXPANELLITE_TOKEN, @"token", nil];
  if (properties != nil) {
    [allProperties addEntriesFromDictionary:properties];
  }
  NSMutableDictionary *eventDict = [NSMutableDictionary dictionaryWithObjectsAndKeys:event,@"event", allProperties, @"properties", nil];

  NSError *error = nil;
  NSData *jsonData = [NSJSONSerialization dataWithJSONObject:eventDict options:0 error:&error];
  if (error == nil)
  {
    NSLog(@"[MIXPANELLITE] %@", [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]);

    NSString *urlTemplate = @"http://api.mixpanel.com/track/?data=%@";
    NSString *url = [NSString stringWithFormat:urlTemplate, [jsonData mp_base64EncodedString]];
    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]];
    [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:nil];
  }
}

唯一的依赖是Matt Gallagher出色的NSData Base64类别。