Skip to content

Commit

Permalink
analytics for Facebook APIs
Browse files Browse the repository at this point in the history
  • Loading branch information
dsternbergh authored and Daniel committed Jan 8, 2010
1 parent 3f5528b commit 3dd7135
Show file tree
Hide file tree
Showing 2 changed files with 68 additions and 0 deletions.
18 changes: 18 additions & 0 deletions android/titanium/src/assets/ti/debug/tifacebook.js
Expand Up @@ -32,16 +32,32 @@ Ti.Facebook = {
execute: function(method,params,data,callback)
{
Ti.facebookProxy.execute(method,transformObjectValue(params,null),transformObjectValue(data,null),registerOneShot(this, callback));
switch (method)
{
case "comments.add": { Ti.Analytics.featureEvent("tiSocial.Facebook.commentsAdd"); break; }
case "links.post": { Ti.Analytics.featureEvent("tiSocial.Facebook.linksPost"); break; }
case "notes.create": { Ti.Analytics.featureEvent("tiSocial.Facebook.notesCreate"); break; }
case "status.set": // fall through to following case
case "users.setStatus": { Ti.Analytics.featureEvent("tiSocial.Facebook.setStatus"); break; }
case "stream.publish": { Ti.Analytics.featureEvent("tiSocial.Facebook.streamPublish"); break; }
case "video.upload": { Ti.Analytics.featureEvent("tiSocial.Facebook.videoUpload"); break; }
case "sms.send": { Ti.Analytics.featureEvent("tiSocial.Facebook.smsSend"); break; }
case "photos.addTag": { Ti.Analytics.featureEvent("tiSocial.Facebook.photosAddTag"); break; }
case "photos.createAlbum": { Ti.Analytics.featureEvent("tiSocial.Facebook.photosCreateAlbum"); break; }
case "photos.upload": { Ti.Analytics.featureEvent("tiSocial.Facebook.photosUpload"); break; }
}
},

login: function(callback)
{
Ti.facebookProxy.login(callback ? registerOneShot(this, callback) : null);
Ti.Analytics.featureEvent("tiSocial.Facebook.login");
},

logout: function(callback)
{
Ti.facebookProxy.logout(callback ? registerOneShot(this, callback) : null);
Ti.Analytics.featureEvent("tiSocial.Facebook.logout");
},

hasPermission: function(permission)
Expand All @@ -59,6 +75,7 @@ Ti.Facebook = {
var o = transformObjectValue(data, null);
var json = o ? Ti.JSON.stringify(o) : null;
Ti.facebookProxy.publishStream(title, json, target, callback ? registerOneShot(this, callback) : null);
Ti.Analytics.featureEvent("tiSocial.Facebook.publishStream");
},

publishFeed: function(templateBundleId, data, body, callback)
Expand All @@ -67,6 +84,7 @@ Ti.Facebook = {
var json = o ? Ti.JSON.stringify(o) : null;
var tid = typeof(templateBundleId)=='string' ? parseLong(templateBundleId) : templateBundleId;
Ti.facebookProxy.publishFeed(tid, json, body, callback ? registerOneShot(this, callback) : null);
Ti.Analytics.featureEvent("tiSocial.Facebook.publishFeed");
},

createLoginButton: function(props)
Expand Down
50 changes: 50 additions & 0 deletions iphone/modules/FacebookModule/FacebookModule.m
Expand Up @@ -9,6 +9,7 @@
#import "FacebookModule.h"
#import "FBConnect.h"
#import <TitaniumBlobWrapper.h>
#import "AnalyticsModule.h"


@implementation FBDialogCallback
Expand Down Expand Up @@ -320,6 +321,11 @@ - (void)session:(FBSession*)session didLogin:(FBUID)uid
[self evaluateJavascript:[NSString stringWithFormat:@"Ti.Facebook._LSC(%@)",[self toJSON:dictionary_]] token:nil];
[dialog release];
dialog = nil;

AnalyticsModule *module = (AnalyticsModule*)[[TitaniumHost sharedHost] moduleNamed:@"AnalyticsModule"];
if (module!=nil){
[module enqueuePlatformEvent:@"app.feature" evtname:@"tiSocial.Facebook.login" data:nil];
}
}

- (void)sessionDidLogout:(FBSession*)session_
Expand All @@ -329,6 +335,11 @@ - (void)sessionDidLogout:(FBSession*)session_
[self evaluateJavascript:[NSString stringWithFormat:@"Ti.Facebook._LSC(%@)",[self toJSON:dictionary_]] token:nil];
[permissions release];
permissions = nil;

