diff --git a/android/GoogleAnalyticsPlugin.java b/android/GoogleAnalyticsPlugin.java index 7b12688..e387973 100644 --- a/android/GoogleAnalyticsPlugin.java +++ b/android/GoogleAnalyticsPlugin.java @@ -84,8 +84,16 @@ public void track(String json) { } } - public void trackScreen(String screenName) { - mGaTracker.sendView(screenName); + public void trackScreen(String json) { + String screenName = "noName"; + try + { + JSONObject obj = new JSONObject(json); + screenName = obj.getString("screenName"); + mGaTracker.sendView(screenName); + } catch (JSONException e) { + logger.log("{googleAnalytics} trackScreen - failure: " + screenName + " - " + e.getMessage()); + } } public void onResume() { diff --git a/ios/GoogleAnalyticsPlugin.mm b/ios/GoogleAnalyticsPlugin.mm index cec5fd7..8934f8d 100644 --- a/ios/GoogleAnalyticsPlugin.mm +++ b/ios/GoogleAnalyticsPlugin.mm @@ -70,8 +70,15 @@ - (void) track:(NSDictionary *)jsonObject { } } -- (void) trackScreen:(NSString *)screenName { - [self.tracker sendView:screenName]; +- (void) trackScreen:(NSDictionary *)jsonObject { + @try { + NSString *screenName = [jsonObject valueForKey:@"screenName"]; + [self.tracker sendView:screenName]; + NSLOG(@"{googleAnalytics} Delivered screen '%@'", screenName); + } + @catch (NSException *exception) { + NSLOG(@"{googleAnalytics} Exception while processing screen: ", exception); + } } @end diff --git a/js/googleAnalytics.js b/js/googleAnalytics.js index a39a1bd..be2e0b1 100644 --- a/js/googleAnalytics.js +++ b/js/googleAnalytics.js @@ -5,6 +5,13 @@ var GoogleAnalytics = Class(function () { NATIVE.plugins.sendEvent("GoogleAnalyticsPlugin", "track", JSON.stringify({ eventName: name, params: data })); }; + + this.trackScreen = function (name) { + logger.log("{googleAnalytics} trackScreen: ", name); + NATIVE && NATIVE.plugins && NATIVE.plugins.sendEvent && + NATIVE.plugins.sendEvent("GoogleAnalyticsPlugin", "trackScreen", + JSON.stringify({screenName: name})); + }; }); exports = new GoogleAnalytics();