diff options
Diffstat (limited to 'StoneIsland/plugins/cordova-plugin-google-analytics')
27 files changed, 0 insertions, 4138 deletions
diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/LICENSE b/StoneIsland/plugins/cordova-plugin-google-analytics/LICENSE deleted file mode 100644 index bb1eb977..00000000 --- a/StoneIsland/plugins/cordova-plugin-google-analytics/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013 danwilson - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/README.md b/StoneIsland/plugins/cordova-plugin-google-analytics/README.md deleted file mode 100644 index 52433004..00000000 --- a/StoneIsland/plugins/cordova-plugin-google-analytics/README.md +++ /dev/null @@ -1,203 +0,0 @@ -google-analytics-plugin -======================= -[](https://www.npmjs.com/package/cordova-plugin-google-analytics) -[](https://www.npmjs.com/package/cordova-plugin-google-analytics) -[](http://opensource.org/licenses/MIT) - -Cordova (PhoneGap) 3.0+ Plugin to connect to Google's native Universal Analytics SDK - -Prerequisites: -* A Cordova 3.0+ project for iOS, Android, browser (PWA), and/or Windows Phone 8 -* A Mobile App property through the Google Analytics Admin Console -* (Android) Google Play Services SDK installed via [Android SDK Manager](https://developer.android.com/sdk/installing/adding-packages.html) - -# Installing - -This plugin follows the Cordova 3.0+ plugin spec, so it can be installed through the Cordova CLI in your existing Cordova project: -```bash -cordova plugin add https://github.com/danwilson/google-analytics-plugin.git -``` - -This plugin is also available on npm if you are using Cordova 5.0+: -```bash -cordova plugin add cordova-plugin-google-analytics -``` - -... OR the Cordova Plugin Registry if you are using a version of Cordova before 5.0 (while it remains open, as it is planning to shut down soon due to the move to npm): -```bash -cordova plugin add com.danielcwilson.plugins.googleanalytics -``` - -*Important Note* If the latest versions (0.8.0+) of this plugin are not working for you with Android on Cordova 5.0+, please try the suggestions in [Issues 123](https://github.com/danwilson/google-analytics-plugin/issues/123#issuecomment-151145095). Google Play Services has been very confusing to integrate, but in recent months it has been simplified. This plugin uses the new simpler way (including it as a framework instead of bundling it which can conflict with other plugins bundling it), but if you previously installed this plugin some old files might still be lingering. - -The plugin.xml file will add the Google Analytics SDK files for Android, iOS, browser (PWA) and/or Windows Phone 8. Follow [Google's steps](#sdk-files) if you need to update these later. Also make sure to review the Google Analytics [terms](http://www.google.com/analytics/terms/us.html) and [SDK Policy](https://developers.google.com/analytics/devguides/collection/protocol/policy) - -If you are not using the CLI, follow the steps in the section [Installing Without the CLI](#nocli) - -Windows Phone users have to manually add the [Google Analytics SDK for Windows 8 and Windows Phone](https://googleanalyticssdk.codeplex.com/) to your solution. To do this, just open your Cordova solution in Visual Studio, and add the [GoogleAnalyticsSDK package via NuGet](http://nuget.org/packages/GoogleAnalyticsSDK). This plugin requires v1.3.0 or higher. - -# Release note - -v1.0.0 -- api change from ```window.analytics``` to ```window.ga```, 'analytics' is deprecated since 1.0.0 and you should use the new api 'ga', -because in the next release we are removing the analytics. - -v1.7.x -- since this version there are new parameters in some of the old methods like `startTrackerWithId('UA-XXXX-YY', 30)` -and this is causing errors for those who are using the ionic 2(ionic-native) or ionic 1 (ngCordova); -these wrapper interfaces don't have the new parameters at the time we did the changes; so please update you ionic framework to the lastest version. - -v1.7.11 -- since this version there is back compatibility with the new and old parameters in the method `startTrackerWithId('UA-XXXX-YY', 30)` to avoid loading issues reported. - - -# JavaScript Usage - -**All the following methods accept optional success and error callbacks after all other available parameters.** - -In your 'deviceready' handler, set up your Analytics tracker: -* `window.ga.startTrackerWithId('UA-XXXX-YY', 30)` where UA-XXXX-YY is your Google Analytics Mobile App property and 30 is the dispatch period (optional) - -To track a Screen (PageView): -* `window.ga.trackView('Screen Title')` - -To track a Screen (PageView) w/ campaign details: -* `window.ga.trackView('Screen Title', 'my-scheme://content/1111?utm_source=google&utm_campaign=my-campaign')` - -To track a Screen (PageView) and create a new session: -* `window.ga.trackView('Screen Title', '', true)` - -To track an Event: -* `window.ga.trackEvent('Category', 'Action', 'Label', Value)` Label and Value are optional, Value is numeric - -To track an Event and create a new session: -* `window.ga.trackEvent('Category', 'Action', 'Label', Value, true)` Label, Value and newSession are optional, Value is numeric, newSession is true/false - -To track custom metrics: -* `window.ga.trackMetric('key', Value)` Value is optional - -To track an Exception: -* `window.ga.trackException('Description', Fatal)` where Fatal is boolean - -To track User Timing (App Speed): -* `window.ga.trackTiming('Category', IntervalInMilliseconds, 'Variable', 'Label')` where IntervalInMilliseconds is numeric - -To add a Transaction (Ecommerce) -* `window.ga.addTransaction('ID', 'Affiliation', Revenue, Tax, Shipping, 'Currency Code')` where Revenue, Tax, and Shipping are numeric - -To add a Transaction Item (Ecommerce) -* `window.ga.addTransactionItem('ID', 'Name', 'SKU', 'Category', Price, Quantity, 'Currency Code')` where Price and Quantity are numeric - -To add a Custom Dimension -* `window.ga.addCustomDimension('Key', 'Value', success, error)` -* Key should be integer index of the dimension i.e. send `1` instead of `dimension1` for the first custom dimension you are tracking. -* e.g. `window.ga.addCustomDimension(1, 'Value', success, error)` - -To set a UserId: -* `window.ga.setUserId('my-user-id')` - -To set a specific app version: -* `window.ga.setAppVersion('1.33.7')` - -To get a specific variable using this key list https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters: -for example to get campaign name: -* `window.ga.getVar('cn', function(result){ console.log(result);})` - -To set a specific variable using this key list https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters: -for example to set session control: -* `window.ga.setVar('sc', 'end', function(result){ console.log(result);})` - -To manually dispatch any data (this is not implemented in browser platform): -* `window.ga.dispatch()` - -To set a anonymize Ip address: -* `window.ga.setAnonymizeIp(true)` - -To set Opt-out: -* `window.ga.setOptOut(true)` - -To enabling Advertising Features in Google Analytics allows you to take advantage of Remarketing, Demographics & Interests reports, and more: -* `window.ga.setAllowIDFACollection(true)` - -To enable verbose logging: -* `window.ga.debugMode()` - -To enable/disable automatic reporting of uncaught exceptions -* `window.ga.enableUncaughtExceptionReporting(Enable, success, error)` where Enable is boolean - -# Example use ionic 2 (Ionic Native) -```shell -npm i --save @ionic-native/google-analytics -``` -```javascript -import { GoogleAnalytics } from '@ionic-native/google-analytics'; -import { Platform } from 'ionic-angular'; - -... - - constructor(private ga: GoogleAnalytics, private platform: Platform) { } - - initializeApp() { - this.platform.ready().then(() => { - this.ga.startTrackerWithId('UA-00000000-0') - .then(() => { - console.log('Google analytics is ready now'); - //the component is ready and you can call any method here - this.ga.debugMode(); - this.ga.setAllowIDFACollection(true); - }) - .catch(e => console.log('Error starting GoogleAnalytics', e)); - }); - } -``` - -# Installing Without the CLI <a name="nocli"></a> - -Copy the files manually into your project and add the following to your config.xml files: -```xml -<feature name="UniversalAnalytics"> - <param name="ios-package" value="UniversalAnalyticsPlugin" /> -</feature> -``` -```xml -<feature name="UniversalAnalytics"> - <param name="android-package" value="com.danielcwilson.plugins.analytics.UniversalAnalyticsPlugin" /> -</feature> -``` -```xml -<feature name="UniversalAnalytics"> - <param name="wp-package" value="UniversalAnalyticsPlugin" /> -</feature> -``` -<a name="sdk-files"></a> -You also will need to manually add the Google Analytics SDK files: -* Download the Google Analytics SDK 3.0 for [iOS](https://developers.google.com/analytics/devguides/collection/ios/) and/or [Android](https://developers.google.com/analytics/devguides/collection/android/) -* For iOS, add the downloaded Google Analytics SDK header files and libraries according to the [Getting Started](https://developers.google.com/analytics/devguides/collection/ios/v3) documentation -* For Android, add `libGoogleAnalyticsServices.jar` to your Cordova Android project's `/libs` directory and build path -* For Windows Phone, add the [GoogleAnalyticsSDK package via NuGet](http://nuget.org/packages/GoogleAnalyticsSDK) - -# Integrating with Lavaca - -The `lavaca` directory includes a component that can be added to a <a href="http://getlavaca.com">Lavaca</a> project. It offers a way to use the web `analytics.js` when the app is running in the browser and not packaged as Cordova. - -* Copy `AnalyticsService.js` to your Lavaca project (I create a directory under `js/app` called `data`). -* In your config files (`local.json`, `staging.json`, `production.js`) create properties called `google_analytics_id` (for the Mobile App UA property) and `google_analytics_web_id` (for the Web UA property) and set the appropriate IDs or leave blank as needed. -* In any file you want to track screen views or events, require AnalyticsService and use the methods provided. - -```javascript -var analyticsService = require('app/data/AnalyticsService'); - -analyticsService.trackView('Home'); -``` - -# Browser (PWA) - -For browser (PWA), people who want to use the plugin in a website that has already integrated google analytics needs -to make sure that they remove the google analytics snippet from the head section of the page and change the global `ga` -object name to something else. The plugin uses `nativeGa` instead. This can be changed by the following code. - -```js -// insert this in your head -<script> -window['GoogleAnalyticsObject'] = 'fooGa'; -</script> -``` - -The plugin will pick up the new name. diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/android/UniversalAnalyticsPlugin.java b/StoneIsland/plugins/cordova-plugin-google-analytics/android/UniversalAnalyticsPlugin.java deleted file mode 100644 index 23c20023..00000000 --- a/StoneIsland/plugins/cordova-plugin-google-analytics/android/UniversalAnalyticsPlugin.java +++ /dev/null @@ -1,469 +0,0 @@ -package com.danielcwilson.plugins.analytics; - -import com.google.android.gms.analytics.GoogleAnalytics; -import com.google.android.gms.analytics.Logger.LogLevel; -import com.google.android.gms.analytics.HitBuilders; -import com.google.android.gms.analytics.Tracker; - -import org.apache.cordova.CordovaPlugin; -import org.apache.cordova.CallbackContext; - -import org.json.JSONArray; -import org.json.JSONException; - -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.HashMap; -import java.util.Map.Entry; - -public class UniversalAnalyticsPlugin extends CordovaPlugin { - public static final String START_TRACKER = "startTrackerWithId"; - public static final String TRACK_VIEW = "trackView"; - public static final String TRACK_EVENT = "trackEvent"; - public static final String TRACK_EXCEPTION = "trackException"; - public static final String TRACK_TIMING = "trackTiming"; - public static final String TRACK_METRIC = "trackMetric"; - public static final String ADD_DIMENSION = "addCustomDimension"; - public static final String ADD_TRANSACTION = "addTransaction"; - public static final String ADD_TRANSACTION_ITEM = "addTransactionItem"; - - public static final String SET_ALLOW_IDFA_COLLECTION = "setAllowIDFACollection"; - public static final String SET_USER_ID = "setUserId"; - public static final String SET_ANONYMIZE_IP = "setAnonymizeIp"; - public static final String SET_OPT_OUT = "setOptOut"; - public static final String SET_APP_VERSION = "setAppVersion"; - public static final String GET_VAR = "getVar"; - public static final String SET_VAR = "setVar"; - public static final String DISPATCH = "dispatch"; - public static final String DEBUG_MODE = "debugMode"; - public static final String ENABLE_UNCAUGHT_EXCEPTION_REPORTING = "enableUncaughtExceptionReporting"; - - public Boolean trackerStarted = false; - public Boolean debugModeEnabled = false; - public HashMap<Integer, String> customDimensions = new HashMap<Integer, String>(); - - public Tracker tracker; - - @Override - public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException { - if (START_TRACKER.equals(action)) { - String id = args.getString(0); - int dispatchPeriod = args.length() > 1 ? args.getInt(1) : 30; - this.startTracker(id, dispatchPeriod, callbackContext); - return true; - } else if (TRACK_VIEW.equals(action)) { - int length = args.length(); - String screen = args.getString(0); - this.trackView(screen, length > 1 && !args.isNull(1) ? args.getString(1) : "", length > 2 && !args.isNull(2) ? args.getBoolean(2) : false, callbackContext); - return true; - } else if (TRACK_EVENT.equals(action)) { - int length = args.length(); - if (length > 0) { - this.trackEvent( - args.getString(0), - length > 1 ? args.getString(1) : "", - length > 2 ? args.getString(2) : "", - length > 3 ? args.getLong(3) : 0, - length > 4 ? args.getBoolean(4) : false, - callbackContext); - } - return true; - } else if (TRACK_EXCEPTION.equals(action)) { - String description = args.getString(0); - Boolean fatal = args.getBoolean(1); - this.trackException(description, fatal, callbackContext); - return true; - } else if (TRACK_TIMING.equals(action)) { - int length = args.length(); - if (length > 0) { - this.trackTiming(args.getString(0), length > 1 ? args.getLong(1) : 0, length > 2 ? args.getString(2) : "", length > 3 ? args.getString(3) : "", callbackContext); - } - return true; - } else if (TRACK_METRIC.equals(action)) { - int length = args.length(); - if (length > 0) { - this.trackMetric(args.getInt(0), length > 1 ? args.getString(1) : "", callbackContext); - } - return true; - } else if (ADD_DIMENSION.equals(action)) { - Integer key = args.getInt(0); - String value = args.getString(1); - this.addCustomDimension(key, value, callbackContext); - return true; - } else if (ADD_TRANSACTION.equals(action)) { - int length = args.length(); - if (length > 0) { - this.addTransaction( - args.getString(0), - length > 1 ? args.getString(1) : "", - length > 2 ? args.getDouble(2) : 0, - length > 3 ? args.getDouble(3) : 0, - length > 4 ? args.getDouble(4) : 0, - length > 5 ? args.getString(5) : null, - callbackContext); - } - return true; - } else if (ADD_TRANSACTION_ITEM.equals(action)) { - int length = args.length(); - if (length > 0) { - this.addTransactionItem( - args.getString(0), - length > 1 ? args.getString(1) : "", - length > 2 ? args.getString(2) : "", - length > 3 ? args.getString(3) : "", - length > 4 ? args.getDouble(4) : 0, - length > 5 ? args.getLong(5) : 0, - length > 6 ? args.getString(6) : null, - callbackContext); - } - return true; - } else if (SET_ALLOW_IDFA_COLLECTION.equals(action)) { - this.setAllowIDFACollection(args.getBoolean(0), callbackContext); - } else if (SET_USER_ID.equals(action)) { - String userId = args.getString(0); - this.setUserId(userId, callbackContext); - } else if (SET_ANONYMIZE_IP.equals(action)) { - boolean anonymize = args.getBoolean(0); - this.setAnonymizeIp(anonymize, callbackContext); - } else if (SET_OPT_OUT.equals(action)) { - boolean optout = args.getBoolean(0); - this.setOptOut(optout, callbackContext); - } else if (SET_APP_VERSION.equals(action)) { - String version = args.getString(0); - this.setAppVersion(version, callbackContext); - } else if (GET_VAR.equals(action)) { - String variable = args.getString(0); - this.getVar(variable, callbackContext); - } else if (SET_VAR.equals(action)) { - String variable = args.getString(0); - String value = args.getString(1); - this.setVar(variable, value, callbackContext); - return true; - } else if (DISPATCH.equals(action)) { - this.dispatch(callbackContext); - return true; - } else if (DEBUG_MODE.equals(action)) { - this.debugMode(callbackContext); - } else if (ENABLE_UNCAUGHT_EXCEPTION_REPORTING.equals(action)) { - Boolean enable = args.getBoolean(0); - this.enableUncaughtExceptionReporting(enable, callbackContext); - } - return false; - } - - private void startTracker(String id, int dispatchPeriod, CallbackContext callbackContext) { - if (null != id && id.length() > 0) { - tracker = GoogleAnalytics.getInstance(this.cordova.getActivity()).newTracker(id); - callbackContext.success("tracker started"); - trackerStarted = true; - GoogleAnalytics.getInstance(this.cordova.getActivity()).setLocalDispatchPeriod(dispatchPeriod); - } else { - callbackContext.error("tracker id is not valid"); - } - } - - private void addCustomDimension(Integer key, String value, CallbackContext callbackContext) { - if (key <= 0) { - callbackContext.error("Expected positive integer argument for key."); - return; - } - - if (null == value || value.length() == 0) { - callbackContext.error("Expected non-empty string argument for value."); - return; - } - - customDimensions.put(key, value); - callbackContext.success("custom dimension started"); - } - - private <T> void addCustomDimensionsToHitBuilder(T builder) { - //unfortunately the base HitBuilders.HitBuilder class is not public, therefore have to use reflection to use - //the common setCustomDimension (int index, String dimension) method - try { - Method builderMethod = builder.getClass().getMethod("setCustomDimension", Integer.TYPE, String.class); - - for (Entry<Integer, String> entry : customDimensions.entrySet()) { - Integer key = entry.getKey(); - String value = entry.getValue(); - try { - builderMethod.invoke(builder, (key), value); - } catch (IllegalArgumentException e) { - } catch (IllegalAccessException e) { - } catch (InvocationTargetException e) { - } - } - } catch (SecurityException e) { - } catch (NoSuchMethodException e) { - } - } - - private void trackView(String screenname, String campaignUrl, boolean newSession, CallbackContext callbackContext) { - if (! trackerStarted ) { - callbackContext.error("Tracker not started"); - return; - } - - if (null != screenname && screenname.length() > 0) { - tracker.setScreenName(screenname); - - HitBuilders.ScreenViewBuilder hitBuilder = new HitBuilders.ScreenViewBuilder(); - addCustomDimensionsToHitBuilder(hitBuilder); - - if(!campaignUrl.equals("")){ - hitBuilder.setCampaignParamsFromUrl(campaignUrl); - } - - if(!newSession) { - tracker.send(hitBuilder.build()); - } else { - tracker.send(hitBuilder.setNewSession().build()); - } - - callbackContext.success("Track Screen: " + screenname); - } else { - callbackContext.error("Expected one non-empty string argument."); - } - } - - private void trackEvent(String category, String action, String label, long value, boolean newSession, CallbackContext callbackContext) { - if (!trackerStarted) { - callbackContext.error("Tracker not started"); - return; - } - - if (null != category && category.length() > 0) { - HitBuilders.EventBuilder hitBuilder = new HitBuilders.EventBuilder(); - addCustomDimensionsToHitBuilder(hitBuilder); - - if(!newSession){ - tracker.send(hitBuilder - .setCategory(category) - .setAction(action) - .setLabel(label) - .setValue(value) - .build()); - } else { - tracker.send(hitBuilder - .setCategory(category) - .setAction(action) - .setLabel(label) - .setValue(value) - .setNewSession() - .build()); - } - - callbackContext.success("Track Event: " + category); - } else { - callbackContext.error("Expected non-empty string arguments."); - } - } - - private void trackMetric(Integer key, String value, CallbackContext callbackContext) { - if (!trackerStarted) { - callbackContext.error("Tracker not started"); - return; - } - - if (key >= 0) { - HitBuilders.ScreenViewBuilder hitBuilder = new HitBuilders.ScreenViewBuilder(); - tracker.send(hitBuilder - .setCustomMetric(key, Float.parseFloat(value)) - .build() - ); - callbackContext.success("Track Metric: " + key + ", value: " + value); - } else { - callbackContext.error("Expected integer key: " + key + ", and string value: " + value); - } - } - - private void trackException(String description, Boolean fatal, CallbackContext callbackContext) { - if (!trackerStarted) { - callbackContext.error("Tracker not started"); - return; - } - - if (null != description && description.length() > 0) { - HitBuilders.ExceptionBuilder hitBuilder = new HitBuilders.ExceptionBuilder(); - addCustomDimensionsToHitBuilder(hitBuilder); - - tracker.send(hitBuilder - .setDescription(description) - .setFatal(fatal) - .build() - ); - callbackContext.success("Track Exception: " + description); - } else { - callbackContext.error("Expected non-empty string arguments."); - } - } - - private void trackTiming(String category, long intervalInMilliseconds, String name, String label, CallbackContext callbackContext) { - if (!trackerStarted) { - callbackContext.error("Tracker not started"); - return; - } - - if (null != category && category.length() > 0) { - HitBuilders.TimingBuilder hitBuilder = new HitBuilders.TimingBuilder(); - addCustomDimensionsToHitBuilder(hitBuilder); - - tracker.send(hitBuilder - .setCategory(category) - .setValue(intervalInMilliseconds) - .setVariable(name) - .setLabel(label) - .build() - ); - callbackContext.success("Track Timing: " + category); - } else { - callbackContext.error("Expected non-empty string arguments."); - } - } - - private void addTransaction(String id, String affiliation, double revenue, double tax, double shipping, String currencyCode, CallbackContext callbackContext) { - if (!trackerStarted) { - callbackContext.error("Tracker not started"); - return; - } - - if (null != id && id.length() > 0) { - HitBuilders.TransactionBuilder hitBuilder = new HitBuilders.TransactionBuilder(); - addCustomDimensionsToHitBuilder(hitBuilder); - - tracker.send(hitBuilder - .setTransactionId(id) - .setAffiliation(affiliation) - .setRevenue(revenue).setTax(tax) - .setShipping(shipping) - .setCurrencyCode(currencyCode) - .build() - ); //Deprecated - callbackContext.success("Add Transaction: " + id); - } else { - callbackContext.error("Expected non-empty ID."); - } - } - - private void addTransactionItem(String id, String name, String sku, String category, double price, long quantity, String currencyCode, CallbackContext callbackContext) { - if (!trackerStarted) { - callbackContext.error("Tracker not started"); - return; - } - - if (null != id && id.length() > 0) { - HitBuilders.ItemBuilder hitBuilder = new HitBuilders.ItemBuilder(); - addCustomDimensionsToHitBuilder(hitBuilder); - - tracker.send(hitBuilder - .setTransactionId(id) - .setName(name) - .setSku(sku) - .setCategory(category) - .setPrice(price) - .setQuantity(quantity) - .setCurrencyCode(currencyCode) - .build() - ); //Deprecated - callbackContext.success("Add Transaction Item: " + id); - } else { - callbackContext.error("Expected non-empty ID."); - } - } - - private void setAllowIDFACollection(Boolean enable, CallbackContext callbackContext) { - if (!trackerStarted) { - callbackContext.error("Tracker not started"); - return; - } - - tracker.enableAdvertisingIdCollection(enable); - callbackContext.success("Enable Advertising Id Collection: " + enable); - } - - private void setVar(String variable, String value, CallbackContext callbackContext) { - if (!trackerStarted) { - callbackContext.error("Tracker not started"); - return; - } - - tracker.set(variable, value); - callbackContext.success("Set variable " + variable + "to " + value); - } - private void dispatch(CallbackContext callbackContext) { - if (!trackerStarted) { - callbackContext.error("Tracker not started"); - return; - } - - GoogleAnalytics.getInstance(this.cordova.getActivity()).dispatchLocalHits(); - callbackContext.success("dispatch sent"); - } - - private void getVar(String variable, CallbackContext callbackContext) { - if (!trackerStarted) { - callbackContext.error("Tracker not started"); - return; - } - - String result = tracker.get(variable); - callbackContext.success(result); - } - - private void debugMode(CallbackContext callbackContext) { - GoogleAnalytics.getInstance(this.cordova.getActivity()).getLogger().setLogLevel(LogLevel.VERBOSE); - - this.debugModeEnabled = true; - callbackContext.success("debugMode enabled"); - } - - private void setAnonymizeIp(boolean anonymize, CallbackContext callbackContext) { - if (!trackerStarted) { - callbackContext.error("Tracker not started"); - return; - } - - tracker.setAnonymizeIp(anonymize); - callbackContext.success("Set AnonymizeIp " + anonymize); - } - - private void setOptOut(boolean optout, CallbackContext callbackContext) { - if (!trackerStarted) { - callbackContext.error("Tracker not started"); - return; - } - - GoogleAnalytics.getInstance(this.cordova.getActivity()).setAppOptOut(optout); - callbackContext.success("Set Opt-Out " + optout); - } - - private void setUserId(String userId, CallbackContext callbackContext) { - if (!trackerStarted) { - callbackContext.error("Tracker not started"); - return; - } - - tracker.set("&uid", userId); - callbackContext.success("Set user id" + userId); - } - - private void setAppVersion(String version, CallbackContext callbackContext) { - if (!trackerStarted) { - callbackContext.error("Tracker not started"); - return; - } - - tracker.set("&av", version); - callbackContext.success("Set app version: " + version); - } - - private void enableUncaughtExceptionReporting(Boolean enable, CallbackContext callbackContext) { - if (!trackerStarted) { - callbackContext.error("Tracker not started"); - return; - } - - tracker.enableExceptionReporting(enable); - callbackContext.success((enable ? "Enabled" : "Disabled") + " uncaught exception reporting"); - } -} diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/browser/UniversalAnalyticsProxy.js b/StoneIsland/plugins/cordova-plugin-google-analytics/browser/UniversalAnalyticsProxy.js deleted file mode 100644 index a42eee39..00000000 --- a/StoneIsland/plugins/cordova-plugin-google-analytics/browser/UniversalAnalyticsProxy.js +++ /dev/null @@ -1,253 +0,0 @@ -function UniversalAnalyticsProxy() { - this._isDebug = false; - this._isEcommerceRequired = false; - this._trackingId = null; - - var namespace = window.GoogleAnalyticsObject || 'nativeGa'; - loadGoogleAnalytics.call(this, namespace); - - bindAll(this, [ - '_ensureEcommerce', - '_uncaughtExceptionHandler', - 'addCustomDimension', - 'addTransaction', - 'addTransactionItem', - 'debugMode', - 'enableUncaughtExceptionReporting', - 'setAllowIDFACollection', - 'setAnonymizeIp', - 'setAppVersion', - 'setOptOut', - 'setUserId', - 'getVar', - 'setVar', - 'startTrackerWithId', - 'trackEvent', - 'trackException', - 'trackMetric', - 'trackTiming', - 'trackView' - ]); -} - -UniversalAnalyticsProxy.prototype = { - startTrackerWithId: wrap(function (trackingId) { - this._trackingId = trackingId; - - this._ga('create', { - trackingId: trackingId, - cookieDomain: 'auto' - }); - this._ga('set', 'appName', document.title); - }), - - setUserId: wrap(function (userId) { - this._ga('set', 'userId', userId); - }), - - setAnonymizeIp: wrap(function (anonymize) { - this._ga('set', 'anonymizeIp', anonymize); - }), - - setOptOut: wrap(function (optout) { - if (!this._trackingId) { - throw new Error('TrackingId not available'); - } - window['ga-disable-' + this._trackingId] = optout; - }), - - setAppVersion: wrap(function (version) { - this._ga('set', 'appVersion', version); - }), - - setAllowIDFACollection: wrap(function (enable) { - // Not supported by browser platofrm - }), - - getVar: function (param, success, error) { - this._ga(function(tracker){ - success(tracker.get(param)); - }); - }, - - setVar: wrap(function(param, value){ - this._ga('set', param, value); - }), - - debugMode: wrap(function () { - this._isDebug = true; - }), - - addCustomDimension: wrap(function (key, value) { - this._ga('set', 'dimension' + key, value); - }), - - trackMetric: wrap(function (key, value) { - this._ga('set', 'metric' + key, value); - }), - - trackEvent: send(function (category, action, label, value, newSession) { - return { - hitType: 'event', - eventCategory: category, - eventAction: action, - eventLabel: label, - eventValue: value - }; - }), - - trackView: send(function (screen) { - return { - hitType: 'screenview', - screenName: screen - }; - }), - - trackException: send(function (description, fatal) { - return { - hitType: 'exception', - exDescription: description, - exFatal: fatal - }; - }), - - trackTiming: send(function (category, intervalInMilliseconds, name, label) { - return { - hitType: 'timing', - timingCategory: category, - timingVar: name, - timingValue: intervalInMilliseconds, - timingLabel: label - }; - }), - - addTransaction: wrap(function (transactionId, affiliation, revenue, tax, shipping, currencyCode) { - this._ensureEcommerce(); - this._ga('ecommerce:addTransaction', { - id: transactionId, - affiliation: affiliation, - revenue: String(revenue), - shipping: String(shipping), - tax: String(tax), - currency: currencyCode - }); - }), - - addTransactionItem: wrap(function (transactionId, name, sku, category, price, quantity, currencyCode) { - this._ensureEcommerce(); - this._ga('ecommerce:addItem', { - id: transactionId, - name: name, - sku: sku, - category: category, - price: String(price), - quantity: String(quantity), - currency: currencyCode - }); - }), - - enableUncaughtExceptionReporting: wrap(function (enable) { - if (enable) { - window.addEventListener('error', this._uncaughtExceptionHandler); - } else { - window.removeEventListener('error', this._uncaughtExceptionHandler); - } - }), - - _ga: function () { - var args = Array.prototype.slice.call(arguments); - if (this._isDebug) { - console.debug('UniversalAnalyticsProxy', args); - } - this._nativeGa.apply(this._nativeGa, args); - }, - - _uncaughtExceptionHandler: function (err) { - this._ga('send', { - hitType: 'exception', - exDescription: err.message, - exFatal: true - }); - }, - - _ensureEcommerce: function() { - if (this._isEcommerceRequired) return; - this._ga('require', 'ecommerce'); - this._isEcommerceRequired = true; - } -}; - -function send(fn) { - return function (success, error, args) { - var command = fn.apply(this, args); - var timeout = setTimeout(function () { - error(new Error('send timeout')); - }, 3000); - - command.hitCallback = function hitCallback(result) { - clearTimeout(timeout); - success(result); - }; - - try { - this._ga('send', command); - } catch (err) { - clearTimeout(timeout); - defer(error, err); - } - }; -} - -function bindAll(that, names) { - names.forEach(function(name) { - if (typeof that[name] === 'function') { - that[name] = that[name].bind(that); - } - }); -} - -/** - * Proceed to the asynchronous loading of Google's analytics.js. - * Initialize `this._nativeGa` once the script is loaded, using - * the `onload` callback of the `script` DOM node. - * - * @param {string} name Reference (global namespace) of the GA object. - */ -function loadGoogleAnalytics(name) { - window.GoogleAnalyticsObject = name; - - window[name] = window[name] || function () { - (window[name].q = window[name].q || []).push(arguments); - }; - window[name].l = 1 * new Date(); - this._nativeGa = window[name]; - - var script = document.createElement('script'); - var scripts = document.getElementsByTagName('script')[0]; - script.src = 'https://www.google-analytics.com/analytics.js'; - script.async = 1; - scripts.parentNode.insertBefore(script, scripts); - - // analytics.js creates a new object once initialized, update our reference - script.onload = (function() { this._nativeGa = window[name]; }).bind(this); -} - -function wrap(fn) { - return function (success, error, args) { - try { - fn.apply(this, args); - setTimeout(success, 0); - } catch (err) { - defer(error, err); - } - }; -} - -function defer(fn) { - var args = Array.prototype.slice.call(arguments, 1); - setTimeout(function () { - fn.apply(null, args); - }, 0); -} - -require('cordova/exec/proxy').add('UniversalAnalytics', new UniversalAnalyticsProxy()); diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAI.h b/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAI.h deleted file mode 100644 index 7f3f7029..00000000 --- a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAI.h +++ /dev/null @@ -1,192 +0,0 @@ -/*! - @header GAI.h - @abstract Google Analytics iOS SDK Header - @version 3.14 - @copyright Copyright 2015 Google Inc. All rights reserved. - */ - -#import <Foundation/Foundation.h> - -#import "GAILogger.h" -#import "GAITrackedViewController.h" -#import "GAITracker.h" - -typedef NS_ENUM(NSUInteger, GAIDispatchResult) { - kGAIDispatchNoData, - kGAIDispatchGood, - kGAIDispatchError -}; - -/*! Google Analytics product string. */ -extern NSString *const kGAIProduct; - -/*! Google Analytics version string. */ -extern NSString *const kGAIVersion; - -/*! - NSError objects returned by the Google Analytics SDK may have this error domain - to indicate that the error originated in the Google Analytics SDK. - */ -extern NSString *const kGAIErrorDomain; - -/*! Google Analytics error codes. */ -typedef enum { - // This error code indicates that there was no error. Never used. - kGAINoError = 0, - - // This error code indicates that there was a database-related error. - kGAIDatabaseError, - - // This error code indicates that there was a network-related error. - kGAINetworkError, -} GAIErrorCode; - -/*! - Google Analytics iOS top-level class. Provides facilities to create trackers - and set behaviorial flags. - */ -@interface GAI : NSObject - -/*! - For convenience, this class exposes a default tracker instance. - This is initialized to `nil` and will be set to the first tracker that is - instantiated in trackerWithTrackingId:. It may be overridden as desired. - - The GAITrackedViewController class will, by default, use this tracker instance. - */ -@property(nonatomic, assign) id<GAITracker> defaultTracker; - -/*! - The GAILogger to use. - */ -@property(nonatomic, retain) id<GAILogger> logger; - -/*! - When this is true, no tracking information will be gathered; tracking calls - will effectively become no-ops. When set to true, all tracking information that - has not yet been submitted. The value of this flag will be persisted - automatically by the SDK. Developers can optionally use this flag to implement - an opt-out setting in the app to allows users to opt out of Google Analytics - tracking. - - This is set to `NO` the first time the Google Analytics SDK is used on a - device, and is persisted thereafter. - */ -@property(nonatomic, assign) BOOL optOut; - -/*! - If this value is positive, tracking information will be automatically - dispatched every dispatchInterval seconds. Otherwise, tracking information must - be sent manually by calling dispatch. - - By default, this is set to `120`, which indicates tracking information should - be dispatched automatically every 120 seconds. - */ -@property(nonatomic, assign) NSTimeInterval dispatchInterval; - -/*! - When set to true, the SDK will record the currently registered uncaught - exception handler, and then register an uncaught exception handler which tracks - the exceptions that occurred using defaultTracker. If defaultTracker is not - `nil`, this function will track the exception on the tracker and attempt to - dispatch any outstanding tracking information for 5 seconds. It will then call - the previously registered exception handler, if any. When set back to false, - the previously registered uncaught exception handler will be restored. - */ -@property(nonatomic, assign) BOOL trackUncaughtExceptions; - -/*! - When this is 'YES', no tracking information will be sent. Defaults to 'NO'. - */ -@property(nonatomic, assign) BOOL dryRun; - -/*! Get the shared instance of the Google Analytics for iOS class. */ -+ (GAI *)sharedInstance; - -/*! - Creates or retrieves a GAITracker implementation with the specified name and - tracking ID. If the tracker for the specified name does not already exist, then - it will be created and returned; otherwise, the existing tracker will be - returned. If the existing tracker for the respective name has a different - tracking ID, that tracking ID is not changed by this method. If defaultTracker - is not set, it will be set to the tracker instance returned here. - - @param name The name of this tracker. Must not be `nil` or empty. - - @param trackingId The tracking ID to use for this tracker. It should be of - the form `UA-xxxxx-y`. - - @return A GAITracker associated with the specified name. The tracker - can be used to send tracking data to Google Analytics. The first time this - method is called with a particular name, the tracker for that name will be - returned, and subsequent calls with the same name will return the same - instance. It is not necessary to retain the tracker because the tracker will be - retained internally by the library. - - If an error occurs or the name is not valid, this method will return - `nil`. - */ -- (id<GAITracker>)trackerWithName:(NSString *)name - trackingId:(NSString *)trackingId; - -/*! - Creates or retrieves a GAITracker implementation with name equal to - the specified tracking ID. If the tracker for the respective name does not - already exist, it is created, has it's tracking ID set to |trackingId|, - and is returned; otherwise, the existing tracker is returned. If the existing - tracker for the respective name has a different tracking ID, that tracking ID - is not changed by this method. If defaultTracker is not set, it is set to the - tracker instance returned here. - - @param trackingId The tracking ID to use for this tracker. It should be of - the form `UA-xxxxx-y`. The name of the tracker will be the same as trackingID. - - @return A GAITracker associated with the specified trackingID. The tracker - can be used to send tracking data to Google Analytics. The first time this - method is called with a particular trackingID, the tracker for the respective - name will be returned, and subsequent calls with the same trackingID - will return the same instance. It is not necessary to retain the tracker - because the tracker will be retained internally by the library. - - If an error occurs or the trackingId is not valid, this method will return - `nil`. - */ -- (id<GAITracker>)trackerWithTrackingId:(NSString *)trackingId; - -/*! - Remove a tracker from the trackers dictionary. If it is the default tracker, - clears the default tracker as well. - - @param name The name of the tracker. - */ -- (void)removeTrackerByName:(NSString *)name; - -/*! - Dispatches any pending tracking information. - - Note that this does not have any effect on dispatchInterval, and can be used in - conjunction with periodic dispatch. */ -- (void)dispatch; - -/*! - Dispatches the next tracking beacon in the queue, calling completionHandler when - the tracking beacon has either been sent (returning kGAIDispatchGood) or an error has resulted - (returning kGAIDispatchError). If there is no network connection or there is no data to send, - kGAIDispatchNoData is returned. - - Note that calling this method with a non-nil completionHandler disables periodic dispatch. - Periodic dispatch can be reenabled by setting the dispatchInterval to a positive number when - the app resumes from the background. - - Calling this method with a nil completionHandler is the same as calling the dispatch - above. - - This method can be used for background data fetching in iOS 7.0 or later. It would be wise to - call this when the application is exiting to initiate the submission of any unsubmitted - tracking information. - - @param completionHandler The block to run after a single dispatch request. The GAIDispatchResult - param indicates whether the dispatch succeeded, had an error, or had no hits to dispatch. - */ -- (void)dispatchWithCompletionHandler:(void (^)(GAIDispatchResult result))completionHandler; -@end diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAIDictionaryBuilder.h b/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAIDictionaryBuilder.h deleted file mode 100644 index b8c5fdab..00000000 --- a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAIDictionaryBuilder.h +++ /dev/null @@ -1,217 +0,0 @@ -/*! - @header GAIDictionaryBuilder.h - @abstract Google Analytics iOS SDK Hit Format Header - @copyright Copyright 2013 Google Inc. All rights reserved. - */ - -#import <Foundation/Foundation.h> - -#import "GAIEcommerceProduct.h" -#import "GAIEcommerceProductAction.h" -#import "GAIEcommercePromotion.h" - -/*! - * Helper class to build a dictionary of hit parameters and values. - * <br> - * Examples: - * <code> - * id<GAITracker> t = // get a tracker. - * [t send:[[[GAIDictionaryBuilder createEventWithCategory:@"EventCategory" - * action:@"EventAction" - * label:nil - * value:nil] - * set:@"dimension1" forKey:[GAIFields customDimensionForIndex:1]] build]]; - * </code> - * This will send an event hit type with the specified parameters - * and a custom dimension parameter. - * <br> - * If you want to send a parameter with all hits, set it on GAITracker directly. - * <code> - * [t set:kGAIScreenName value:@"Home"]; - * [t send:[[GAIDictionaryBuilder createSocialWithNetwork:@"Google+" - * action:@"PlusOne" - * target:@"SOME_URL"] build]]; - * [t send:[[GAIDictionaryBuilder createSocialWithNetwork:@"Google+" - * action:@"Share" - * target:@"SOME_POST"] build]]; - * [t send:[[GAIDictionaryBuilder createSocialWithNetwork:@"Google+" - * action:@"HangOut" - * target:@"SOME_CIRCLE"] - * build]]; - * </code> - * You can override a value set on the tracker by adding it to the dictionary. - * <code> - * [t set:kGAIScreenName value:@"Home"]; - * [t send:...]; - * [t send[[[GAIDictionaryBuilder createEventWithCategory:@"click" - * action:@"popup" - * label:nil - * value:nil] - * set:@"popup title" forKey:kGAIScreenName] build]]; - * </code> - * The values set via [GAIDictionaryBuilder set] or - * [GAIDictionaryBuilder setAll] will override any existing values in the - * GAIDictionaryBuilder object (i.e. initialized by - * [GAIDictionaryBuilder createXYZ]). e.g. - * <code> - * GAIDictionaryBuilder *m = - * GAIDictionaryBuilder createTimingWithCategory:@"category" - * interval:@0 - * name:@"name" - * label:nil]; - * [t send:[m.set:@"10" forKey:kGAITimingVar] build]; - * [t send:[m.set:@"20" forKey:kGAITimingVar] build]; - * </code> - */ -@interface GAIDictionaryBuilder : NSObject - -- (GAIDictionaryBuilder *)set:(NSString *)value - forKey:(NSString *)key; - -/*! - * Copies all the name-value pairs from params into this object, ignoring any - * keys that are not NSString and any values that are neither NSString or - * NSNull. - */ -- (GAIDictionaryBuilder *)setAll:(NSDictionary *)params; - -/*! - * Returns the value for the input parameter paramName, or nil if paramName - * is not present. - */ -- (NSString *)get:(NSString *)paramName; - -/*! - * Return an NSMutableDictionary object with all the parameters set in this - */ -- (NSMutableDictionary *)build; - -/*! - * Parses and translates utm campaign parameters to analytics campaign param - * and returns them as a map. - * - * @param urlString url containing utm campaign parameters. - * - * Valid campaign parameters are: - * <ul> - * <li>utm_id</li> - * <li>utm_campaign</li> - * <li>utm_content</li> - * <li>utm_medium</li> - * <li>utm_source</li> - * <li>utm_term</li> - * <li>dclid</li> - * <li>gclid</li> - * <li>gmob_t</li> - * <li>aclid</li> - * <li>anid</li> - * </ul> - * <p> - * Example: - * http://my.site.com/index.html?utm_campaign=wow&utm_source=source - * utm_campaign=wow&utm_source=source. - * <p> - * For more information on auto-tagging, see - * http://support.google.com/googleanalytics/bin/answer.py?hl=en&answer=55590 - * <p> - * For more information on manual tagging, see - * http://support.google.com/googleanalytics/bin/answer.py?hl=en&answer=55518 - */ -- (GAIDictionaryBuilder *)setCampaignParametersFromUrl:(NSString *)urlString; - -/*! - Returns a GAIDictionaryBuilder object with parameters specific to an appview - hit. - - Note that using this method will not set the screen name for followon hits. To - do that you need to call set:kGAIDescription value:<screenName> on the - GAITracker instance. - - This method is deprecated. Use createScreenView instead. - */ -+ (GAIDictionaryBuilder *)createAppView DEPRECATED_MSG_ATTRIBUTE("Use createScreenView instead."); - -/*! - Returns a GAIDictionaryBuilder object with parameters specific to a screenview - hit. - - Note that using this method will not set the screen name for followon hits. To - do that you need to call set:kGAIDescription value:<screenName> on the - GAITracker instance. - */ -+ (GAIDictionaryBuilder *)createScreenView; - -/*! - Returns a GAIDictionaryBuilder object with parameters specific to an event hit. - */ -+ (GAIDictionaryBuilder *)createEventWithCategory:(NSString *)category - action:(NSString *)action - label:(NSString *)label - value:(NSNumber *)value; - -/*! - Returns a GAIDictionaryBuilder object with parameters specific to an exception - hit. - */ -+ (GAIDictionaryBuilder *)createExceptionWithDescription:(NSString *)description - withFatal:(NSNumber *)fatal; - -/*! - Returns a GAIDictionaryBuilder object with parameters specific to an item hit. - */ -+ (GAIDictionaryBuilder *)createItemWithTransactionId:(NSString *)transactionId - name:(NSString *)name - sku:(NSString *)sku - category:(NSString *)category - price:(NSNumber *)price - quantity:(NSNumber *)quantity - currencyCode:(NSString *)currencyCode; - -/*! - Returns a GAIDictionaryBuilder object with parameters specific to a social hit. - */ -+ (GAIDictionaryBuilder *)createSocialWithNetwork:(NSString *)network - action:(NSString *)action - target:(NSString *)target; - -/*! - Returns a GAIDictionaryBuilder object with parameters specific to a timing hit. - */ -+ (GAIDictionaryBuilder *)createTimingWithCategory:(NSString *)category - interval:(NSNumber *)intervalMillis - name:(NSString *)name - label:(NSString *)label; - -/*! - Returns a GAIDictionaryBuilder object with parameters specific to a transaction - hit. - */ -+ (GAIDictionaryBuilder *)createTransactionWithId:(NSString *)transactionId - affiliation:(NSString *)affiliation - revenue:(NSNumber *)revenue - tax:(NSNumber *)tax - shipping:(NSNumber *)shipping - currencyCode:(NSString *)currencyCode; - -/*! - Set the product action field for this hit. - */ -- (GAIDictionaryBuilder *)setProductAction:(GAIEcommerceProductAction *)productAction; - -/*! - Adds a product to this hit. - */ -- (GAIDictionaryBuilder *)addProduct:(GAIEcommerceProduct *)product; - -/*! - Add a product impression to this hit. - */ -- (GAIDictionaryBuilder *)addProductImpression:(GAIEcommerceProduct *)product - impressionList:(NSString *)name - impressionSource:(NSString *)source; - -/*! - Add a promotion to this hit. - */ -- (GAIDictionaryBuilder *)addPromotion:(GAIEcommercePromotion *)promotion; -@end diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAIEcommerceFields.h b/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAIEcommerceFields.h deleted file mode 100644 index b3ba60ae..00000000 --- a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAIEcommerceFields.h +++ /dev/null @@ -1,124 +0,0 @@ -/*! - @header GAIEcommerceFields.h - @abstract Google Analytics iOS SDK Ecommerce Hit Format Header - @copyright Copyright 2014 Google Inc. All rights reserved. - */ - -#import <Foundation/Foundation.h> - -/*! - This class provides several fields and methods useful as wire format parameters for - Enhanced Ecommerce. See the online developer guides for Enhanced Ecommerce for details - on how to use the Enhanced Ecommerce features. - */ - -// Enhanced Ecommerce Product fields -extern NSString *const kGAIProductId; -extern NSString *const kGAIProductName; -extern NSString *const kGAIProductBrand; -extern NSString *const kGAIProductCategory; -extern NSString *const kGAIProductVariant; -extern NSString *const kGAIProductPrice; -extern NSString *const kGAIProductQuantity; -extern NSString *const kGAIProductCouponCode; -extern NSString *const kGAIProductPosition; - -extern NSString *const kGAIProductAction; - -// product action values -extern NSString *const kGAIPADetail; -extern NSString *const kGAIPAClick; -extern NSString *const kGAIPAAdd; -extern NSString *const kGAIPARemove; -extern NSString *const kGAIPACheckout; -extern NSString *const kGAIPACheckoutOption; -extern NSString *const kGAIPAPurchase; -extern NSString *const kGAIPARefund; - -// product action fields -// used for 'purchase' and 'refund' actions -extern NSString *const kGAIPATransactionId; -extern NSString *const kGAIPAAffiliation; -extern NSString *const kGAIPARevenue; -extern NSString *const kGAIPATax; -extern NSString *const kGAIPAShipping; -extern NSString *const kGAIPACouponCode; -// used for 'checkout' action -extern NSString *const kGAICheckoutStep; -extern NSString *const kGAICheckoutOption; -// used for 'detail' and 'click' actions -extern NSString *const kGAIProductActionList; -extern NSString *const kGAIProductListSource; - -// Enhanced Ecommerce Impressions fields -extern NSString *const kGAIImpressionName; -extern NSString *const kGAIImpressionListSource; -extern NSString *const kGAIImpressionProduct; -extern NSString *const kGAIImpressionProductId; -extern NSString *const kGAIImpressionProductName; -extern NSString *const kGAIImpressionProductBrand; -extern NSString *const kGAIImpressionProductCategory; -extern NSString *const kGAIImpressionProductVariant; -extern NSString *const kGAIImpressionProductPosition; -extern NSString *const kGAIImpressionProductPrice; - -// Enhanced Ecommerce Promotions fields -extern NSString *const kGAIPromotionId; -extern NSString *const kGAIPromotionName; -extern NSString *const kGAIPromotionCreative; -extern NSString *const kGAIPromotionPosition; - -// Promotion actions -extern NSString *const kGAIPromotionAction; -extern NSString *const kGAIPromotionView; -extern NSString *const kGAIPromotionClick; - -@interface GAIEcommerceFields : NSObject - -/*! - Generates an enhanced ecommerce product field. Note that field names generated by - customDimensionForIndex and customMetricForIndex can be used as suffixes. - - @param index the index of the product - @param suffix the product field suffix (such as kGAIProductPrice). - - @return an NSString representing the product field parameter - */ -+ (NSString *)productFieldForIndex:(NSUInteger)index suffix:(NSString *)suffix; - -/*! - Genrates an enhanced ecommerce impression list field name with an index. The return value of - this method should also be used as input to the productImpressionForList method below. - - @param index the index of the impression list - - @return an NSString representing the impression list parameter - */ -+ (NSString *)impressionListForIndex:(NSUInteger)index; - -/*! - Generates an enhanced ecommerce product impression field with the impression list, product index - and product suffix as parameters. The output of the method impressionListForIndex above should be - used as the input list for this method. The output of customDimensionForIndex and - customMetricForIndex can be used as suffixes. - - @param list the impression list for this product impression - @param index the index of this product in the impression list - @param suffix the product impression suffix for this field - - @return an NSString representing this product impression field parameter - */ -+ (NSString *)productImpressionForList:(NSString *)list - index:(NSUInteger)index - suffix:(NSString *)Suffix; - -/*! - Generates an enhanced ecommerce promotion field with an index and suffix. - - @param index the index of the promotion - @param suffix the promotion suffix (such as kGAIPromotionId) - - @return an NSString representing this promotion field paramter - */ -+ (NSString *)promotionForIndex:(NSUInteger)index suffix:(NSString *)suffix; -@end diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAIEcommerceProduct.h b/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAIEcommerceProduct.h deleted file mode 100644 index 029f7638..00000000 --- a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAIEcommerceProduct.h +++ /dev/null @@ -1,102 +0,0 @@ -/*! - @header GAIEcommerceProduct.h - @abstract Google Analytics iOS SDK Hit Format Header - @copyright Copyright 2014 Google Inc. All rights reserved. - */ - -#import <Foundation/Foundation.h> - -/*! - * Class to construct product related information for a Google Analytics beacon. Use this class to - * report information about products sold by merchants or impressions of products seen by users. - * Instances of this class can be associated with both Product Actions and Product - * Impression Lists. - * <br> - * Typical usage: - * <code> - * [tracker set:kGAIScreenName value:@"MyScreen"]; - * GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createScreenView]; - * GAIEcommerceProduct *product = [[GAIEcommerceProduct alloc] init]; - * [product setId:@""PID-1234""]; - * [product setName:@"Space Monkeys!"]; - * [product setPrice:@100]; - * [product setQuantity:@2]; - * [builder addProductImpression:product impressionList:@"listName"]; - * [tracker send:[builder build]]; - * </code> - */ -@interface GAIEcommerceProduct : NSObject - -/*! - Sets the id that is used to identify a product in GA reports. - */ -- (GAIEcommerceProduct *)setId:(NSString *)productId; - -/*! - Sets the name that is used to indentify the product in GA reports. - */ -- (GAIEcommerceProduct *)setName:(NSString *)productName; - -/*! - Sets the brand associated with the product in GA reports. - */ -- (GAIEcommerceProduct *)setBrand:(NSString *)productBrand; - -/*! - Sets the category associated with the product in GA reports. - */ -- (GAIEcommerceProduct *)setCategory:(NSString *)productCategory; - -/*! - Sets the variant of the product. - */ -- (GAIEcommerceProduct *)setVariant:(NSString *)productVariant; - -/*! - Sets the price of the product. - */ -- (GAIEcommerceProduct *)setPrice:(NSNumber *)productPrice; - -/*! - Sets the quantity of the product. This field is usually not used with product impressions. - */ -- (GAIEcommerceProduct *)setQuantity:(NSNumber *)productQuantity; - -/*! - Sets the coupon code associated with the product. This field is usually not used with product - impressions. - */ -- (GAIEcommerceProduct *)setCouponCode:(NSString *)productCouponCode; - -/*! - Sets the position of the product on the screen/product impression list, etc. - */ -- (GAIEcommerceProduct *)setPosition:(NSNumber *)productPosition; - -/*! - Sets the custom dimension associated with this product. - */ -- (GAIEcommerceProduct *)setCustomDimension:(NSUInteger)index value:(NSString *)value; - -/*! - Sets the custom metric associated with this product. - */ -- (GAIEcommerceProduct *)setCustomMetric:(NSUInteger)index value:(NSNumber *)value; - -/*! - Builds an NSDictionary of fields stored in this instance suitable for a product action. The - index parameter is the index of this product in the product action list. - <br> - Normally, users will have no need to call this method. - */ -- (NSDictionary *)buildWithIndex:(NSUInteger)index; - -/*! - Builds an NSDictionary of fields stored in this instance suitable for an impression list. The - lIndex parameter is the index of the product impression list while the index parameter is the - index of this product in that impression list. - <br> - Normally, users will have no need to call this method. - */ -- (NSDictionary *)buildWithListIndex:(NSUInteger)lIndex index:(NSUInteger)index; -@end diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAIEcommerceProductAction.h b/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAIEcommerceProductAction.h deleted file mode 100644 index e3da1c15..00000000 --- a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAIEcommerceProductAction.h +++ /dev/null @@ -1,107 +0,0 @@ -/*! - @header GAIProductAction.h - @abstract Google Analytics iOS SDK Hit Format Header - @copyright Copyright 2014 Google Inc. All rights reserved. - */ - -#import <Foundation/Foundation.h> - -/*! - * Class to construct transaction/checkout or other product interaction related information for a - * Google Analytics hit. Use this class to report information about products sold, viewed or - * refunded. This class is intended to be used with GAIDictionaryBuilder. - * <br> - * Typical usage: - * <code> - * [tracker set:kGAIScreenName value:@"MyScreen"]; - * GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createScreenView]; - * GAIEcommerceProductAction *action = [[GAIEcommerceProductAction alloc] init]; - * [action setAction:kGAIPAPurchase]; - * [action setTransactionId:@"TT-1234"]; - * [action setRevenue:@3.14]; - * [action setCouponCode:@"EXTRA100"]; - * [builder setProductAction:action]; - * GAIEcommerceProduct *product = [[GAIEcommerceProduct alloc] init]; - * [product setId:@""PID-1234""]; - * [product setName:@"Space Monkeys!"]; - * [product setPrice:@100]; - * [product setQuantity:@2]; - * [builder addProduct:product]; - * [tracker send:[builder build]]; - * </code> - */ -@interface GAIEcommerceProductAction : NSObject - -/*! - Sets the product action field for this product action. Valid values can be found in - GAIEcommerceFields.h under "product action values". - */ -- (GAIEcommerceProductAction *)setAction:(NSString *)productAction; - -/*! - The unique id associated with the transaction. This value is used for kGAIPAPurchase and - kGAIPARefund product actions. - */ -- (GAIEcommerceProductAction *)setTransactionId:(NSString *)transactionId; - -/*! - Sets the transaction's affiliation value. This value is used for kGAIPAPurchase and - kGAIPARefund product actions. - */ -- (GAIEcommerceProductAction *)setAffiliation:(NSString *)affiliation; - -/*! - Sets the transaction's total revenue. This value is used for kGAIPAPurchase and kGAIPARefund - product actions. - */ -- (GAIEcommerceProductAction *)setRevenue:(NSNumber *)revenue; - -/*! - Sets the transaction's total tax. This value is used for kGAIPAPurchase and kGAIPARefund - product actions. - */ -- (GAIEcommerceProductAction *)setTax:(NSNumber *)tax; - -/*! - Sets the transaction's total shipping costs. This value is used for kGAIPAPurchase and - kGAIPARefund product actions. - */ -- (GAIEcommerceProductAction *)setShipping:(NSNumber *)shipping; - -/*! - Sets the coupon code used in this transaction. This value is used for kGAIPAPurchase and - kGAIPARefund product actions. - */ -- (GAIEcommerceProductAction *)setCouponCode:(NSString *)couponCode; - -/*! - Sets the checkout process's progress. This value is used for kGAICheckout and - kGAICheckoutOptions product actions. - */ -- (GAIEcommerceProductAction *)setCheckoutStep:(NSNumber *)checkoutStep; - -/*! - Sets the option associated with the checkout. This value is used for kGAICheckout and - kGAICheckoutOptions product actions. - */ -- (GAIEcommerceProductAction *)setCheckoutOption:(NSString *)checkoutOption; - -/*! - Sets the list name associated with the products in Google Analytics beacons. This value is - used in kGAIPADetail and kGAIPAClick product actions. - */ -- (GAIEcommerceProductAction *)setProductActionList:(NSString *)productActionList; - -/*! - Sets the list source name associated with the products in Google Analytics beacons. This value - is used in kGAIPADetail and kGAIPAClick product actions. - */ -- (GAIEcommerceProductAction *)setProductListSource:(NSString *)productListSource; - -/*! - Builds an NSDictionary of fields stored in this instance representing this product action. - <br> - Normally, users will have no need to call this method. - */ -- (NSDictionary *)build; -@end diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAIEcommercePromotion.h b/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAIEcommercePromotion.h deleted file mode 100644 index c7bf25af..00000000 --- a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAIEcommercePromotion.h +++ /dev/null @@ -1,54 +0,0 @@ -/*! - @header GAIEcommercePromotion.h - @abstract Google Analytics iOS SDK Hit Format Header - @copyright Copyright 2014 Google Inc. All rights reserved. - */ - -#import <Foundation/Foundation.h> - -/*! - * Class to construct promotion related fields for Google Analytics hits. The fields from this class - * can be used to represent internal promotions that run within an app, such as banners, banner ads - * etc. - * - * Typical usage: - * <code> - * GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createScreenView]; - * GAIEcommercePromotion *promotion = [[GAIEcommercePromotion alloc] init]; - * [promotion setId:@"PROMO-ID1234"]; - * [promotion setName:@"Home screen banner"]; - * [builder set:kGAIPromotionClick forKey:kGAIPromotionAction]; - * [builder addPromotion:promotion]; - * [tracker send:builder.build]]; - * </code> - */ -@interface GAIEcommercePromotion : NSObject - -/*! - Sets the id that is used to identify a promotion in GA reports. - */ -- (GAIEcommercePromotion *)setId:(NSString *)pid; - -/*! - Sets the name that is used to identify a promotion in GA reports. - */ -- (GAIEcommercePromotion *)setName:(NSString *)name; - -/*! - Sets the name of the creative associated with the promotion. - */ -- (GAIEcommercePromotion *)setCreative:(NSString *)creative; - -/*! - Sets the position of the promotion. - */ -- (GAIEcommercePromotion *)setPosition:(NSString *)position; - -/*! - Builds an NSDictionary of fields stored in this instance. The index parameter is the - index of this promotion in that promotion list. - <br> - Normally, users will have no need to call this method. - */ -- (NSDictionary *)buildWithIndex:(NSUInteger)index; -@end diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAIFields.h b/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAIFields.h deleted file mode 100644 index e54cef03..00000000 --- a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAIFields.h +++ /dev/null @@ -1,133 +0,0 @@ -/*! - @header GAIFields.h - @abstract Google Analytics iOS SDK Hit Format Header - @copyright Copyright 2013 Google Inc. All rights reserved. - */ - -#import <Foundation/Foundation.h> - -/*! - These fields can be used for the wire format parameter names required by - the |GAITracker| get, set and send methods as well as the set methods in the - |GAIDictionaryBuilder| class. - */ -extern NSString *const kGAIUseSecure; - -extern NSString *const kGAIHitType; -extern NSString *const kGAITrackingId; -extern NSString *const kGAIClientId; -extern NSString *const kGAIDataSource; -extern NSString *const kGAIAnonymizeIp; -extern NSString *const kGAISessionControl; -extern NSString *const kGAIDeviceModelVersion; -extern NSString *const kGAIScreenResolution; -extern NSString *const kGAIViewportSize; -extern NSString *const kGAIEncoding; -extern NSString *const kGAIScreenColors; -extern NSString *const kGAILanguage; -extern NSString *const kGAIJavaEnabled; -extern NSString *const kGAIFlashVersion; -extern NSString *const kGAINonInteraction; -extern NSString *const kGAIReferrer; -extern NSString *const kGAILocation; -extern NSString *const kGAIHostname; -extern NSString *const kGAIPage; -extern NSString *const kGAIDescription; // synonym for kGAIScreenName -extern NSString *const kGAIScreenName; // synonym for kGAIDescription -extern NSString *const kGAITitle; -extern NSString *const kGAIAdMobHitId; -extern NSString *const kGAIAppName; -extern NSString *const kGAIAppVersion; -extern NSString *const kGAIAppId; -extern NSString *const kGAIAppInstallerId; -extern NSString *const kGAIUserId; - -extern NSString *const kGAIEventCategory; -extern NSString *const kGAIEventAction; -extern NSString *const kGAIEventLabel; -extern NSString *const kGAIEventValue; - -extern NSString *const kGAISocialNetwork; -extern NSString *const kGAISocialAction; -extern NSString *const kGAISocialTarget; - -extern NSString *const kGAITransactionId; -extern NSString *const kGAITransactionAffiliation; -extern NSString *const kGAITransactionRevenue; -extern NSString *const kGAITransactionShipping; -extern NSString *const kGAITransactionTax; -extern NSString *const kGAICurrencyCode; - -extern NSString *const kGAIItemPrice; -extern NSString *const kGAIItemQuantity; -extern NSString *const kGAIItemSku; -extern NSString *const kGAIItemName; -extern NSString *const kGAIItemCategory; - -extern NSString *const kGAICampaignSource; -extern NSString *const kGAICampaignMedium; -extern NSString *const kGAICampaignName; -extern NSString *const kGAICampaignKeyword; -extern NSString *const kGAICampaignContent; -extern NSString *const kGAICampaignId; -extern NSString *const kGAICampaignAdNetworkClickId; -extern NSString *const kGAICampaignAdNetworkId; - -extern NSString *const kGAITimingCategory; -extern NSString *const kGAITimingVar; -extern NSString *const kGAITimingValue; -extern NSString *const kGAITimingLabel; - -extern NSString *const kGAIExDescription; -extern NSString *const kGAIExFatal; - -extern NSString *const kGAISampleRate; - -extern NSString *const kGAIIdfa; -extern NSString *const kGAIAdTargetingEnabled; - -// hit types -extern NSString *const kGAIAppView DEPRECATED_MSG_ATTRIBUTE("Use kGAIScreenView instead."); -extern NSString *const kGAIScreenView; -extern NSString *const kGAIEvent; -extern NSString *const kGAISocial; -extern NSString *const kGAITransaction; -extern NSString *const kGAIItem; -extern NSString *const kGAIException; -extern NSString *const kGAITiming; - -/*! - This class provides several fields and methods useful as wire format parameter - names. The methods are used for wire format parameter names that are indexed. - */ - -@interface GAIFields : NSObject - -/*! - Generates the correct parameter name for a content group with an index. - - @param index the index of the content group. - - @return an NSString representing the content group parameter for the index. - */ -+ (NSString *)contentGroupForIndex:(NSUInteger)index; - -/*! - Generates the correct parameter name for a custon dimension with an index. - - @param index the index of the custom dimension. - - @return an NSString representing the custom dimension parameter for the index. - */ -+ (NSString *)customDimensionForIndex:(NSUInteger)index; - -/*! - Generates the correct parameter name for a custom metric with an index. - - @param index the index of the custom metric. - - @return an NSString representing the custom metric parameter for the index. - */ -+ (NSString *)customMetricForIndex:(NSUInteger)index; - -@end diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAILogger.h b/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAILogger.h deleted file mode 100644 index 06291f2c..00000000 --- a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAILogger.h +++ /dev/null @@ -1,49 +0,0 @@ -/*! - @header GAILogger.h - @abstract Google Analytics iOS SDK Source - @copyright Copyright 2011 Google Inc. All rights reserved. - */ - -#import <Foundation/Foundation.h> - -typedef NS_ENUM(NSUInteger, GAILogLevel) { - kGAILogLevelNone = 0, - kGAILogLevelError = 1, - kGAILogLevelWarning = 2, - kGAILogLevelInfo = 3, - kGAILogLevelVerbose = 4 -}; - -/*! - Protocol to be used for logging debug and informational messages from the SDK. - Implementations of this protocol can be provided to the |GAI| class, - to be used as the logger by the SDK. See the |logger| property in GAI.h. - */ -@protocol GAILogger<NSObject> -@required - -/*! - Only messages of |logLevel| and below are logged. - */ -@property (nonatomic, assign) GAILogLevel logLevel; - -/*! - Logs message with log level |kGAILogLevelVerbose|. - */ -- (void)verbose:(NSString *)message; - -/*! - Logs message with log level |kGAILogLevelInfo|. - */ -- (void)info:(NSString *)message; - -/*! - Logs message with log level |kGAILogLevelWarning|. - */ -- (void)warning:(NSString *)message; - -/*! - Logs message with log level |kGAILogLevelError|. - */ -- (void)error:(NSString *)message; -@end diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAITrackedViewController.h b/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAITrackedViewController.h deleted file mode 100644 index de19def0..00000000 --- a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAITrackedViewController.h +++ /dev/null @@ -1,33 +0,0 @@ -/*! - @header GAITrackedViewController.h - @abstract Google Analytics for iOS Tracked View Controller Header - @copyright Copyright 2012 Google Inc. All rights reserved. - */ - -#import <Foundation/Foundation.h> -#import <UIKit/UIKit.h> - -@protocol GAITracker; - -/*! - Extends UIViewController to generate Google Analytics screenview calls - whenever the view appears; this is done by overriding the `viewDidAppear:` - method. The screen name must be set for any tracking calls to be made. - - By default, this will use [GAI defaultTracker] for tracking calls, but one can - override this by setting the tracker property. - */ -@interface GAITrackedViewController : UIViewController - -/*! - The tracker on which view tracking calls are be made, or `nil`, in which case - [GAI defaultTracker] will be used. - */ -@property(nonatomic, assign) id<GAITracker> tracker; -/*! - The screen name, for purposes of Google Analytics tracking. If this is `nil`, - no tracking calls will be made. - */ -@property(nonatomic, copy) NSString *screenName; - -@end diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAITracker.h b/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAITracker.h deleted file mode 100644 index fdc5c5df..00000000 --- a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/GAITracker.h +++ /dev/null @@ -1,57 +0,0 @@ -/*! - @header GAITracker.h - @abstract Google Analytics iOS SDK Tracker Header - @copyright Copyright 2013 Google Inc. All rights reserved. -*/ - -#import <Foundation/Foundation.h> - -/*! - Google Analytics tracking interface. Obtain instances of this interface from - [GAI trackerWithTrackingId:] to track screens, events, transactions, timing, - and exceptions. The implementation of this interface is thread-safe, and no - calls are expected to block or take a long time. All network and disk activity - will take place in the background. - */ -@protocol GAITracker<NSObject> - -/*! - Name of this tracker. - */ -@property(nonatomic, readonly) NSString *name; - -/*! - Allow collection of IDFA and related fields if set to true. Default is false. - */ -@property(nonatomic) BOOL allowIDFACollection; - -/*! - Set a tracking parameter. - - @param parameterName The parameter name. - - @param value The value to set for the parameter. If this is nil, the - value for the parameter will be cleared. - */ -- (void)set:(NSString *)parameterName - value:(NSString *)value; - -/*! - Get a tracking parameter. - - @param parameterName The parameter name. - - @returns The parameter value, or nil if no value for the given parameter is - set. - */ -- (NSString *)get:(NSString *)parameterName; - -/*! - Queue tracking information with the given parameter values. - - @param parameters A map from parameter names to parameter values which will be - set just for this piece of tracking information, or nil for none. - */ -- (void)send:(NSDictionary *)parameters; - -@end diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/UniversalAnalyticsPlugin.h b/StoneIsland/plugins/cordova-plugin-google-analytics/ios/UniversalAnalyticsPlugin.h deleted file mode 100644 index dde480ac..00000000 --- a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/UniversalAnalyticsPlugin.h +++ /dev/null @@ -1,34 +0,0 @@ -//UniversalAnalyticsPlugin.h -//Created by Daniel Wilson 2013-09-19 - -#import <Foundation/Foundation.h> -#import <Cordova/CDV.h> -#import "GAI.h" - -@interface UniversalAnalyticsPlugin : CDVPlugin { - bool _trackerStarted; - bool _debugMode; - NSMutableDictionary *_customDimensions; -} - -- (void) startTrackerWithId: (CDVInvokedUrlCommand*)command; -- (void) setAllowIDFACollection: (CDVInvokedUrlCommand*) command; -- (void) setUserId: (CDVInvokedUrlCommand*)command; -- (void) setAppVersion: (CDVInvokedUrlCommand*)command; -- (void) getVar: (CDVInvokedUrlCommand*)command; -- (void) setVar: (CDVInvokedUrlCommand*)command; -- (void) dispatch: (CDVInvokedUrlCommand*)command; -- (void) debugMode: (CDVInvokedUrlCommand*)command; -- (void) setOptOut: (CDVInvokedUrlCommand*)command; -- (void) enableUncaughtExceptionReporting: (CDVInvokedUrlCommand*)command; -- (void) addCustomDimension: (CDVInvokedUrlCommand*)command; -- (void) trackEvent: (CDVInvokedUrlCommand*)command; -- (void) trackMetric: (CDVInvokedUrlCommand*)command; -- (void) trackTiming: (CDVInvokedUrlCommand*)command; -- (void) trackView: (CDVInvokedUrlCommand*)command; -- (void) trackException: (CDVInvokedUrlCommand*)command; -- (void) addTransaction: (CDVInvokedUrlCommand*)command; -- (void) addTransactionItem: (CDVInvokedUrlCommand*)command; - -@end - diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/UniversalAnalyticsPlugin.m b/StoneIsland/plugins/cordova-plugin-google-analytics/ios/UniversalAnalyticsPlugin.m deleted file mode 100644 index 12355da6..00000000 --- a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/UniversalAnalyticsPlugin.m +++ /dev/null @@ -1,543 +0,0 @@ -//UniversalAnalyticsPlugin.m -//Created by Daniel Wilson 2013-09-19 - -#import "UniversalAnalyticsPlugin.h" -#import "GAI.h" -#import "GAIDictionaryBuilder.h" -#import "GAIFields.h" - -@implementation UniversalAnalyticsPlugin - -- (void) pluginInitialize -{ - _debugMode = false; - _trackerStarted = false; - _customDimensions = nil; -} - -- (void) startTrackerWithId: (CDVInvokedUrlCommand*)command -{ - [self.commandDelegate runInBackground:^{ - CDVPluginResult* pluginResult = nil; - NSString* accountId = [command.arguments objectAtIndex:0]; - NSNumber* dispatchPeriod = [command.arguments objectAtIndex:1]; - - if ([dispatchPeriod isKindOfClass:[NSNumber class]]) - [GAI sharedInstance].dispatchInterval = [dispatchPeriod doubleValue]; - else - [GAI sharedInstance].dispatchInterval = 30; - - [[GAI sharedInstance] trackerWithTrackingId:accountId]; - - _trackerStarted = true; - pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; - }]; - /* NSLog(@"successfully started GAI tracker"); */ -} - -- (void) setAllowIDFACollection: (CDVInvokedUrlCommand*) command -{ - CDVPluginResult* pluginResult = nil; - if ( ! _trackerStarted) { - pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"Tracker not started"]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; - return; - } - - id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker]; - tracker.allowIDFACollection = [[command argumentAtIndex:0 withDefault:@(NO)] boolValue]; -} - -- (void) addCustomDimensionsToTracker: (id<GAITracker>)tracker -{ - if (_customDimensions) { - for (NSString *key in _customDimensions.allKeys) { - NSString *value = [_customDimensions objectForKey:key]; - - NSNumberFormatter *f = [[NSNumberFormatter alloc] init]; - f.numberStyle = NSNumberFormatterDecimalStyle; - NSNumber *myKey = [f numberFromString:key]; - - /* NSLog(@"Setting tracker dimension slot %@: <%@>", key, value); */ - [tracker set:[GAIFields customDimensionForIndex:myKey.unsignedIntegerValue] - value:value]; - } - } -} - -- (void) getVar: (CDVInvokedUrlCommand*) command -{ - [self.commandDelegate runInBackground:^{ - CDVPluginResult* pluginResult = nil; - if ( ! _trackerStarted) { - pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"Tracker not started"]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; - return; - } - - id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker]; - NSString* parameterName = [command.arguments objectAtIndex:0]; - NSString* result = [tracker get:parameterName]; - - pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:result]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; - }]; -} - -- (void) setVar: (CDVInvokedUrlCommand*) command -{ - [self.commandDelegate runInBackground:^{ - CDVPluginResult* pluginResult = nil; - if ( ! _trackerStarted) { - pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"Tracker not started"]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; - return; - } - - id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker]; - NSString* parameterName = [command.arguments objectAtIndex:0]; - NSString* parameter = [command.arguments objectAtIndex:1]; - [tracker set:parameterName value:parameter]; - - pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; - }]; -} - -- (void) dispatch: (CDVInvokedUrlCommand*) command -{ - [[GAI sharedInstance] dispatch]; -} - -- (void) debugMode: (CDVInvokedUrlCommand*) command -{ - _debugMode = true; - [[GAI sharedInstance].logger setLogLevel:kGAILogLevelVerbose]; -} - -- (void) setUserId: (CDVInvokedUrlCommand*)command -{ - CDVPluginResult* pluginResult = nil; - NSString* userId = [command.arguments objectAtIndex:0]; - - if ( ! _trackerStarted) { - pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"Tracker not started"]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; - return; - } - - id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker]; - [tracker set:@"&uid" value: userId]; - - pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; -} - -- (void) setAnonymizeIp: (CDVInvokedUrlCommand*)command -{ - CDVPluginResult* pluginResult = nil; - NSString* anonymize = [command.arguments objectAtIndex:0]; - - if ( ! _trackerStarted) { - pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"Tracker not started"]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; - return; - } - - id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker]; - [tracker set:kGAIAnonymizeIp value:anonymize]; - - pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; -} - -- (void) setOptOut: (CDVInvokedUrlCommand*)command -{ - CDVPluginResult* pluginResult = nil; - bool optout = [[command.arguments objectAtIndex:0] boolValue]; - - if ( ! _trackerStarted) { - pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"Tracker not started"]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; - return; - } - - [[GAI sharedInstance] setOptOut:optout]; - - pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; -} - -- (void) setAppVersion: (CDVInvokedUrlCommand*)command -{ - CDVPluginResult* pluginResult = nil; - NSString* version = [command.arguments objectAtIndex:0]; - - if ( ! _trackerStarted) { - pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"Tracker not started"]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; - return; - } - - id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker]; - [tracker set:@"&av" value: version]; - - pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; -} - -- (void) enableUncaughtExceptionReporting: (CDVInvokedUrlCommand*)command -{ - CDVPluginResult* pluginResult = nil; - - if ( ! _trackerStarted) { - pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"Tracker not started"]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; - return; - } - - bool enabled = [[command.arguments objectAtIndex:0] boolValue]; - [[GAI sharedInstance] setTrackUncaughtExceptions:enabled]; - - pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; -} - -- (void) addCustomDimension: (CDVInvokedUrlCommand*)command -{ - CDVPluginResult* pluginResult = nil; - NSNumber* key = [command.arguments objectAtIndex:0]; - NSString* value = [command.arguments objectAtIndex:1]; - - if ( ! _customDimensions) { - _customDimensions = [[NSMutableDictionary alloc] init]; - } - - _customDimensions[key.stringValue] = value; - - pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; -} - -- (void) trackMetric: (CDVInvokedUrlCommand*)command -{ - CDVPluginResult* pluginResult = nil; - - if ( ! _trackerStarted) { - pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"Tracker not started"]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; - return; - } - - [self.commandDelegate runInBackground:^{ - CDVPluginResult* pluginResult = nil; - NSNumber *key = nil; - NSString *value = nil; - - if ([command.arguments count] > 0) - key = [command.arguments objectAtIndex:0]; - - if ([command.arguments count] > 1) - value = [command.arguments objectAtIndex:1]; - - id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker]; - - [tracker set:[GAIFields customMetricForIndex:[key intValue]] value:value]; - - - pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; - }]; -} - -- (void) trackEvent: (CDVInvokedUrlCommand*)command -{ - CDVPluginResult* pluginResult = nil; - - if ( ! _trackerStarted) { - pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"Tracker not started"]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; - return; - } - - [self.commandDelegate runInBackground:^{ - CDVPluginResult* pluginResult = nil; - NSString *category = nil; - NSString *action = nil; - NSString *label = nil; - NSNumber *value = nil; - - if ([command.arguments count] > 0) - category = [command.arguments objectAtIndex:0]; - - if ([command.arguments count] > 1) - action = [command.arguments objectAtIndex:1]; - - if ([command.arguments count] > 2) - label = [command.arguments objectAtIndex:2]; - - if ([command.arguments count] > 3) - value = [command.arguments objectAtIndex:3]; - - bool newSession = [[command argumentAtIndex:4 withDefault:@(NO)] boolValue]; - - id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker]; - - [self addCustomDimensionsToTracker:tracker]; - - GAIDictionaryBuilder *builder = [GAIDictionaryBuilder - createEventWithCategory: category //required - action: action //required - label: label - value: value]; - if(newSession){ - [builder set:@"start" forKey:kGAISessionControl]; - } - [tracker send:[builder build]]; - - pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; - - }]; - -} - -- (void) trackException: (CDVInvokedUrlCommand*)command -{ - CDVPluginResult* pluginResult = nil; - - if ( ! _trackerStarted) { - pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"Tracker not started"]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; - return; - } - - [self.commandDelegate runInBackground:^{ - CDVPluginResult* pluginResult = nil; - NSString *description = nil; - NSNumber *fatal = nil; - - if ([command.arguments count] > 0) - description = [command.arguments objectAtIndex:0]; - - if ([command.arguments count] > 1) - fatal = [command.arguments objectAtIndex:1]; - - id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker]; - - [self addCustomDimensionsToTracker:tracker]; - - [tracker send:[[GAIDictionaryBuilder createScreenView] build]]; - - [tracker send:[[GAIDictionaryBuilder - createExceptionWithDescription: description - withFatal: fatal] build]]; - - pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; - }]; -} - -- (void) trackView: (CDVInvokedUrlCommand*)command -{ - CDVPluginResult* pluginResult = nil; - - if ( ! _trackerStarted) { - pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"Tracker not started"]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; - return; - } - - [self.commandDelegate runInBackground:^{ - CDVPluginResult* pluginResult = nil; - NSString* screenName = [command.arguments objectAtIndex:0]; - - id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker]; - [self addCustomDimensionsToTracker:tracker]; - - NSString* deepLinkUrl = [command.arguments objectAtIndex:1]; - GAIDictionaryBuilder* openParams = [[GAIDictionaryBuilder alloc] init]; - - if (deepLinkUrl && deepLinkUrl != (NSString *)[NSNull null]) { - [[openParams setCampaignParametersFromUrl:deepLinkUrl] build]; - } - - bool newSession = [[command argumentAtIndex:2 withDefault:@(NO)] boolValue]; - if(newSession){ - [openParams set:@"start" forKey:kGAISessionControl]; - } - - NSDictionary *hitParamsDict = [openParams build]; - - [tracker set:kGAIScreenName value:screenName]; - [tracker send:[[[GAIDictionaryBuilder createScreenView] setAll:hitParamsDict] build]]; - - pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; - }]; -} - -- (void) trackTiming: (CDVInvokedUrlCommand*)command -{ - CDVPluginResult* pluginResult = nil; - - if ( ! _trackerStarted) { - pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"Tracker not started"]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; - return; - } - - [self.commandDelegate runInBackground:^{ - CDVPluginResult* pluginResult = nil; - - NSString *category = nil; - NSNumber *intervalInMilliseconds = nil; - NSString *name = nil; - NSString *label = nil; - - if ([command.arguments count] > 0) - category = [command.arguments objectAtIndex:0]; - - if ([command.arguments count] > 1) - intervalInMilliseconds = [command.arguments objectAtIndex:1]; - - if ([command.arguments count] > 2) - name = [command.arguments objectAtIndex:2]; - - if ([command.arguments count] > 3) - label = [command.arguments objectAtIndex:3]; - - id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker]; - - [self addCustomDimensionsToTracker:tracker]; - - [tracker send:[[GAIDictionaryBuilder - createTimingWithCategory: category //required - interval: intervalInMilliseconds //required - name: name - label: label] build]]; - - pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; - }]; -} - -- (void) addTransaction: (CDVInvokedUrlCommand*)command -{ - CDVPluginResult* pluginResult = nil; - - if ( ! _trackerStarted) { - pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"Tracker not started"]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; - return; - } - - [self.commandDelegate runInBackground:^{ - CDVPluginResult* pluginResult = nil; - - NSString *transactionId = nil; - NSString *affiliation = nil; - NSNumber *revenue = nil; - NSNumber *tax = nil; - NSNumber *shipping = nil; - NSString *currencyCode = nil; - - - if ([command.arguments count] > 0) - transactionId = [command.arguments objectAtIndex:0]; - - if ([command.arguments count] > 1) - affiliation = [command.arguments objectAtIndex:1]; - - if ([command.arguments count] > 2) - revenue = [command.arguments objectAtIndex:2]; - - if ([command.arguments count] > 3) - tax = [command.arguments objectAtIndex:3]; - - if ([command.arguments count] > 4) - shipping = [command.arguments objectAtIndex:4]; - - if ([command.arguments count] > 5) - currencyCode = [command.arguments objectAtIndex:5]; - - id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker]; - - - [tracker send:[[GAIDictionaryBuilder createTransactionWithId:transactionId // (NSString) Transaction ID - affiliation:affiliation // (NSString) Affiliation - revenue:revenue // (NSNumber) Order revenue (including tax and shipping) - tax:tax // (NSNumber) Tax - shipping:shipping // (NSNumber) Shipping - currencyCode:currencyCode] build]]; // (NSString) Currency code - - - pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; - }]; -} - - - -- (void) addTransactionItem: (CDVInvokedUrlCommand*)command -{ - CDVPluginResult* pluginResult = nil; - - if ( ! _trackerStarted) { - pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"Tracker not started"]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; - return; - } - - [self.commandDelegate runInBackground:^{ - - CDVPluginResult* pluginResult = nil; - NSString *transactionId = nil; - NSString *name = nil; - NSString *sku = nil; - NSString *category = nil; - NSNumber *price = nil; - NSNumber *quantity = nil; - NSString *currencyCode = nil; - - - if ([command.arguments count] > 0) - transactionId = [command.arguments objectAtIndex:0]; - - if ([command.arguments count] > 1) - name = [command.arguments objectAtIndex:1]; - - if ([command.arguments count] > 2) - sku = [command.arguments objectAtIndex:2]; - - if ([command.arguments count] > 3) - category = [command.arguments objectAtIndex:3]; - - if ([command.arguments count] > 4) - price = [command.arguments objectAtIndex:4]; - - if ([command.arguments count] > 5) - quantity = [command.arguments objectAtIndex:5]; - - if ([command.arguments count] > 6) - currencyCode = [command.arguments objectAtIndex:6]; - - id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker]; - - - [tracker send:[[GAIDictionaryBuilder createItemWithTransactionId:transactionId // (NSString) Transaction ID - name:name // (NSString) Product Name - sku:sku // (NSString) Product SKU - category:category // (NSString) Product category - price:price // (NSNumber) Product price - quantity:quantity // (NSNumber) Product quantity - currencyCode:currencyCode] build]]; // (NSString) Currency code - - - pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK]; - [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; - }]; -} - -@end diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/libAdIdAccess.a b/StoneIsland/plugins/cordova-plugin-google-analytics/ios/libAdIdAccess.a Binary files differdeleted file mode 100644 index 9813beaf..00000000 --- a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/libAdIdAccess.a +++ /dev/null diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/libGoogleAnalyticsServices.a b/StoneIsland/plugins/cordova-plugin-google-analytics/ios/libGoogleAnalyticsServices.a Binary files differdeleted file mode 100644 index 45ca87e8..00000000 --- a/StoneIsland/plugins/cordova-plugin-google-analytics/ios/libGoogleAnalyticsServices.a +++ /dev/null diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/lavaca/AnalyticsService.js b/StoneIsland/plugins/cordova-plugin-google-analytics/lavaca/AnalyticsService.js deleted file mode 100644 index 6b789895..00000000 --- a/StoneIsland/plugins/cordova-plugin-google-analytics/lavaca/AnalyticsService.js +++ /dev/null @@ -1,121 +0,0 @@ -define(function(require) { - - var Disposable = require('lavaca/util/Disposable'); - var Config = require('lavaca/util/Config'); - var Device = require('lavaca/env/Device'); - var ga = require('google-analytics'); - - var AnalyticsService = Disposable.extend(function AnalyticsService() { - Disposable.call(this); - this.appId = Config.get('google_analytics_id'); - this.webId = Config.get('google_analytics_web_id'); - this.isWeb = this.webId.length; - - if (!Device.isCordova() && this.isWeb) { - ga('create', this.webId); - } - - document.addEventListener('deviceready', this.init.bind(this), false); - }, { - ready: false, - queue: [], - isWeb: false, - //isApp: false, //TODO need to research when Device.isCordova() is valid in Lavaca load flow - init: function() { - if (Device.isCordova() && analytics) { - this.ready = true; - analytics.startTrackerWithId(this.appId); - this.processQueue(); - this.isWeb = false; - } - }, - trackView: function(screen) { - if (Device.isCordova()) { - if (this.ready) { - analytics.trackView(screen); - } else { - this.queue.push({ - action: 'trackView', - params: [screen] - }); - } - } else if (this.isWeb) { - ga('send', 'pageview', { - 'title': screen - }); - } - }, - setUserId: function() { - throw 'setUserId is not implemented for Lavaca'; - }, - setAnonymizeIp: function() { - throw 'setAnonymizeIp is not implemented for Lavaca'; - }, - setOptOut: function() { - throw 'setOptOut is not implemented for Lavaca'; - }, - setAppVersion: function() { - throw 'setAppVersion is not implemented for Lavaca'; - }, - debugMode: function() { - throw 'debugMode is not implemented for Lavaca'; - }, - trackEvent: function(category, action, label, value) { - action = action || ''; - label = label || ''; - value = value || 0; - if (Device.isCordova()) { - if (this.ready) { - analytics.trackEvent(category, action, label, value); - } else { - this.queue.push({ - action: 'trackEvent', - params: [category, action, label, value] - }); - } - } else if (this.isWeb) { - ga('send', { - 'hitType': 'event', - 'eventCategory': category, - 'eventAction': action, - 'eventLabel': label, - 'eventValue': value - }); - } - }, - trackTiming: function(category, intervalInMilliseconds, name, label) { - action = action || ''; - label = label || ''; - value = value || 0; - if (Device.isCordova()) { - if (this.ready) { - analytics.trackTiming(category, intervalInMilliseconds, name, label); - } else { - this.queue.push({ - action: 'trackTiming', - params: [category, intervalInMilliseconds, name, label] - }); - } - } else if (this.isWeb) { - ga('send', { - 'hitType': 'timing', - 'timingCategory': category, - 'timingValue': intervalInMilliseconds, - 'timingVar': name, - 'timingLabel': label - }); - } - }, - processQueue: function() { - if (this.queue) { - var emptyFunction = function() {}; - for (var i = 0; i < this.queue.length; ++i) { - cordova.exec(emptyFunction, emptyFunction, - 'UniversalAnalytics', this.queue[i].action, this.queue[i].params); - } - } - } - }); - - return new AnalyticsService(); -}); diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/package.json b/StoneIsland/plugins/cordova-plugin-google-analytics/package.json deleted file mode 100644 index 548de86b..00000000 --- a/StoneIsland/plugins/cordova-plugin-google-analytics/package.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "cordova-plugin-google-analytics", - "version": "1.8.3", - "description": "Google Universal Analytics Plugin", - "cordova": { - "id": "cordova-plugin-google-analytics", - "platforms": [ - "android", - "ios" - ] - }, - "repository": { - "type": "git", - "url": "https://github.com/danwilson/google-analytics-plugin.git" - }, - "keywords": [ - "cordova", - "googleanalytics", - "ecosystem:cordova", - "cordova-android", - "cordova-ios", - "analytics", - "google", - "universal", - "universalanalytics" - ], - "author": "Dan Wilson", - "license": "MIT" -} diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/plugin.xml b/StoneIsland/plugins/cordova-plugin-google-analytics/plugin.xml deleted file mode 100644 index 55a8db9d..00000000 --- a/StoneIsland/plugins/cordova-plugin-google-analytics/plugin.xml +++ /dev/null @@ -1,99 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android" - id="cordova-plugin-google-analytics" - version="1.8.3"> - <engines> - <engine name="cordova" version=">=3.0.0" /> - </engines> - <name>Google Universal Analytics Plugin</name> - <description>Simple tracking (screens/events) for Google Analytics SDK 3.14 (iOS), SDK 4.0 (Android), Browsers and WP8</description> - <author>Daniel C. Wilson</author> - <license>MIT License</license> - <js-module src="www/analytics.js" name="UniversalAnalytics"> - <!-- 'analytics' is deprecated, but supported to ease the transition --> - <clobbers target="analytics" /> - <clobbers target="ga" /> - </js-module> - - <platform name="browser"> - <js-module src="browser/UniversalAnalyticsProxy.js" name="UniversalAnalyticsProxy"> - <runs /> - </js-module> - </platform> - - <platform name="ios"> - <config-file target="config.xml" parent="/*"> - <feature name="UniversalAnalytics"> - <param name="ios-package" value="UniversalAnalyticsPlugin" /> - </feature> - </config-file> - - <header-file src="ios/UniversalAnalyticsPlugin.h" /> - <source-file src="ios/UniversalAnalyticsPlugin.m" /> - <source-file src="ios/libGoogleAnalyticsServices.a" framework="true" /> - <source-file src="ios/libAdIdAccess.a" framework="true" /> - <header-file src="ios/GAIDictionaryBuilder.h" /> - <header-file src="ios/GAIFields.h" /> - <header-file src="ios/GAILogger.h" /> - <header-file src="ios/GAITrackedViewController.h" /> - <header-file src="ios/GAI.h" /> - <header-file src="ios/GAITracker.h" /> - <header-file src="ios/GAIEcommerceFields.h" /> - <header-file src="ios/GAIEcommerceProduct.h" /> - <header-file src="ios/GAIEcommerceProductAction.h" /> - <header-file src="ios/GAIEcommercePromotion.h" /> - - <framework src="SystemConfiguration.framework" /> - <framework src="CoreData.framework" /> - <framework src="AdSupport.framework" /> - <framework src="libz.dylib" /> - <framework src="libsqlite3.dylib" /> - </platform> - - <platform name="android"> - <framework src="com.google.android.gms:play-services-analytics:+" /> - - <config-file target="res/xml/config.xml" parent="/*"> - <feature name="UniversalAnalytics"> - <param name="android-package" value="com.danielcwilson.plugins.analytics.UniversalAnalyticsPlugin" /> - </feature> - </config-file> - <config-file target="AndroidManifest.xml" parent="/*"> - <uses-permission android:name="android.permission.INTERNET" /> - <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> - </config-file> - <!-- Add support for devices without Google Play Services installed. --> - <config-file target="AndroidManifest.xml" parent="/manifest/application"> - <receiver android:name="com.google.android.gms.analytics.AnalyticsReceiver" android:enabled="true"> - <intent-filter> - <action android:name="com.google.android.gms.analytics.ANALYTICS_DISPATCH" /> - </intent-filter> - </receiver> - <service android:name="com.google.android.gms.analytics.AnalyticsService" android:enabled="true" android:exported="false"/> - <receiver android:name="com.google.android.gms.analytics.CampaignTrackingReceiver" android:enabled="true" android:exported="true"> - <intent-filter> - <action android:name="com.android.vending.INSTALL_REFERRER" /> - </intent-filter> - </receiver> - <service android:name="com.google.android.gms.analytics.CampaignTrackingService" android:enabled="true" android:exported="false"/> - </config-file> - <source-file src="android/UniversalAnalyticsPlugin.java" target-dir="src/com/danielcwilson/plugins/analytics" /> - </platform> - - <platform name="wp8"> - <config-file target="config.xml" parent="/*"> - <feature name="UniversalAnalytics"> - <param name="wp-package" value="UniversalAnalyticsPlugin" /> - </feature> - </config-file> - - <config-file target="Properties/WMAppManifest.xml" parent="/Deployment/App/Capabilities"> - <Capability Name="ID_CAP_NETWORKING" /> - </config-file> - - <source-file src="wp8/UniversalAnalytics.cs" /> - <source-file src="wp8/PhoneHelpers.cs" /> - <source-file src="wp8/PhoneNameResolver.cs" /> - <source-file src="wp8/PlatformInfoProvider.WP.cs" /> - </platform> -</plugin> diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/typescript/analytics.d.ts b/StoneIsland/plugins/cordova-plugin-google-analytics/typescript/analytics.d.ts deleted file mode 100644 index d361ead8..00000000 --- a/StoneIsland/plugins/cordova-plugin-google-analytics/typescript/analytics.d.ts +++ /dev/null @@ -1,62 +0,0 @@ -declare class UniversalAnalyticsPlugin { - - /** In your 'deviceready' handler, call this to set up your Analytics tracker, - where id is your Google Analytics Mobile App property */ - public startTrackerWithId(id:String, dispatchPeriod?:Number, successCallback?:Function, errorCallback?:Function):void; - - /** Sets a UserId */ - public setUserId(id:String, successCallback?:Function, errorCallback?:Function):void; - - /** Sets a setAnonymizeIp */ - public setAnonymizeIp(anonymize:Boolean, successCallback?:Function, errorCallback?:Function):void; - - /** Sets a setOptOut */ - public setOptOut(optout:Boolean, successCallback?:Function, errorCallback?:Function): void; - - /** Sets a setAllowIDFACollection */ - public setAllowIDFACollection(enable:Boolean, successCallback?:Function, errorCallback?:Function):void; - - /** Sets a AppVersion */ - public setAppVersion(version:string, successCallback?:Function, errorCallback?:Function):void; - - /** Gets a specific variable using this key list https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters */ - public getVar(variable:string, successCallback?:Function, errorCallback?:Function):void; - - /** Sets a specific variable using this key list https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters */ - public setVar(variable:string, value:string, successCallback?:Function, errorCallback?:Function):void; - - /** To manually dispatch any data */ - public dispatch(successCallback?:Function, errorCallback?:Function); - - /** Enables verbose logging */ - public debugMode(successCallback?:Function, errorCallback?:Function):void; - - /** Track a Custom Metric */ - public trackMetric(key:number, value:String, successCallback?:Function, errorCallback?:Function):void; - - /** Track a Screen (PageView) */ - public trackView(screen:String, campaignUrl?:string, newSession?:boolean, successCallback?:Function, errorCallback?:Function):void; - - /** Add a Custom Dimension */ - public addCustomDimension(key:number, value:String, successCallback?:Function, errorCallback?:Function):void; - - /** Track an Event */ - public trackEvent(category:String, action:String, label?:String, value?:Number, newSession?:boolean, successCallback?:Function, errorCallback?:Function):void; - - /** Track an Exception - https://developers.google.com/analytics/devguides/collection/android/v3/exceptions */ - public trackException(description:String, fatal:Boolean, successCallback?:Function, errorCallback?:Function):void; - - /** Track User Timing (App Speed) */ - public trackTiming(category:String, intervalInMilliseconds?:Number, name?:String, label?:String, successCallback?:Function, errorCallback?:Function):void; - - /** Add a Transaction (Google Analytics e-Ccommerce Tracking) - https://developers.google.com/analytics/devguides/collection/analyticsjs/ecommerce */ - public addTransaction(transactionId:String, affiliation:String, revenue:Number, tax:Number, shipping:Number, currencyCode:String, successCallback?:Function, errorCallback?:Function):void; - - /** Add a Transaction Item (Ecommerce) */ - public addTransactionItem(transactionId:String, name:String, sku:String, category:String, price:Number, quantity:Number, currencyCode:String, successCallback?:Function, errorCallback?:Function):void; - - /** Enable/disable automatic reporting of uncaught exceptions */ - public enableUncaughtExceptionReporting(enable:Boolean, successCallback?:Function, errorCallback?:Function):void; -} diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/wp8/PhoneHelpers.cs b/StoneIsland/plugins/cordova-plugin-google-analytics/wp8/PhoneHelpers.cs deleted file mode 100644 index 4bf4f895..00000000 --- a/StoneIsland/plugins/cordova-plugin-google-analytics/wp8/PhoneHelpers.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System; -using System.Xml; - -namespace UniversalAnalyticsPlugin -{ - internal static class Helpers - { - public static string GetAppAttribute(string attributeName) - { - try - { - XmlReaderSettings xmlReaderSettings = new XmlReaderSettings(); - xmlReaderSettings.XmlResolver = new XmlXapResolver(); - using (XmlReader xmlReader = XmlReader.Create("WMAppManifest.xml", xmlReaderSettings)) - { - xmlReader.ReadToDescendant("App"); - if (!xmlReader.IsStartElement()) - { - throw new FormatException("WMAppManifest.xml is missing"); - } - return xmlReader.GetAttribute(attributeName); - } - } - catch - { - return null; - } - } - } -} diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/wp8/PhoneNameResolver.cs b/StoneIsland/plugins/cordova-plugin-google-analytics/wp8/PhoneNameResolver.cs deleted file mode 100644 index 261739d0..00000000 --- a/StoneIsland/plugins/cordova-plugin-google-analytics/wp8/PhoneNameResolver.cs +++ /dev/null @@ -1,578 +0,0 @@ -/* - * Copyright (c) 2013 by Alan Mendelevich - * - * Licensed under MIT license. - * - * See license.txt for details. -*/ - -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Text.RegularExpressions; - -namespace UniversalAnalyticsPlugin -{ - public static class PhoneNameResolver - { - public static CanonicalPhoneName Resolve(string manufacturer, string model) - { - var manufacturerNormalized = manufacturer.Trim().ToUpper(); - - switch (manufacturerNormalized) - { - case "NOKIA": - case "MICROSOFT": - case "MICROSOFTMDG": - return ResolveNokia(manufacturer, model); - case "HTC": - return ResolveHtc(manufacturer, model); - case "SAMSUNG": - return ResolveSamsung(manufacturer, model); - case "LG": - return ResolveLg(manufacturer, model); - case "HUAWEI": - return ResolveHuawei(manufacturer, model); - default: - return new CanonicalPhoneName() - { - ReportedManufacturer = manufacturer, - ReportedModel = model, - CanonicalManufacturer = manufacturer, - CanonicalModel = model, - IsResolved = false - }; - } - } - - private static CanonicalPhoneName ResolveHuawei(string manufacturer, string model) - { - var modelNormalized = model.Trim().ToUpper(); - - var result = new CanonicalPhoneName() - { - ReportedManufacturer = manufacturer, - ReportedModel = model, - CanonicalManufacturer = "HUAWEI", - CanonicalModel = model, - IsResolved = false - }; - - var lookupValue = modelNormalized; - - if (lookupValue.StartsWith("HUAWEI H883G")) - { - lookupValue = "HUAWEI H883G"; - } - - if (lookupValue.StartsWith("HUAWEI W1")) - { - lookupValue = "HUAWEI W1"; - } - - if (modelNormalized.StartsWith("HUAWEI W2")) - { - lookupValue = "HUAWEI W2"; - } - - if (huaweiLookupTable.ContainsKey(lookupValue)) - { - var modelMetadata = huaweiLookupTable[lookupValue]; - result.CanonicalModel = modelMetadata.CanonicalModel; - result.Comments = modelMetadata.Comments; - result.IsResolved = true; - } - - return result; - } - - private static CanonicalPhoneName ResolveLg(string manufacturer, string model) - { - var modelNormalized = model.Trim().ToUpper(); - - var result = new CanonicalPhoneName() - { - ReportedManufacturer = manufacturer, - ReportedModel = model, - CanonicalManufacturer = "LG", - CanonicalModel = model, - IsResolved = false - }; - - var lookupValue = modelNormalized; - - if (lookupValue.StartsWith("LG-C900")) - { - lookupValue = "LG-C900"; - } - - if (lookupValue.StartsWith("LG-E900")) - { - lookupValue = "LG-E900"; - } - - if (lgLookupTable.ContainsKey(lookupValue)) - { - var modelMetadata = lgLookupTable[lookupValue]; - result.CanonicalModel = modelMetadata.CanonicalModel; - result.Comments = modelMetadata.Comments; - result.IsResolved = true; - } - - return result; - } - - private static CanonicalPhoneName ResolveSamsung(string manufacturer, string model) - { - var modelNormalized = model.Trim().ToUpper(); - - var result = new CanonicalPhoneName() - { - ReportedManufacturer = manufacturer, - ReportedModel = model, - CanonicalManufacturer = "SAMSUNG", - CanonicalModel = model, - IsResolved = false - }; - - var lookupValue = modelNormalized; - - if (lookupValue.StartsWith("GT-S7530")) - { - lookupValue = "GT-S7530"; - } - - if (lookupValue.StartsWith("SGH-I917")) - { - lookupValue = "SGH-I917"; - } - - if (samsungLookupTable.ContainsKey(lookupValue)) - { - var modelMetadata = samsungLookupTable[lookupValue]; - result.CanonicalModel = modelMetadata.CanonicalModel; - result.Comments = modelMetadata.Comments; - result.IsResolved = true; - } - - return result; - } - - private static CanonicalPhoneName ResolveHtc(string manufacturer, string model) - { - var modelNormalized = model.Trim().ToUpper(); - - var result = new CanonicalPhoneName() - { - ReportedManufacturer = manufacturer, - ReportedModel = model, - CanonicalManufacturer = "HTC", - CanonicalModel = model, - IsResolved = false - }; - - var lookupValue = modelNormalized; - - if (lookupValue.StartsWith("A620")) - { - lookupValue = "A620"; - } - - if (lookupValue.StartsWith("C625")) - { - lookupValue = "C625"; - } - - if (lookupValue.StartsWith("C620")) - { - lookupValue = "C620"; - } - - if (htcLookupTable.ContainsKey(lookupValue)) - { - var modelMetadata = htcLookupTable[lookupValue]; - result.CanonicalModel = modelMetadata.CanonicalModel; - result.Comments = modelMetadata.Comments; - result.IsResolved = true; - } - - return result; - } - - private static CanonicalPhoneName ResolveNokia(string manufacturer, string model) - { - var modelNormalized = model.Trim().ToUpper(); - - var result = new CanonicalPhoneName() - { - ReportedManufacturer = manufacturer, - ReportedModel = model, - CanonicalManufacturer = "NOKIA", - CanonicalModel = model, - IsResolved = false - }; - - var lookupValue = modelNormalized; - if (modelNormalized.StartsWith("RM-")) - { - var rms = Regex.Match(modelNormalized, "(RM-)([0-9]+)"); - lookupValue = rms.Value; - } - - if (nokiaLookupTable.ContainsKey(lookupValue)) - { - var modelMetadata = nokiaLookupTable[lookupValue]; - - if (!string.IsNullOrEmpty(modelMetadata.CanonicalManufacturer)) - { - result.CanonicalManufacturer = modelMetadata.CanonicalManufacturer; - } - result.CanonicalModel = modelMetadata.CanonicalModel; - result.Comments = modelMetadata.Comments; - result.IsResolved = true; - } - - return result; - } - - - private static Dictionary<string, CanonicalPhoneName> huaweiLookupTable = new Dictionary<string, CanonicalPhoneName>() - { - // Huawei W1 - { "HUAWEI H883G", new CanonicalPhoneName() { CanonicalModel = "Ascend W1" } }, - { "HUAWEI W1", new CanonicalPhoneName() { CanonicalModel = "Ascend W1" } }, - - // Huawei Ascend W2 - { "HUAWEI W2", new CanonicalPhoneName() { CanonicalModel = "Ascend W2" } }, - }; - - private static Dictionary<string, CanonicalPhoneName> lgLookupTable = new Dictionary<string, CanonicalPhoneName>() - { - // Optimus 7Q/Quantum - { "LG-C900", new CanonicalPhoneName() { CanonicalModel = "Optimus 7Q/Quantum" } }, - - // Optimus 7 - { "LG-E900", new CanonicalPhoneName() { CanonicalModel = "Optimus 7" } }, - - // Jil Sander - { "LG-E906", new CanonicalPhoneName() { CanonicalModel = "Jil Sander" } }, - - // Lancet - { "LGVW820", new CanonicalPhoneName() { CanonicalModel = "Lancet" } }, - }; - - private static Dictionary<string, CanonicalPhoneName> samsungLookupTable = new Dictionary<string, CanonicalPhoneName>() - { - // OMNIA W - { "GT-I8350", new CanonicalPhoneName() { CanonicalModel = "Omnia W" } }, - { "GT-I8350T", new CanonicalPhoneName() { CanonicalModel = "Omnia W" } }, - { "OMNIA W", new CanonicalPhoneName() { CanonicalModel = "Omnia W" } }, - - // OMNIA 7 - { "GT-I8700", new CanonicalPhoneName() { CanonicalModel = "Omnia 7" } }, - { "OMNIA7", new CanonicalPhoneName() { CanonicalModel = "Omnia 7" } }, - - // OMNIA M - { "GT-S7530", new CanonicalPhoneName() { CanonicalModel = "Omnia 7" } }, - - // Focus - { "I917", new CanonicalPhoneName() { CanonicalModel = "Focus" } }, - { "SGH-I917", new CanonicalPhoneName() { CanonicalModel = "Focus" } }, - - // Focus 2 - { "SGH-I667", new CanonicalPhoneName() { CanonicalModel = "Focus 2" } }, - - // Focus Flash - { "SGH-I677", new CanonicalPhoneName() { CanonicalModel = "Focus Flash" } }, - - // Focus S - { "HADEN", new CanonicalPhoneName() { CanonicalModel = "Focus S" } }, - { "SGH-I937", new CanonicalPhoneName() { CanonicalModel = "Focus S" } }, - - // ATIV S - { "GT-I8750", new CanonicalPhoneName() { CanonicalModel = "ATIV S" } }, - { "SGH-T899M", new CanonicalPhoneName() { CanonicalModel = "ATIV S" } }, - - // ATIV Odyssey - { "SCH-I930", new CanonicalPhoneName() { CanonicalModel = "ATIV Odyssey" } }, - { "SCH-R860U", new CanonicalPhoneName() { CanonicalModel = "ATIV Odyssey", Comments="US Cellular" } }, - - // ATIV S Neo - { "SPH-I800", new CanonicalPhoneName() { CanonicalModel = "ATIV S Neo", Comments="Sprint" } }, - { "SGH-I187", new CanonicalPhoneName() { CanonicalModel = "ATIV S Neo", Comments="AT&T" } }, - { "GT-I8675", new CanonicalPhoneName() { CanonicalModel = "ATIV S Neo" } }, - - // ATIV SE - { "SM-W750V", new CanonicalPhoneName() { CanonicalModel = "ATIV SE", Comments="Verizon" } }, - }; - - private static Dictionary<string, CanonicalPhoneName> htcLookupTable = new Dictionary<string, CanonicalPhoneName>() - { - // Surround - { "7 MONDRIAN T8788", new CanonicalPhoneName() { CanonicalModel = "Surround" } }, - { "T8788", new CanonicalPhoneName() { CanonicalModel = "Surround" } }, - { "SURROUND", new CanonicalPhoneName() { CanonicalModel = "Surround" } }, - { "SURROUND T8788", new CanonicalPhoneName() { CanonicalModel = "Surround" } }, - - // Mozart - { "7 MOZART", new CanonicalPhoneName() { CanonicalModel = "Mozart" } }, - { "7 MOZART T8698", new CanonicalPhoneName() { CanonicalModel = "Mozart" } }, - { "HTC MOZART", new CanonicalPhoneName() { CanonicalModel = "Mozart" } }, - { "MERSAD 7 MOZART T8698", new CanonicalPhoneName() { CanonicalModel = "Mozart" } }, - { "MOZART", new CanonicalPhoneName() { CanonicalModel = "Mozart" } }, - { "MOZART T8698", new CanonicalPhoneName() { CanonicalModel = "Mozart" } }, - { "PD67100", new CanonicalPhoneName() { CanonicalModel = "Mozart" } }, - { "T8697", new CanonicalPhoneName() { CanonicalModel = "Mozart" } }, - - // Pro - { "7 PRO T7576", new CanonicalPhoneName() { CanonicalModel = "7 Pro" } }, - { "MWP6885", new CanonicalPhoneName() { CanonicalModel = "7 Pro" } }, - { "USCCHTC-PC93100", new CanonicalPhoneName() { CanonicalModel = "7 Pro" } }, - - // Arrive - { "PC93100", new CanonicalPhoneName() { CanonicalModel = "Arrive", Comments = "Sprint" } }, - { "T7575", new CanonicalPhoneName() { CanonicalModel = "Arrive", Comments = "Sprint" } }, - - // HD2 - { "HD2", new CanonicalPhoneName() { CanonicalModel = "HD2" } }, - { "HD2 LEO", new CanonicalPhoneName() { CanonicalModel = "HD2" } }, - { "LEO", new CanonicalPhoneName() { CanonicalModel = "HD2" } }, - - // HD7 - { "7 SCHUBERT T9292", new CanonicalPhoneName() { CanonicalModel = "HD7" } }, - { "GOLD", new CanonicalPhoneName() { CanonicalModel = "HD7" } }, - { "HD7", new CanonicalPhoneName() { CanonicalModel = "HD7" } }, - { "HD7 T9292", new CanonicalPhoneName() { CanonicalModel = "HD7" } }, - { "MONDRIAN", new CanonicalPhoneName() { CanonicalModel = "HD7" } }, - { "SCHUBERT", new CanonicalPhoneName() { CanonicalModel = "HD7" } }, - { "Schubert T9292", new CanonicalPhoneName() { CanonicalModel = "HD7" } }, - { "T9296", new CanonicalPhoneName() { CanonicalModel = "HD7", Comments = "Telstra, AU" } }, - { "TOUCH-IT HD7", new CanonicalPhoneName() { CanonicalModel = "HD7" } }, - - // HD7S - { "T9295", new CanonicalPhoneName() { CanonicalModel = "HD7S" } }, - - // Trophy - { "7 TROPHY", new CanonicalPhoneName() { CanonicalModel = "Trophy" } }, - { "7 TROPHY T8686", new CanonicalPhoneName() { CanonicalModel = "Trophy" } }, - { "PC40100", new CanonicalPhoneName() { CanonicalModel = "Trophy", Comments = "Verizon" } }, - { "SPARK", new CanonicalPhoneName() { CanonicalModel = "Trophy" } }, - { "TOUCH-IT TROPHY", new CanonicalPhoneName() { CanonicalModel = "Trophy" } }, - { "MWP6985", new CanonicalPhoneName() { CanonicalModel = "Trophy" } }, - - // 8S - { "A620", new CanonicalPhoneName() { CanonicalModel = "8S" } }, - { "WINDOWS PHONE 8S BY HTC", new CanonicalPhoneName() { CanonicalModel = "8S" } }, - - // 8X - { "C620", new CanonicalPhoneName() { CanonicalModel = "8X" } }, - { "C625", new CanonicalPhoneName() { CanonicalModel = "8X" } }, - { "HTC6990LVW", new CanonicalPhoneName() { CanonicalModel = "8X", Comments="Verizon" } }, - { "PM23300", new CanonicalPhoneName() { CanonicalModel = "8X", Comments="AT&T" } }, - { "WINDOWS PHONE 8X BY HTC", new CanonicalPhoneName() { CanonicalModel = "8X" } }, - - // 8XT - { "HTCPO881", new CanonicalPhoneName() { CanonicalModel = "8XT", Comments="Sprint" } }, - { "HTCPO881 SPRINT", new CanonicalPhoneName() { CanonicalModel = "8XT", Comments="Sprint" } }, - { "HTCPO881 HTC", new CanonicalPhoneName() { CanonicalModel = "8XT", Comments="Sprint" } }, - - // Titan - { "ETERNITY", new CanonicalPhoneName() { CanonicalModel = "Titan", Comments = "China" } }, - { "PI39100", new CanonicalPhoneName() { CanonicalModel = "Titan", Comments = "AT&T" } }, - { "TITAN X310E", new CanonicalPhoneName() { CanonicalModel = "Titan" } }, - { "ULTIMATE", new CanonicalPhoneName() { CanonicalModel = "Titan" } }, - { "X310E", new CanonicalPhoneName() { CanonicalModel = "Titan" } }, - { "X310E TITAN", new CanonicalPhoneName() { CanonicalModel = "Titan" } }, - - // Titan II - { "PI86100", new CanonicalPhoneName() { CanonicalModel = "Titan II", Comments = "AT&T" } }, - { "RADIANT", new CanonicalPhoneName() { CanonicalModel = "Titan II" } }, - - // Radar - { "RADAR", new CanonicalPhoneName() { CanonicalModel = "Radar" } }, - { "RADAR 4G", new CanonicalPhoneName() { CanonicalModel = "Radar", Comments = "T-Mobile USA" } }, - { "RADAR C110E", new CanonicalPhoneName() { CanonicalModel = "Radar" } }, - - // One M8 - { "HTC6995LVW", new CanonicalPhoneName() { CanonicalModel = "One (M8)", Comments="Verizon" } }, - { "0P6B180", new CanonicalPhoneName() { CanonicalModel = "One (M8)", Comments="AT&T" } }, - { "0P6B140", new CanonicalPhoneName() { CanonicalModel = "One (M8)", Comments="Dual SIM?" } }, - }; - - private static Dictionary<string, CanonicalPhoneName> nokiaLookupTable = new Dictionary<string, CanonicalPhoneName>() - { - // Lumia 505 - { "LUMIA 505", new CanonicalPhoneName() { CanonicalModel = "Lumia 505" } }, - // Lumia 510 - { "LUMIA 510", new CanonicalPhoneName() { CanonicalModel = "Lumia 510" } }, - { "NOKIA 510", new CanonicalPhoneName() { CanonicalModel = "Lumia 510" } }, - // Lumia 610 - { "LUMIA 610", new CanonicalPhoneName() { CanonicalModel = "Lumia 610" } }, - { "LUMIA 610 NFC", new CanonicalPhoneName() { CanonicalModel = "Lumia 610", Comments = "NFC" } }, - { "NOKIA 610", new CanonicalPhoneName() { CanonicalModel = "Lumia 610" } }, - { "NOKIA 610C", new CanonicalPhoneName() { CanonicalModel = "Lumia 610" } }, - // Lumia 620 - { "LUMIA 620", new CanonicalPhoneName() { CanonicalModel = "Lumia 620" } }, - { "RM-846", new CanonicalPhoneName() { CanonicalModel = "Lumia 620" } }, - // Lumia 710 - { "LUMIA 710", new CanonicalPhoneName() { CanonicalModel = "Lumia 710" } }, - { "NOKIA 710", new CanonicalPhoneName() { CanonicalModel = "Lumia 710" } }, - // Lumia 800 - { "LUMIA 800", new CanonicalPhoneName() { CanonicalModel = "Lumia 800" } }, - { "LUMIA 800C", new CanonicalPhoneName() { CanonicalModel = "Lumia 800" } }, - { "NOKIA 800", new CanonicalPhoneName() { CanonicalModel = "Lumia 800" } }, - { "NOKIA 800C", new CanonicalPhoneName() { CanonicalModel = "Lumia 800", Comments = "China" } }, - // Lumia 810 - { "RM-878", new CanonicalPhoneName() { CanonicalModel = "Lumia 810" } }, - // Lumia 820 - { "RM-824", new CanonicalPhoneName() { CanonicalModel = "Lumia 820" } }, - { "RM-825", new CanonicalPhoneName() { CanonicalModel = "Lumia 820" } }, - { "RM-826", new CanonicalPhoneName() { CanonicalModel = "Lumia 820" } }, - // Lumia 822 - { "RM-845", new CanonicalPhoneName() { CanonicalModel = "Lumia 822", Comments = "Verizon" } }, - // Lumia 900 - { "LUMIA 900", new CanonicalPhoneName() { CanonicalModel = "Lumia 900" } }, - { "NOKIA 900", new CanonicalPhoneName() { CanonicalModel = "Lumia 900" } }, - // Lumia 920 - { "RM-820", new CanonicalPhoneName() { CanonicalModel = "Lumia 920" } }, - { "RM-821", new CanonicalPhoneName() { CanonicalModel = "Lumia 920" } }, - { "RM-822", new CanonicalPhoneName() { CanonicalModel = "Lumia 920" } }, - { "RM-867", new CanonicalPhoneName() { CanonicalModel = "Lumia 920", Comments = "920T" } }, - { "NOKIA 920", new CanonicalPhoneName() { CanonicalModel = "Lumia 920" } }, - { "LUMIA 920", new CanonicalPhoneName() { CanonicalModel = "Lumia 920" } }, - // Lumia 520 - { "RM-914", new CanonicalPhoneName() { CanonicalModel = "Lumia 520" } }, - { "RM-915", new CanonicalPhoneName() { CanonicalModel = "Lumia 520" } }, - { "RM-913", new CanonicalPhoneName() { CanonicalModel = "Lumia 520", Comments="520T" } }, - // Lumia 521? - { "RM-917", new CanonicalPhoneName() { CanonicalModel = "Lumia 521", Comments="T-Mobile 520" } }, - // Lumia 720 - { "RM-885", new CanonicalPhoneName() { CanonicalModel = "Lumia 720" } }, - { "RM-887", new CanonicalPhoneName() { CanonicalModel = "Lumia 720", Comments="China 720T" } }, - // Lumia 928 - { "RM-860", new CanonicalPhoneName() { CanonicalModel = "Lumia 928" } }, - // Lumia 925 - { "RM-892", new CanonicalPhoneName() { CanonicalModel = "Lumia 925" } }, - { "RM-893", new CanonicalPhoneName() { CanonicalModel = "Lumia 925" } }, - { "RM-910", new CanonicalPhoneName() { CanonicalModel = "Lumia 925" } }, - { "RM-955", new CanonicalPhoneName() { CanonicalModel = "Lumia 925", Comments="China 925T" } }, - // Lumia 1020 - { "RM-875", new CanonicalPhoneName() { CanonicalModel = "Lumia 1020" } }, - { "RM-876", new CanonicalPhoneName() { CanonicalModel = "Lumia 1020" } }, - { "RM-877", new CanonicalPhoneName() { CanonicalModel = "Lumia 1020" } }, - // Lumia 625 - { "RM-941", new CanonicalPhoneName() { CanonicalModel = "Lumia 625" } }, - { "RM-942", new CanonicalPhoneName() { CanonicalModel = "Lumia 625" } }, - { "RM-943", new CanonicalPhoneName() { CanonicalModel = "Lumia 625" } }, - // Lumia 1520 - { "RM-937", new CanonicalPhoneName() { CanonicalModel = "Lumia 1520" } }, - { "RM-938", new CanonicalPhoneName() { CanonicalModel = "Lumia 1520", Comments="AT&T" } }, - { "RM-939", new CanonicalPhoneName() { CanonicalModel = "Lumia 1520" } }, - { "RM-940", new CanonicalPhoneName() { CanonicalModel = "Lumia 1520", Comments="AT&T" } }, - // Lumia 525 - { "RM-998", new CanonicalPhoneName() { CanonicalModel = "Lumia 525" } }, - // Lumia 1320 - { "RM-994", new CanonicalPhoneName() { CanonicalModel = "Lumia 1320" } }, - { "RM-995", new CanonicalPhoneName() { CanonicalModel = "Lumia 1320" } }, - { "RM-996", new CanonicalPhoneName() { CanonicalModel = "Lumia 1320" } }, - // Lumia Icon - { "RM-927", new CanonicalPhoneName() { CanonicalModel = "Lumia Icon", Comments="Verizon" } }, - // Lumia 630 - { "RM-976", new CanonicalPhoneName() { CanonicalModel = "Lumia 630" } }, - { "RM-977", new CanonicalPhoneName() { CanonicalModel = "Lumia 630" } }, - { "RM-978", new CanonicalPhoneName() { CanonicalModel = "Lumia 630" } }, - { "RM-979", new CanonicalPhoneName() { CanonicalModel = "Lumia 630" } }, - // Lumia 635 - { "RM-974", new CanonicalPhoneName() { CanonicalModel = "Lumia 635" } }, - { "RM-975", new CanonicalPhoneName() { CanonicalModel = "Lumia 635" } }, - { "RM-1078", new CanonicalPhoneName() { CanonicalModel = "Lumia 635", Comments="Sprint" } }, - // Lumia 526 - { "RM-997", new CanonicalPhoneName() { CanonicalModel = "Lumia 526", Comments="China Mobile" } }, - // Lumia 930 - { "RM-1045", new CanonicalPhoneName() { CanonicalModel = "Lumia 930" } }, - { "RM-1087", new CanonicalPhoneName() { CanonicalModel = "Lumia 930" } }, - // Lumia 636 - { "RM-1027", new CanonicalPhoneName() { CanonicalModel = "Lumia 636", Comments="China" } }, - // Lumia 638 - { "RM-1010", new CanonicalPhoneName() { CanonicalModel = "Lumia 638", Comments="China" } }, - // Lumia 530 - { "RM-1017", new CanonicalPhoneName() { CanonicalModel = "Lumia 530", Comments="Single SIM" } }, - { "RM-1018", new CanonicalPhoneName() { CanonicalModel = "Lumia 530", Comments="Single SIM" } }, - { "RM-1019", new CanonicalPhoneName() { CanonicalModel = "Lumia 530", Comments="Dual SIM" } }, - { "RM-1020", new CanonicalPhoneName() { CanonicalModel = "Lumia 530", Comments="Dual SIM" } }, - // Lumia 730 - { "RM-1040", new CanonicalPhoneName() { CanonicalModel = "Lumia 730", Comments="Dual SIM" } }, - // Lumia 735 - { "RM-1038", new CanonicalPhoneName() { CanonicalModel = "Lumia 735" } }, - { "RM-1039", new CanonicalPhoneName() { CanonicalModel = "Lumia 735" } }, - { "RM-1041", new CanonicalPhoneName() { CanonicalModel = "Lumia 735", Comments="Verizon" } }, - // Lumia 830 - { "RM-983", new CanonicalPhoneName() { CanonicalModel = "Lumia 830" } }, - { "RM-984", new CanonicalPhoneName() { CanonicalModel = "Lumia 830" } }, - { "RM-985", new CanonicalPhoneName() { CanonicalModel = "Lumia 830" } }, - { "RM-1049", new CanonicalPhoneName() { CanonicalModel = "Lumia 830" } }, - // Lumia 535 - { "RM-1089", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 535" } }, - { "RM-1090", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 535" } }, - { "RM-1091", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 535" } }, - { "RM-1092", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 535" } }, - // Lumia 435 - { "RM-1068", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 435", Comments="DS" } }, - { "RM-1069", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 435", Comments="DS" } }, - { "RM-1070", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 435", Comments="DS" } }, - { "RM-1071", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 435", Comments="DS" } }, - { "RM-1114", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 435", Comments="DS" } }, - // Lumia 532 - { "RM-1031", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 532", Comments="DS" } }, - { "RM-1032", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 532", Comments="DS" } }, - { "RM-1034", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 532", Comments="DS" } }, - { "RM-1115", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 532", Comments="DS" } }, - // Lumia 640 - { "RM-1072", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 640" } }, - { "RM-1073", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 640" } }, - { "RM-1074", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 640" } }, - { "RM-1075", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 640" } }, - { "RM-1077", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 640" } }, - { "RM-1109", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 640" } }, - { "RM-1113", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 640" } }, - // Lumia 640XL - { "RM-1062", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 640 XL" } }, - { "RM-1063", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 640 XL" } }, - { "RM-1064", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 640 XL" } }, - { "RM-1065", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 640 XL" } }, - { "RM-1066", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 640 XL" } }, - { "RM-1067", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 640 XL" } }, - { "RM-1096", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 640 XL" } }, - // Lumia 540 - { "RM-1140", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 540" } }, - { "RM-1141", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 540" } }, - // Lumia 430 - { "RM-1099", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 430", Comments="DS" } }, - // Lumia 950 - { "RM-1104", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 950", Comments="DS" } }, - { "RM-1105", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 950", Comments="DS" } }, - { "RM-1118", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 950", Comments="DS" } }, - // Lumia 950 XL - { "RM-1085", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 950 XL" } }, - { "RM-1116", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 950 XL", Comments="DS" } }, - // Lumia 550 - { "RM-1127", new CanonicalPhoneName() { CanonicalManufacturer="MICROSOFT", CanonicalModel = "Lumia 550" } }, - }; - } - - public class CanonicalPhoneName - { - public string ReportedManufacturer { get; set; } - public string ReportedModel { get; set; } - public string CanonicalManufacturer { get; set; } - public string CanonicalModel { get; set; } - public string Comments { get; set; } - public bool IsResolved { get; set; } - - public string FullCanonicalName - { - get { return CanonicalManufacturer + " " + CanonicalModel; } - } - } -}
\ No newline at end of file diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/wp8/PlatformInfoProvider.WP.cs b/StoneIsland/plugins/cordova-plugin-google-analytics/wp8/PlatformInfoProvider.WP.cs deleted file mode 100644 index 4e1257f9..00000000 --- a/StoneIsland/plugins/cordova-plugin-google-analytics/wp8/PlatformInfoProvider.WP.cs +++ /dev/null @@ -1,103 +0,0 @@ -// PlatformInfoProvider.WP.cs - -using GoogleAnalytics.Core; -using System; -using System.IO.IsolatedStorage; -using System.Threading.Tasks; -using System.Windows; - -namespace UniversalAnalyticsPlugin -{ - public sealed class PlatformInfoProvider : IPlatformInfoProvider - { - const string Key_AnonymousClientId = "GoogleAnaltyics.AnonymousClientId"; - string anonymousClientId; - Dimensions _screenResolution = new Dimensions(0,0); - -#pragma warning disable 0067 - public event EventHandler ViewPortResolutionChanged; - - public event EventHandler ScreenResolutionChanged; -#pragma warning restore 0067 - - public PlatformInfoProvider() - { - Deployment.Current.Dispatcher.BeginInvoke(() => { - double scale = (double)Application.Current.Host.Content.ScaleFactor / 100; - int h = (int)Math.Ceiling(Application.Current.Host.Content.ActualHeight * scale); - int w = (int)Math.Ceiling(Application.Current.Host.Content.ActualWidth * scale); - _screenResolution = new Dimensions(h, w); - }); - } - - public string AnonymousClientId - { - get - { - if (anonymousClientId == null) - { - var appSettings = IsolatedStorageSettings.ApplicationSettings; - if (!appSettings.Contains(Key_AnonymousClientId)) - { - anonymousClientId = Guid.NewGuid().ToString(); - appSettings.Add(Key_AnonymousClientId, anonymousClientId); - appSettings.Save(); - } - else - { - anonymousClientId = (string)appSettings[Key_AnonymousClientId]; - } - } - return anonymousClientId; - } - set { anonymousClientId = value; } - } - - public Dimensions ScreenResolution - { - get - { - return _screenResolution; - } - } - - public Dimensions ViewPortResolution - { - get { return ScreenResolution; } - } - - public string UserLanguage - { - get { return System.Globalization.CultureInfo.CurrentUICulture.Name; } - } - - public int? ScreenColorDepthBits - { - get { return null; } - } - - public void OnTracking() - { } - - public string GetUserAgent() - { - var sysInfo = UniversalAnalyticsPlugin.PhoneNameResolver.Resolve(Microsoft.Phone.Info.DeviceStatus.DeviceManufacturer, Microsoft.Phone.Info.DeviceStatus.DeviceName); - Version osVer = Environment.OSVersion.Version; - string uaMask; - - if (osVer.Minor == 10) - { - // Windows Phone 8.1 - uaMask = "Mozilla/5.0 (Windows Phone 8.1; ARM; Trident/7.0; Touch; rv11.0; IEMobile/11.0; {1}; {2}) like Gecko"; - } - else - { - // Windows Phone 8.0 - uaMask = "Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone OS {0}; Trident/6.0; IEMobile/10.0; ARM; Touch; {1}; {2})"; - } - - //var userAgentMask = "Mozilla/[version] ([system and browser information]) [platform] ([platform details]) [extensions]"; - return string.Format(uaMask, Environment.OSVersion.Version, sysInfo.CanonicalManufacturer, sysInfo.CanonicalModel); - } - } -} diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/wp8/UniversalAnalytics.cs b/StoneIsland/plugins/cordova-plugin-google-analytics/wp8/UniversalAnalytics.cs deleted file mode 100644 index b4307922..00000000 --- a/StoneIsland/plugins/cordova-plugin-google-analytics/wp8/UniversalAnalytics.cs +++ /dev/null @@ -1,399 +0,0 @@ -/* - * Copyright (c) 2016 Dan Polivy - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of - * this software and associated documentation files (the "Software"), to deal in - * the Software without restriction, including without limitation the rights to - * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of - * the Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS - * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR - * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -using System; -using GoogleAnalytics.Core; -using WPCordovaClassLib.Cordova; -using WPCordovaClassLib.Cordova.Commands; -using WPCordovaClassLib.Cordova.JSON; -using System.Collections.Generic; -using System.Windows; -using System.Diagnostics; -using System.Threading.Tasks; -using Microsoft.Phone.Shell; - -namespace Cordova.Extension.Commands -{ - /// <summary> - /// UniversalAnalytics plugin class containing methods called from JavaScript - /// </summary> - public class UniversalAnalytics : BaseCommand - { - private TrackerManager _trackerManager = new TrackerManager(new UniversalAnalyticsPlugin.PlatformInfoProvider()); - private Tracker _tracker; - private bool _trackerStarted = false; - DateTime? _suspended; - private IDictionary<int, string> _customDimensions = new Dictionary<int, string>(); - - public UniversalAnalytics() - { - this.AutoAppLifetimeTracking = false; - this.SessionTimeout = 30; - } - - /// <summary> - /// Session timeout length, in seconds. - /// </summary> - public int? SessionTimeout { - get; - set; - } - - /// <summary> - /// Determines whether events are automatically sent for app lifetime tracking. - /// </summary> - public bool AutoAppLifetimeTracking { get; set; } - - public void startTrackerWithId(string options) - { - // If the tracker is already started, don't start it again - if (_trackerStarted) - { - DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, "Tracker is already started")); - return; - } - - string[] args = JsonHelper.Deserialize<string[]>(options); - - if (!_trackerStarted && args.Length > 0 && args[0].Length > 0) - { - _tracker = _trackerManager.GetTracker(args[0]); - - // Set additional Tracker parameters here - _tracker.SetStartSession(true); - _tracker.IsUseSecure = true; - _tracker.AppName = UniversalAnalyticsPlugin.Helpers.GetAppAttribute("Title"); - _tracker.AppVersion = UniversalAnalyticsPlugin.Helpers.GetAppAttribute("Version"); - - _trackerStarted = true; - - Deployment.Current.Dispatcher.BeginInvoke(() => - { - Application.Current.UnhandledException += Analytics_UnhandledException; - TaskScheduler.UnobservedTaskException += TaskScheduler_UnobservedTaskException; - }); - - DispatchCommandResult(new PluginResult(PluginResult.Status.OK, "Tracker started")); - } - else - { - DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, "Tracker id is not valid")); - } - } - - public override void OnResume(object sender, ActivatedEventArgs e) - { - if (_suspended.HasValue && SessionTimeout.HasValue) - { - var suspendedAgo = DateTime.UtcNow.Subtract(_suspended.Value); - if (suspendedAgo > TimeSpan.FromSeconds((double)SessionTimeout)) - { - _tracker.SetStartSession(true); - } - } - - if (_trackerStarted && AutoAppLifetimeTracking) - { - _tracker.SendEvent("app", "resume", !e.IsApplicationInstancePreserved ? "tombstoned" : null, 0); - } - } - - public override void OnPause(object sender, DeactivatedEventArgs e) - { - if (_trackerStarted && AutoAppLifetimeTracking) - { - _tracker.SendEvent("app", "suspend", e.Reason.ToString(), 0); - } - - _suspended = DateTime.UtcNow; - } - - private void TaskScheduler_UnobservedTaskException(object sender, UnobservedTaskExceptionEventArgs e) - { - var ex = e.Exception.InnerException ?? e.Exception; // inner exception contains better info for unobserved tasks - _tracker.SendException(ex.ToString(), false); - } - - private void Analytics_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e) - { - _tracker.SendException(e.ExceptionObject.ToString(), true); - - if (Debugger.IsAttached) - { - // An unhandled exception has occurred; break into the debugger - Debugger.Break(); - } - } - - public void setUserId(string options) - { - if (!_trackerStarted) - { - DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, "Tracker not started")); - return; - } - - string[] args = JsonHelper.Deserialize<string[]>(options); - string userId = null; - - if (args.Length > 0) userId = args[0]; - - _tracker.UserId = userId; - DispatchCommandResult(new PluginResult(PluginResult.Status.OK, "Set user id: " + args[0])); - } - - public void debugMode(string options) - { - _trackerManager.IsDebugEnabled = true; - - DispatchCommandResult(new PluginResult(PluginResult.Status.OK, "debugMode enabled")); - } - - public void trackView(string options) - { - if (!_trackerStarted) - { - DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, "Tracker not started")); - return; - } - - string[] args = JsonHelper.Deserialize<string[]>(options); - - if (args.Length > 0 && args[0] != null && args[0].Length > 0) - { - addCustomDimensionsToTracker(_tracker); - _tracker.SendView(args[0]); - DispatchCommandResult(new PluginResult(PluginResult.Status.OK, "Track Screen: " + args[0])); - } - else - { - DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, "Expected one non-empty string argument")); - } - } - - public void addCustomDimension(string options) - { - string[] args = JsonHelper.Deserialize<string[]>(options); - - int index = 0; - bool hasIndex = false; - string value = null; - - if (args.Length > 0) hasIndex = int.TryParse(args[0], out index); - if (args.Length > 1) value = args[1]; - - if (hasIndex && value != null) - { - // Remove the key if it already exists - _customDimensions.Remove(index); - _customDimensions.Add(index, value); - DispatchCommandResult(new PluginResult(PluginResult.Status.OK, "Add Custom Dimension: " + index)); - } - else - { - DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, "Expected non-empty integer, string arguments")); - } - } - - public void trackEvent(string options) - { - if (!_trackerStarted) - { - DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, "Tracker not started")); - return; - } - - string[] args = JsonHelper.Deserialize<string[]>(options); - - // Default values - string category = null, action = null, label = null; - long value = 0; - - if (args.Length > 0) category = args[0]; - if (args.Length > 1) action = args[1]; - if (args.Length > 2) label = args[2]; - if (args.Length > 3) long.TryParse(args[3], out value); - - addCustomDimensionsToTracker(_tracker); - _tracker.SendEvent(category, action, label, value); - - DispatchCommandResult(new PluginResult(PluginResult.Status.OK, "Track Event: " + category)); - } - - public void trackException(string options) - { - if (!_trackerStarted) - { - DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, "Tracker not started")); - return; - } - - string[] args = JsonHelper.Deserialize<string[]>(options); - - if (args.Length == 0 || args[0] == null || args[0].Length == 0) - { - DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, "Expected non-empty string arguments.")); - return; - } - - // Default values - string description = null; - bool isFatal = false; - - if (args.Length > 0) description = args[0]; - if (args.Length > 1) bool.TryParse(args[1], out isFatal); - - addCustomDimensionsToTracker(_tracker); - _tracker.SendException(description, isFatal); - - DispatchCommandResult(new PluginResult(PluginResult.Status.OK, "Track Exception: " + description)); - } - - public void trackTiming(string options) - { - if (!_trackerStarted) - { - DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, "Tracker not started")); - return; - } - - string[] args = JsonHelper.Deserialize<string[]>(options); - - if (args.Length == 0 || args[0] == null || args[0].Length == 0) - { - DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, "Expected non-empty string arguments.")); - return; - } - - // Default values - string category = null, variable = null, label = null; - long intervalInMs = 0; - - if (args.Length > 0) category = args[0]; - if (args.Length > 1) long.TryParse(args[1], out intervalInMs); - if (args.Length > 2) variable = args[2]; - if (args.Length > 3) label = args[3]; - - addCustomDimensionsToTracker(_tracker); - _tracker.SendTiming(TimeSpan.FromMilliseconds(intervalInMs), category, variable, label); - - DispatchCommandResult(new PluginResult(PluginResult.Status.OK, "Track Timing: " + category)); - } - - public void addTransaction(string options) - { - if (!_trackerStarted) - { - DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, "Tracker not started")); - return; - } - - string[] args = JsonHelper.Deserialize<string[]>(options); - - if (args.Length == 0 || args[0] == null || args[0].Length == 0) - { - DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, "Expected non-empty ID.")); - return; - } - - Transaction transaction = new Transaction(); - - // Default values - double revenue = 0, tax = 0, shipping = 0; - - if (args.Length > 0) transaction.TransactionId = args[0]; - if (args.Length > 1) transaction.Affiliation = args[1]; - if (args.Length > 2) - { - double.TryParse(args[2], out revenue); - transaction.TotalCostInMicros = (long)(revenue * 1000000); - } - if (args.Length > 3) - { - double.TryParse(args[3], out tax); - transaction.TotalTaxInMicros = (long)(tax * 1000000); - } - if (args.Length > 4) - { - double.TryParse(args[4], out shipping); - transaction.ShippingCostInMicros = (long)(shipping * 1000000); - } - if (args.Length > 5) transaction.CurrencyCode = args[5]; - - addCustomDimensionsToTracker(_tracker); - _tracker.SendTransaction(transaction); - - DispatchCommandResult(new PluginResult(PluginResult.Status.OK, "Add Transaction: " + transaction.TransactionId)); - } - - public void addTransactionItem(string options) - { - if (!_trackerStarted) - { - DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, "Tracker not started")); - return; - } - - string[] args = JsonHelper.Deserialize<string[]>(options); - - if (args.Length == 0 || args[0] == null || args[0].Length == 0) - { - DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, "Expected non-empty ID.")); - return; - } - - TransactionItem transactionItem = new TransactionItem(); - - // Default values - double price = 0; - long quantity = 0; - - if (args.Length > 0) transactionItem.TransactionId = args[0]; - if (args.Length > 1) transactionItem.Name = args[1]; - if (args.Length > 2) transactionItem.SKU = args[2]; - if (args.Length > 3) transactionItem.Category = args[3]; - if (args.Length > 4) - { - double.TryParse(args[4], out price); - transactionItem.PriceInMicros = (long)(price * 1000000); - } - if (args.Length > 5) - { - long.TryParse(args[5], out quantity); - transactionItem.Quantity = quantity; - } - if (args.Length > 6) transactionItem.CurrencyCode = args[6]; - - addCustomDimensionsToTracker(_tracker); - _tracker.SendTransactionItem(transactionItem); - - DispatchCommandResult(new PluginResult(PluginResult.Status.OK, "Add Transaction Item: " + transactionItem.TransactionId)); - } - - private void addCustomDimensionsToTracker(Tracker tracker) - { - foreach (KeyValuePair<int, string> dimension in _customDimensions) - { - tracker.SetCustomDimension(dimension.Key, dimension.Value); - } - } - } -}
\ No newline at end of file diff --git a/StoneIsland/plugins/cordova-plugin-google-analytics/www/analytics.js b/StoneIsland/plugins/cordova-plugin-google-analytics/www/analytics.js deleted file mode 100644 index 03b4a9d4..00000000 --- a/StoneIsland/plugins/cordova-plugin-google-analytics/www/analytics.js +++ /dev/null @@ -1,127 +0,0 @@ -function UniversalAnalyticsPlugin() {} - -UniversalAnalyticsPlugin.prototype.startTrackerWithId = function(id, dispatchPeriod, success, error) { - if (typeof dispatchPeriod === 'undefined' || dispatchPeriod === null) { - dispatchPeriod = 30; - } else if (typeof dispatchPeriod === 'function' && typeof error === 'undefined') { - // Called without dispatchPeriod but with a callback. - // Looks like the original API was used so shift parameters over to remain compatible. - error = success; - success = dispatchPeriod; - dispatchPeriod = 30; - } - cordova.exec(success, error, 'UniversalAnalytics', 'startTrackerWithId', [id, dispatchPeriod]); -}; - -UniversalAnalyticsPlugin.prototype.setAllowIDFACollection = function(enable, success, error) { - cordova.exec(success, error, 'UniversalAnalytics', 'setAllowIDFACollection', [enable]); -}; - -UniversalAnalyticsPlugin.prototype.setUserId = function(id, success, error) { - cordova.exec(success, error, 'UniversalAnalytics', 'setUserId', [id]); -}; - -UniversalAnalyticsPlugin.prototype.setAnonymizeIp = function(anonymize, success, error) { - cordova.exec(success, error, 'UniversalAnalytics', 'setAnonymizeIp', [anonymize]); -}; - -UniversalAnalyticsPlugin.prototype.setOptOut = function(optout, success, error) { - cordova.exec(success, error, 'UniversalAnalytics', 'setOptOut', [optout]); -}; - -UniversalAnalyticsPlugin.prototype.setAppVersion = function(version, success, error) { - cordova.exec(success, error, 'UniversalAnalytics', 'setAppVersion', [version]); -}; - -UniversalAnalyticsPlugin.prototype.getVar = function(variable, success, error) { - cordova.exec(success, error, 'UniversalAnalytics', 'getVar', [variable]); -}; - -UniversalAnalyticsPlugin.prototype.setVar = function(variable, value, success, error) { - cordova.exec(success, error, 'UniversalAnalytics', 'setVar', [variable, value]); -}; - -UniversalAnalyticsPlugin.prototype.dispatch = function(success, error) { - cordova.exec(success, error, 'UniversalAnalytics', 'dispatch', []); -}; - -/* enables verbose logging */ -UniversalAnalyticsPlugin.prototype.debugMode = function(success, error) { - cordova.exec(success, error, 'UniversalAnalytics', 'debugMode', []); -}; - -UniversalAnalyticsPlugin.prototype.trackMetric = function(key, value, success, error) { - cordova.exec(success, error, 'UniversalAnalytics', 'trackMetric', [key, value]); -}; - -UniversalAnalyticsPlugin.prototype.trackView = function(screen, campaignUrl, newSession, success, error) { - if (typeof campaignUrl === 'undefined' || campaignUrl === null) { - campaignUrl = ''; - } - - if (typeof newSession === 'undefined' || newSession === null) { - newSession = false; - } - - cordova.exec(success, error, 'UniversalAnalytics', 'trackView', [screen, campaignUrl, newSession]); -}; - -UniversalAnalyticsPlugin.prototype.addCustomDimension = function(key, value, success, error) { - if (typeof key !== "number") { - throw Error("key must be a valid integer not '" + typeof key + "'"); - } - cordova.exec(success, error, 'UniversalAnalytics', 'addCustomDimension', [key, value]); -}; - -UniversalAnalyticsPlugin.prototype.trackEvent = function(category, action, label, value, newSession, success, error) { - if (typeof label === 'undefined' || label === null) { - label = ''; - } - if (typeof value === 'undefined' || value === null) { - value = 0; - } - - if (typeof newSession === 'undefined' || newSession === null) { - newSession = false; - } - - cordova.exec(success, error, 'UniversalAnalytics', 'trackEvent', [category, action, label, value, newSession]); -}; - -/** - * https://developers.google.com/analytics/devguides/collection/android/v3/exceptions - */ -UniversalAnalyticsPlugin.prototype.trackException = function(description, fatal, success, error) { - cordova.exec(success, error, 'UniversalAnalytics', 'trackException', [description, fatal]); -}; - -UniversalAnalyticsPlugin.prototype.trackTiming = function(category, intervalInMilliseconds, name, label, success, error) { - if (typeof intervalInMilliseconds === 'undefined' || intervalInMilliseconds === null) { - intervalInMilliseconds = 0; - } - if (typeof name === 'undefined' || name === null) { - name = ''; - } - if (typeof label === 'undefined' || label === null) { - label = ''; - } - - cordova.exec(success, error, 'UniversalAnalytics', 'trackTiming', [category, intervalInMilliseconds, name, label]); -}; - -/* Google Analytics e-Commerce Tracking */ -/* https://developers.google.com/analytics/devguides/collection/analyticsjs/ecommerce */ -UniversalAnalyticsPlugin.prototype.addTransaction = function(transactionId, affiliation, revenue, tax, shipping, currencyCode, success, error) { - cordova.exec(success, error, 'UniversalAnalytics', 'addTransaction', [transactionId, affiliation, revenue, tax, shipping, currencyCode]); -}; - -UniversalAnalyticsPlugin.prototype.addTransactionItem = function(transactionId, name ,sku, category, price, quantity, currencyCode, success, error) { - cordova.exec(success, error, 'UniversalAnalytics', 'addTransactionItem', [transactionId, name ,sku, category, price, quantity, currencyCode]); -}; - -/* automatic uncaught exception tracking */ -UniversalAnalyticsPlugin.prototype.enableUncaughtExceptionReporting = function (enable, success, error) { - cordova.exec(success, error, 'UniversalAnalytics', 'enableUncaughtExceptionReporting', [enable]); -}; - -module.exports = new UniversalAnalyticsPlugin(); |
