import { Cordova, Plugin } from './plugin'; declare var window; /** * @name Google Analytics * @description * This plugin connects to Google's native Universal Analytics SDK * Prerequisites: * - A Cordova 3.0+ project for iOS and/or Android * - 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) */ @Plugin({ name: 'GoogleAnalytics', plugin: 'cordova-plugin-google-analytics', pluginRef: 'ga', repo: 'https://github.com/danwilson/google-analytics-plugin', platforms: ['Android', 'iOS'] }) export class GoogleAnalytics { /** * In your 'deviceready' handler, set up your Analytics tracker. * https://developers.google.com/analytics/devguides/collection/analyticsjs/ * @param {string} id Your Google Analytics Mobile App property * @return {Promise} */ @Cordova() static startTrackerWithId(id: string): Promise { return; } /** * Enabling Advertising Features in Google Analytics allows you to take advantage of Remarketing, Demographics & Interests reports, and more * @param allow {boolean} * @return {Promise} */ @Cordova() static setAllowIDFACollection(allow: boolean): Promise { return; } /** * Set a UserId * https://developers.google.com/analytics/devguides/collection/analyticsjs/user-id * @param {string} id User ID * @return {Promise} */ @Cordova() static setUserId(id: string): Promise { return; } /** * Set a anonymize Ip address * @param anonymize {boolean} Set to true to anonymize the IP Address * @return {Promise} */ @Cordova() static setAnonymizeIp(anonymize: boolean): Promise { return; } /** * Sets the app version * @param appVersion {string} App version * @return {Promise} */ @Cordova() static setAppVersion(appVersion: string): Promise { return; } /** * Set OptOut * @param optout {boolean} * @return {Promise} */ @Cordova() static setOptOut(optout: boolean): Promise { return; } /** * Enable verbose logging * @return {Promise} */ @Cordova() static debugMode(): Promise { return; } /** * Track custom metric * @param key {string} * @param value {any} * @return {Promise} */ @Cordova({ successIndex: 2, errorIndex: 3 }) static trackMetric(key: string, value?: any): Promise { return; } /** * Track a screen * https://developers.google.com/analytics/devguides/collection/analyticsjs/screens * * @param title {string} Screen title * @param campaignUrl {string} Campaign url for measuring referrals * @param newSession {boolean} Set to true to create a new session * @return {Promise} */ @Cordova({ successIndex: 3, errorIndex: 4 }) static trackView(title: string, campaignUrl?: string, newSession?: boolean): Promise { return; } /** * Add a Custom Dimension * https://developers.google.com/analytics/devguides/platform/customdimsmets * @param key {string} * @param value {string} * @return {Promise} */ @Cordova() static addCustomDimension(key: number, value: string): Promise { return; } /** * Track an event * https://developers.google.com/analytics/devguides/collection/analyticsjs/events * @param category {string} * @param action {string} * @param label {string} * @param value {number} * @param newSession {boolean} Set to true to create a new session * @return {Promise} */ @Cordova({ successIndex: 5, errorIndex: 6 }) static trackEvent(category: string, action: string, label?: string, value?: number, newSession?: boolean): Promise { return; } /** * Track an exception * @param description {string} * @param fatal {boolean} * @return {Promise} */ @Cordova() static trackException(description: string, fatal: boolean): Promise { return; } /** * Track User Timing (App Speed) * @param category {string} * @param intervalInMilliseconds {number} * @param variable {string} * @param label {string} * @return {Promise} */ @Cordova() static trackTiming(category: string, intervalInMilliseconds: number, variable: string, label: string): Promise { return; } /** * Add a Transaction (Ecommerce) * https://developers.google.com/analytics/devguides/collection/analyticsjs/ecommerce#addTrans * @param id {string} * @param affiliation {string} * @param revenue {number} * @param tax {number} * @param shipping {number} * @param currencyCode {string} * @return {Promise} */ @Cordova() static addTransaction(id: string, affiliation: string, revenue: number, tax: number, shipping: number, currencyCode: string): Promise { return; } /** * Add a Transaction Item (Ecommerce) * https://developers.google.com/analytics/devguides/collection/analyticsjs/ecommerce#addItem * @param {string} id * @param {string} name * @param {string} sku * @param {string} category * @param {number} price * @param {number} quantity * @param {string} currencyCode * @return {Promise} */ @Cordova() static addTransactionItem(id: string, name: string, sku: string, category: string, price: number, quantity: number, currencyCode: string): Promise { return; } /** * Enable/disable automatic reporting of uncaught exceptions * @param shouldEnable {boolean} * @return {Promise} */ @Cordova() static enableUncaughtExceptionReporting(shouldEnable: boolean): Promise { return; } }