AnalyticsModule *module = (AnalyticsModule*)[[TitaniumHost sharedHost] moduleNamed:@"AnalyticsModule"];
if (module!=nil){
[module enqueuePlatformEvent:@"app.feature" evtname:@"tiSocial.Facebook.logout" data:nil];
}
}

- (void)showDialog
Expand Down Expand Up @@ -453,12 +464,24 @@ - (void)feed:(NSNumber*)templateBundleId data:(NSString*)templateData body:(NSSt

FBFeedCallback *cb = [[FBFeedCallback alloc] initWithToken:queryId pageToken:[self getPageToken] module:self templateBundleId:templateBundleId templateData:templateData body:body_ session:session];
[self performSelectorOnMainThread:@selector(showDialog:) withObject:cb waitUntilDone:NO];

AnalyticsModule *module = (AnalyticsModule*)[[TitaniumHost sharedHost] moduleNamed:@"AnalyticsModule"];
if (module!=nil)
{
[module enqueuePlatformEvent:@"app.feature" evtname:@"tiSocial.Facebook.publishFeed" data:nil];
}
}

- (void)stream:(NSString*)title data:(NSString*)data target:(NSString*)target queryId:(NSString*)queryId
{
FBStreamCallback *cb = [[FBStreamCallback alloc] initWithToken:queryId pageToken:[self getPageToken] module:self title:title data:data target:target session:session];
[self performSelectorOnMainThread:@selector(showDialog:) withObject:cb waitUntilDone:NO];

AnalyticsModule *module = (AnalyticsModule*)[[TitaniumHost sharedHost] moduleNamed:@"AnalyticsModule"];
if (module!=nil)
{
[module enqueuePlatformEvent:@"app.feature" evtname:@"tiSocial.Facebook.publishStream" data:nil];
}
}

- (void)setup:(NSString*)key secret:(NSString*)secret proxy:(NSString*)proxy
Expand Down Expand Up @@ -534,6 +557,33 @@ - (void)execute:(NSString*)method params:(NSDictionary*)params data:(id)data que
FBRequestCallback *cb = [[FBRequestCallback alloc] initWithToken:queryId pageToken:[self getPageToken] module:self prefix:@"ECB"];
cb.data = dataParam;
[[FBRequest requestWithDelegate:cb] call:method params:params dataParam:dataParam filename:filename];

AnalyticsModule *module = (AnalyticsModule*)[[TitaniumHost sharedHost] moduleNamed:@"AnalyticsModule"];
if (module!=nil)
{
if ([method isEqualToString:@"comments.add"])
{[module enqueuePlatformEvent:@"app.feature" evtname:@"tiSocial.Facebook.commentsAdd" data:nil];}
else if ([method isEqualToString:@"links.post"])
{[module enqueuePlatformEvent:@"app.feature" evtname:@"tiSocial.Facebook.linksPost" data:nil];}
else if ([method isEqualToString:@"notes.create"])
{[module enqueuePlatformEvent:@"app.feature" evtname:@"tiSocial.Facebook.notesCreate" data:nil];}
else if ([method isEqualToString:@"status.set"])
{[module enqueuePlatformEvent:@"app.feature" evtname:@"tiSocial.Facebook.setStatus" data:nil];}
else if ([method isEqualToString:@"users.setStatus"])
{[module enqueuePlatformEvent:@"app.feature" evtname:@"tiSocial.Facebook.setStatus" data:nil];}
else if ([method isEqualToString:@"stream.publish"])
{[module enqueuePlatformEvent:@"app.feature" evtname:@"tiSocial.Facebook.streamPublish" data:nil];}
else if ([method isEqualToString:@"video.upload"])
{[module enqueuePlatformEvent:@"app.feature" evtname:@"tiSocial.Facebook.videoUpload" data:nil];}
else if ([method isEqualToString:@"sms.send"])
{[module enqueuePlatformEvent:@"app.feature" evtname:@"tiSocial.Facebook.smsSend" data:nil];}
else if ([method isEqualToString:@"photos.addTag"])
{[module enqueuePlatformEvent:@"app.feature" evtname:@"tiSocial.Facebook.photosAddTag" data:nil];}
else if ([method isEqualToString:@"photos.createAlbum"])
{[module enqueuePlatformEvent:@"app.feature" evtname:@"tiSocial.Facebook.photosCreateAlbum" data:nil];}
else if ([method isEqualToString:@"photos.upload"])
{[module enqueuePlatformEvent:@"app.feature" evtname:@"tiSocial.Facebook.photosUpload" data:nil];}
}
}

- (NSString*)makeDialogJS:(NSString*)prefix
Expand Down

0 comments on commit 3dd7135

Please sign in to comment.