{"_id":"@brandingbrand/react-native-google-analytics","_rev":"345-98d16096da77d916d1cbd49ae22a58e3","name":"@brandingbrand/react-native-google-analytics","dist-tags":{"latest":"2.2.0"},"versions":{"2.0.0":{"name":"@brandingbrand/react-native-google-analytics","version":"2.0.0","keywords":["react","native","ab","test","testing","analytics","metrics","events","google","experiment","variant"],"author":{"url":"http://lwansbrough.com","name":"Lochlan Wansbrough","email":"lochie@live.com"},"_id":"@brandingbrand/react-native-google-analytics@2.0.0","maintainers":[{"name":"branderbrett","email":"brett@brandingbrand.com"}],"contributors":[{"name":"Branding Brand"}],"homepage":"https://github.com/brandingbrand/react-native-google-analytics#readme","bugs":{"url":"https://github.com/brandingbrand/react-native-google-analytics/issues"},"dist":{"shasum":"f242500607043546aa1d09da189cb047d5cef0a2","tarball":"https://registry.npmjs.org/@brandingbrand/react-native-google-analytics/-/react-native-google-analytics-2.0.0.tgz","integrity":"sha512-gufnGQsV9eL+36/WL/l4ozXUC6fA0GI8rM67rNoTt9JW3cpxe9CohPgowJMBqZhu9ZHKxmRWT7A2Td85wZGsdg==","signatures":[{"sig":"MEYCIQD8U0SrW9/4tL/MCvQEIwZxn/4PVFoAMAziBRuyORzCZAIhAJWDyNrRyHvZMf5hYC+KqKaiwNmRmZKmXqZH9aqjl5vA","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","gitHead":"35b5704af5198269e12a74882df6c56186b48cb2","_npmUser":{"name":"branderbrett","email":"brett@brandingbrand.com"},"repository":{"url":"git+https://github.com/brandingbrand/react-native-google-analytics.git","type":"git"},"_npmVersion":"5.5.1","description":"Google Analytics for React Native!","directories":{},"_nodeVersion":"6.11.5","_npmOperationalInternal":{"tmp":"tmp/react-native-google-analytics-2.0.0.tgz_1510769786845_0.7438458043616265","host":"s3://npm-registry-packages"}},"2.1.0":{"name":"@brandingbrand/react-native-google-analytics","version":"2.1.0","keywords":["react","native","ab","test","testing","analytics","metrics","events","google","experiment","variant"],"author":{"url":"http://lwansbrough.com","name":"Lochlan Wansbrough","email":"lochie@live.com"},"_id":"@brandingbrand/react-native-google-analytics@2.1.0","maintainers":[{"name":"alexkbb","email":"alexandra.krongel@brandingbrand.com"},{"name":"bbtravis","email":"travis+bbtravis@brandingbrand.com"},{"name":"branderbrett","email":"brett@brandingbrand.com"},{"name":"cauldrath","email":"ben@brandingbrand.com"},{"name":"davechekan","email":"dave@brandingbrand.com"},{"name":"deemaabdallah","email":"deema.abdallah@brandingbrand.com"},{"name":"dshadrick","email":"dan.shadrick@brandingbrand.com"},{"name":"fredfleitzbb","email":"fred.fleitz@brandingbrand.com"},{"name":"gingerbear","email":"bbbear444@gmail.com"},{"name":"jackwork","email":"John.Workmeister@brandingbrand.com"},{"name":"jasonmosleybb","email":"jason.mosley@brandingbrand.com"},{"name":"jonkoynok","email":"jon.koynok@brandingbrand.com"},{"name":"justinkendler","email":"justin@justinendler.com"},{"name":"markdekinbb","email":"mark.dekin@brandingbrand.com"},{"name":"msiauko","email":"mikhail@brandingbrand.com"},{"name":"nickbb","email":"nick@brandingbrand.com"},{"name":"nickburkhartbb","email":"nick.burkhart@brandingbrand.com"},{"name":"notajvento","email":"aj@brandingbrand.com"},{"name":"pavlemilicevicbb","email":"pavle.milicevic@brandingbrand.com"},{"name":"qiki","email":"qi@brandingbrand.com"},{"name":"sdovenor","email":"sebastian@brandingbrand.com"},{"name":"shanekormanbb","email":"shane.korman@brandingbrand.com"},{"name":"skyeckstrom","email":"npm@skyeckstrom.com"},{"name":"tuckerbrander","email":"tucker@brandingbrand.com"},{"name":"vance.hu","email":"vance.hu@brandingbrand.com"}],"contributors":[{"name":"Branding Brand"}],"homepage":"https://github.com/brandingbrand/react-native-google-analytics#readme","bugs":{"url":"https://github.com/brandingbrand/react-native-google-analytics/issues"},"dist":{"shasum":"3c45f1d5135d0264af5ba30c0a11991825407044","tarball":"https://registry.npmjs.org/@brandingbrand/react-native-google-analytics/-/react-native-google-analytics-2.1.0.tgz","fileCount":32,"integrity":"sha512-7ULYv5yYjTnwSUPgx0p72AwwF9XxZ6yyplScRG7KDLwZLzgIZy/8OVF6QG6x7WEfAbZoZMr5dg9lOoQAx/ZPcw==","signatures":[{"sig":"MEQCIF/s9TdBYZaYEcGjz05/Bnifml+chA2nb9LMaCBSPglrAiA+bvXypcFr6LtL/Us/MW2xW7bie9PzlvGgVPMeKEnN8A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":33065},"main":"index.js","gitHead":"c36e49149cbbe04b5e8cb490f91141bb1823aea4","_npmUser":{"name":"branderbrett","email":"brett@brandingbrand.com"},"repository":{"url":"git+https://github.com/brandingbrand/react-native-google-analytics.git","type":"git"},"_npmVersion":"5.6.0","description":"Google Analytics for React Native!","directories":{},"_nodeVersion":"8.9.4","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/react-native-google-analytics_2.1.0_1518039191348_0.2302159592391333","host":"s3://npm-registry-packages"}},"2.2.0":{"name":"@brandingbrand/react-native-google-analytics","version":"2.2.0","keywords":["react","native","ab","test","testing","analytics","metrics","events","google","experiment","variant"],"author":{"url":"http://lwansbrough.com","name":"Lochlan Wansbrough","email":"lochie@live.com"},"_id":"@brandingbrand/react-native-google-analytics@2.2.0","maintainers":[{"name":"sauceknight","email":"aquirogatech@gmail.com"},{"name":"seanirby","email":"sean.irby@brandingbrand.com"},{"name":"brandonacb","email":"brandonacb@gmail.com"},{"name":"edelgado20","email":"edgardelgado2129@gmail.com"},{"name":"beaukenny","email":"beaukenny@gmail.com"},{"name":"vyy7gn8j297flmyqgsmb","email":"josh.sarver@brandingbrand.com"},{"name":"kyleb59","email":"kyle.bennett@BetweenFiveAndNine.com"},{"name":"bhushan.kini","email":"bhushan.kini@brandingbrand.com"},{"name":"dman01989","email":"dtwiers08@gmail.com"},{"name":"maksymdeminbbc","email":"maksym.demin@brandingbrand.com"},{"name":"jon.ploucha","email":"jon.ploucha@brandingbrand.com"},{"name":"nathan-sankbeil","email":"nathan.sankbeil@brandingbrand.com"},{"name":"branderbrett","email":"brett@brandingbrand.com"},{"name":"skyeckstrom","email":"npm@skyeckstrom.com"},{"name":"nickburkhartbb","email":"nick.burkhart@brandingbrand.com"},{"name":"bbtravis","email":"travis+bbtravis@brandingbrand.com"},{"name":"deemaabdallah","email":"deema.abdallah@brandingbrand.com"},{"name":"msiauko","email":"mikhail@brandingbrand.com"},{"name":"tuckerbrander","email":"tucker@brandingbrand.com"},{"name":"jasonmosleybb","email":"jason.mosley@brandingbrand.com"},{"name":"dshadrick","email":"dan.shadrick@brandingbrand.com"},{"name":"nickbb","email":"nick@brandingbrand.com"},{"name":"notajvento","email":"aj@brandingbrand.com"},{"name":"andyschwob","email":"andy.schwob@brandingbrand.com"},{"name":"brad.habenicht","email":"brad.habenicht@brandingbrand.com"},{"name":"bbkohsinchu","email":"kohsin.chu@brandingbrand.com"},{"name":"xero","email":"andrew.harrison@brandingbrand.com"},{"name":"hearsh","email":"Hearsh.Mahidharia@brandingbrand.com"},{"name":"mike.lux","email":"mike.lux@brandingbrand.com"},{"name":"caleb.griffith","email":"caleb.griffith@brandingbrand.com"},{"name":"tim.matyas","email":"tim.matyas@brandingbrand.com"},{"name":"olksns","email":"olksns@gmail.com"},{"name":"avard","email":"alexandrkorsia@gmail.com"},{"name":"varzamanbb","email":"stefan.neamtu@brandingbrand.com"},{"name":"bb_jenkins","email":"ops@brandingbrand.com"},{"name":"sapter","email":"sam@sapter.com"},{"name":"crherman7","email":"crherman7@gmail.com"},{"name":"anna.larionova","email":"anna.larionova@metroglobal.net"},{"name":"olexandor","email":"olexandor.s@gmail.com"},{"name":"bodrus","email":"maxshop2010@gmail.com"},{"name":"branding_alex","email":"alex.risch@brandingbrand.com"},{"name":"cboetto","email":"cmitchellboetto@gmail.com"},{"name":"huizhuz","email":"huizhuz@outlook.com"},{"name":"danrudolf2","email":"dan.rudolf@brandingbrand.com"},{"name":"celuchnb","email":"noah.celuch@gmail.com"},{"name":"abhishek_npm","email":"abhishek.jain@brandingbrand.com"},{"name":"lhenze33","email":"lhenze3@gmail.com"},{"name":"jeromefitz","email":"j@jeromefitzgerald.com"},{"name":"winterss","email":"winter.nes@gmail.com"},{"name":"romaniukua","email":"romaniuk1511@gmail.com"},{"name":"tboetto","email":"anthonyboetto@gmail.com"},{"name":"erichfeinstein","email":"erichfeinstein@gmail.com"},{"name":"metprox","email":"olegvakarchuk94@gmail.com"},{"name":"sjotterman","email":"sjotterman@gmail.com"},{"name":"saurabh7693","email":"saurabhjaiswal93@gmail.com"},{"name":"cawhite","email":"corey.white.a@gmail.com"},{"name":"zrispo","email":"zach.rispoli@gmail.com"},{"name":"omarkoueifi","email":"omarokmail@gmail.com"},{"name":"danish.khalid","email":"danish.khalid@brandingbrand.com"},{"name":"devs9-core","email":"devs7g@gmail.com"},{"name":"alex-black112","email":"alex.black@brandingbrand.com"},{"name":"nasliedkov","email":"nasliedkov@gmail.com"},{"name":"wsedlacekc","email":"wsedlacekc@gmail.com"},{"name":"john-marcello","email":"john.marcello@yahoo.com"}],"contributors":[{"name":"Branding Brand"}],"homepage":"https://github.com/brandingbrand/react-native-google-analytics#readme","bugs":{"url":"https://github.com/brandingbrand/react-native-google-analytics/issues"},"dist":{"shasum":"2b4892cbe93424e0e9d9705398f0de514e413c47","tarball":"https://registry.npmjs.org/@brandingbrand/react-native-google-analytics/-/react-native-google-analytics-2.2.0.tgz","fileCount":34,"integrity":"sha512-+iUxUulpgg9/huac8QsmJIhbDkdJcXm3bfr5ILsekjTfYEiM4Qcx2zFU8CH/bYWp8hWcQKwh1YRbnB98sVFzFQ==","signatures":[{"sig":"MEUCIA+m0MSXG/A9MKbgsp7h5ftjhVgJ5g6jpkPoIpcd1HBZAiEAhYAv5hsskwNApQdLhdJO/sbaL6bORfpvkDhf5ITPpmU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":34365,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgdv8ECRA9TVsSAnZWagAATKAQAKUlnjzb0UQ2D6bwohE5\n7Gm6yB3/k1/RHnSZ/d+oM8LxmsE1xdFPQxyoEK8RuH9DjfaSwshIiz3f8gFj\ni2FUgy4kaFLyJYd54NI4Xw8nrlIxWb8n6FG5D1fd/XifCFO5Tzj10x4ZxBpy\nVFfH6en+Sx9eHH/6qDW5V+f4+7GMpdThr/T4XVlhKpIk+j/Ja1PrJUF2J5YX\nZnq1wMwcTuVvWLOH7uXw2eT+hqDItm9iVkp6lWkQMuD+gl0ac/EWkXG/r6Zy\n37hHgfXVoni66v/dqx2T4P/MV1z95oO+E8pv/Vh43nGB0sGwc60T8yI+FjMh\nMaiJyDBGvqFbS61bupd4TwRwQ11Fg+GmLRI3wfvuBh8K7fwVr4B2vdZGzkmV\ncv+axGhx9VMcuQIzf5iys/7w5+Hq55TYVJjcqP0nFlpIgih2LmG+AB2VJC+m\n2+16YQ4LiWkN9zZ3JTD1UIweSdjd67GsuY5EoezvenWQ/XuCDJk+sl0IjpXE\nf/Gr3IPyQiyk5V2xnInEpTKVjDfa/79FcXAnMVSJhxKGXOdR7vCvDpYkGXKX\nnrBDPeMiKAC7kjD7CRENrWR65Euuh644usp6QUWpdiNXKh+yxk9fP2q9yibN\nUYvPTJKUS0ViusHuzlQJb0f+XZivJ4E9cGrTYsHTwISSErpCRXgaH+xF+3Af\nLM11\r\n=TUAz\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"c7828e63e2e9cb4e4916a73df6b4ccc7d0e2b7fa","_npmUser":{"name":"branderbrett","email":"brett@brandingbrand.com"},"repository":{"url":"git+https://github.com/brandingbrand/react-native-google-analytics.git","type":"git"},"_npmVersion":"6.14.11","description":"Google Analytics for React Native!","directories":{},"_nodeVersion":"12.21.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/react-native-google-analytics_2.2.0_1618411267637_0.26337522397969604","host":"s3://npm-registry-packages"}}},"time":{"created":"2017-11-15T18:16:27.849Z","modified":"2026-03-13T16:20:20.286Z","2.0.0":"2017-11-15T18:16:27.849Z","2.1.0":"2018-02-07T21:33:11.408Z","2.2.0":"2021-04-14T14:41:07.844Z"},"bugs":{"url":"https://github.com/brandingbrand/react-native-google-analytics/issues"},"author":{"url":"http://lwansbrough.com","name":"Lochlan Wansbrough","email":"lochie@live.com"},"homepage":"https://github.com/brandingbrand/react-native-google-analytics#readme","keywords":["react","native","ab","test","testing","analytics","metrics","events","google","experiment","variant"],"repository":{"url":"git+https://github.com/brandingbrand/react-native-google-analytics.git","type":"git"},"description":"Google Analytics for React Native!","contributors":[{"name":"Branding Brand"}],"maintainers":[{"email":"nathan.sankbeil@brandingbrand.com","name":"nathan-sankbeil"},{"email":"nick.burkhart@brandingbrand.com","name":"nickburkhartbb"},{"email":"travis+bbtravis@brandingbrand.com","name":"bbtravis"},{"email":"deema.abdallah@brandingbrand.com","name":"deemaabdallah"},{"email":"mikhail@brandingbrand.com","name":"msiauko"},{"email":"jason.mosley@brandingbrand.com","name":"jasonmosleybb"},{"email":"nick@brandingbrand.com","name":"nickbb"},{"email":"aj@brandingbrand.com","name":"notajvento"},{"email":"andrew.harrison@brandingbrand.com","name":"xero"},{"email":"stefan.neamtu@brandingbrand.com","name":"varzamanbb"},{"email":"ops@brandingbrand.com","name":"bb_jenkins"},{"email":"crherman7@gmail.com","name":"crherman7"},{"email":"johnmichael.w.riley@gmail.com","name":"jmwr"},{"email":"travis@brandingbrand.com","name":"bbtravisreadonly"}],"readme":"# react-native-google-analytics [![npm version](https://badge.fury.io/js/react-native-google-analytics.svg)](http://badge.fury.io/js/react-native-google-analytics)\n\nGoogle Analytics for React Native!\n\n## Getting started\n\n1. `npm install react-native-google-analytics@latest --save`\n\n## Usage\n\nBelow is an example that utilizes this library along with enhanced ecommerce functionality and `react-native-ab` for A/B testing.\n\n```javascript\n'use strict';\n\nimport React, { Component } from 'react-native';\nconst {\n  AppRegistry,\n  StyleSheet,\n  Text,\n  View,\n  TouchableHighlight\n} = React;\nimport { Experiment, Variant } from 'react-native-ab';\nimport {\n  Analytics,\n  Actions as GAActions,\n  Hits as GAHits,\n  Experiment as GAExperiment\n} from 'react-native-google-analytics';\nimport DeviceInfo from 'react-native-device-info';\n\nvar ga = this.ga = null;\n\nvar rnabtest = React.createClass({\n  getInitialState() {\n    return {\n      experiments: {}\n    };\n  },\n\n  componentWillMount() {\n    let clientId = DeviceInfo.getUniqueID();\n    ga = new Analytics('UA-XXXXXXXX-X', clientId, 1, DeviceInfo.getUserAgent());\n    var screenView = new GAHits.ScreenView(\n      'Example App',\n      'Welcome Screen',\n      DeviceInfo.getReadableVersion(),\n      DeviceInfo.getBundleId()\n    );\n    ga.send(screenView);\n  },\n\n  render() {\n    return (\n      <View style={styles.container}>\n        <TouchableHighlight onPress={this._resetExperiment}>\n          <View>\n            <Experiment\n              ref=\"welcomeMessageTest\"\n              name=\"welcome-message\"\n              onChoice={this._onChoice}>\n              <Variant name=\"standard\">\n                <Text style={styles.welcome}>\n                  Welcome to React Native!\n                </Text>\n              </Variant>\n              <Variant name=\"friendly\">\n                <Text style={styles.welcome}>\n                  Hey there! Welcome to React Native!\n                </Text>\n              </Variant>\n              <Variant name=\"western\">\n                <Text style={styles.welcome}>\n                  Howdy, partner! This here is React Native!\n                </Text>\n              </Variant>\n            </Experiment>\n          </View>\n        </TouchableHighlight>\n        <TouchableHighlight onPress={this._sendEvent}>\n          <Text style={styles.feature}>\n            Send GA Event\n          </Text>\n        </TouchableHighlight>\n        <TouchableHighlight onPress={this._productImpression}>\n          <Text style={styles.feature}>\n            Add GA Product Impression\n          </Text>\n        </TouchableHighlight>\n        <TouchableHighlight onPress={this._promoImpression}>\n          <Text style={styles.feature}>\n            Add GA Promo Impression\n          </Text>\n        </TouchableHighlight>\n        <TouchableHighlight onPress={this._clickProduct}>\n          <Text style={styles.feature}>\n            Set GA Product Click\n          </Text>\n        </TouchableHighlight>\n        <TouchableHighlight onPress={this._clickPromo}>\n          <Text style={styles.feature}>\n            Set GA Promo Click\n          </Text>\n        </TouchableHighlight>\n        <TouchableHighlight onPress={this._productDetail}>\n          <Text style={styles.feature}>\n            Set GA Product Detail\n          </Text>\n        </TouchableHighlight>\n        <TouchableHighlight onPress={this._addProductCart}>\n          <Text style={styles.feature}>\n            Set GA Add Product to Cart\n          </Text>\n        </TouchableHighlight>\n        <TouchableHighlight onPress={this._removeProductCart}>\n          <Text style={styles.feature}>\n            Set GA Remove Product from Cart\n          </Text>\n        </TouchableHighlight>\n        <TouchableHighlight onPress={this._checkout}>\n          <Text style={styles.feature}>\n            Set GA Checkout\n          </Text>\n        </TouchableHighlight>\n        <TouchableHighlight onPress={this._checkoutOption}>\n          <Text style={styles.feature}>\n            Set GA Checkout Option\n          </Text>\n        </TouchableHighlight>\n        <TouchableHighlight onPress={this._purchase}>\n          <Text style={styles.feature}>\n            Set GA Purchase\n          </Text>\n        </TouchableHighlight>\n        <TouchableHighlight onPress={this._refundAll}>\n          <Text style={styles.feature}>\n            Set GA Refund All\n          </Text>\n        </TouchableHighlight>\n        <TouchableHighlight onPress={this._refundProduct}>\n          <Text style={styles.feature}>\n            Set GA Refund Product\n          </Text>\n        </TouchableHighlight>\n        <Text style={styles.instructions}>\n          To get started, edit index.ios.js\n        </Text>\n        <Text style={styles.instructions}>\n          Press Cmd+R to reload,{'\\n'}\n          Cmd+Control+Z for dev menu\n        </Text>\n      </View>\n    );\n  },\n\n  _onChoice(testName, variantName) {\n    var experiment = new GAExperiment(testName, variantName);\n\n    var state = this.state;\n    state.experiments[testName] = experiment;\n    this.setState(state);\n  },\n\n  _resetExperiment() {\n    this.refs.welcomeMessageTest.reset();\n  },\n\n  _sendEvent() {\n    var experiment = this.state.experiments['welcome-message'];\n    var gaEvent = new GAHits.Event(\n      'Demos',\n      'send',\n      'React Native',\n      100,\n      experiment\n    );\n\n    ga.send(gaEvent);\n  }\n\n  _productImpression() {\n    var gaProductImpression = new GAHits.Impression(\n      \"P12345\",\n      \"Product Name\",\n      \"Product List\",\n      \"Product Brand\",\n      \"Product Category\",\n      \"Product Variant\",\n      0, // Position\n      200 // Price\n    );\n\n    ga.add(gaProductImpression);\n  }\n\n  _promoImpression() {\n    var gaPromo = new GAHits.Promo(\n      \"PROMO12345\",\n      \"Promo Name\",\n      \"Promo Creative\",\n      \"Promo Position\"\n    );\n\n    ga.add(gaPromo);\n  }\n\n  _clickProduct() {\n    var gaProduct = new GAHits.Product(\n      \"P12345\",\n      \"Product Name\",\n      \"Product Brand\",\n      \"Product Category\",\n      \"Product Variant\",\n      \"Product Coupon\",\n      250, // Price\n      1, // Quantity\n      25 // Position\n    );\n\n    ga.add(gaProduct);\n\n    var gaClickAction = new GAActions.Click(\"Product List\");\n\n    ga.set(gaClickAction);\n  }\n\n  _clickPromo() {\n    var gaPromo = new GAHits.Promo(\n      \"PROMO12345\",\n      \"Promo Name\",\n      \"Promo Creative\",\n      \"Promo Position\"\n    );\n\n    ga.add(gaPromo);\n\n    var gaPromoClickAction = new GAActions.PromoClick();\n\n    ga.set(gaPromoClickAction);\n  }\n\n  _productDetail() {\n    var gaProduct = new GAHits.Product(\n      \"P12345\",\n      \"Product Name\",\n      \"Product Brand\",\n      \"Product Category\",\n      \"Product Variant\",\n      \"Product Coupon\",\n      250, // Price\n      1, // Quantity\n      25 // Position\n    );\n\n    ga.add(gaProduct);\n\n    var gaDetailAction = new GAActions.Detail();\n\n    ga.set(gaDetailAction);\n  }\n\n  _addProductCart() {\n    var gaProduct = new GAHits.Product(\n      \"P12345\",\n      \"Product Name\",\n      \"Product Brand\",\n      \"Product Category\",\n      \"Product Variant\",\n      \"Product Coupon\",\n      250, // Price\n      1, // Quantity\n      25 // Position\n    );\n\n    ga.add(gaProduct);\n\n    var gaAddAction = new GAActions.Add();\n\n    ga.set(gaAddAction);\n  }\n\n  _removeProductCart() {\n    var gaProduct = new GAHits.Product(\n      \"P12345\",\n      \"Product Name\",\n      \"Product Brand\",\n      \"Product Category\",\n      \"Product Variant\",\n      \"Product Coupon\",\n      250, // Price\n      1, // Quantity\n      25 // Position\n    );\n\n    ga.add(gaProduct);\n\n    var gaRemoveAction = new GAActions.Remove();\n\n    ga.set(gaRemoveAction);\n  }\n\n  _checkout() {\n    var gaProduct = new GAHits.Product(\n      \"P12345\",\n      \"Product Name\",\n      \"Product Brand\",\n      \"Product Category\",\n      \"Product Variant\",\n      \"Product Coupon\",\n      250, // Price\n      1, // Quantity\n      25 // Position\n    );\n\n    ga.add(gaProduct);\n\n    var gaCheckoutAction = new GAActions.Checkout(1, \"Visa\");\n\n    ga.set(gaCheckoutAction);\n  }\n\n  _checkoutOption() {\n    var gaCheckoutOptionAction = new GAActions.CheckoutOption(2, \"FedEx\");\n\n    ga.set(gaCheckoutOptionAction);\n  }\n\n  _purchase() {\n    var gaProduct = new GAHits.Product(\n      \"P12345\",\n      \"Product Name\",\n      \"Product Brand\",\n      \"Product Category\",\n      \"Product Variant\",\n      \"Product Coupon\",\n      250, // Price\n      1, // Quantity\n      25 // Position\n    );\n\n    ga.add(gaProduct);\n\n    var gaPurchaseAction = new GAActions.Purchase(\"T12345\", \"Product Store\", 35, 3, 5, \"LABORDAY2017\");\n\n    ga.set(gaPurchaseAction);\n  }\n\n  _refundAll() {\n    var gaRefundAction = new GAActions.Refund(\"T12345\");\n\n    ga.set(gaRefundAction);\n  }\n\n  _refundProduct () {\n    var gaProduct = new GAHits.Product(\n      \"P12345\",\n      \"Product Name\",\n      \"Product Brand\",\n      \"Product Category\",\n      \"Product Variant\",\n      \"Product Coupon\",\n      250, // Price\n      1, // Quantity\n      25 // Position\n    );\n\n    ga.add(gaProduct);\n\n    var gaRefundAction = new GAActions.Refund(\"T12345\");\n\n    ga.set(gaRefundAction);\n  }\n});\n\nvar styles = StyleSheet.create({\n  container: {\n    flex: 1,\n    justifyContent: 'center',\n    alignItems: 'center',\n    backgroundColor: '#F5FCFF',\n  },\n  welcome: {\n    fontSize: 20,\n    textAlign: 'center',\n    margin: 10,\n  },\n  instructions: {\n    textAlign: 'center',\n    color: '#333333',\n    marginBottom: 5,\n  },\n  feature: {\n    color: 'black',\n    fontSize: 16,\n    textAlign: 'center'\n  }\n});\n\nAppRegistry.registerComponent('rnabtest', () => rnabtest);\n\n```\n\nExample of how to use custom dimensions:\n\n```javascript\n  // Add a custom dimension with a given index & name\n  ga.addDimension(1, 'male'); // This will add &cd1=male to all hits\n  ga.addDimension(2, 'female');\n  // To remove a custom dimension\n  ga.removeDimension(1);\n```\n\n*TODO: App example that doesn't use react-native-ab*\n\n## API\n\n### Enhanced Ecommerce Hits\n\nThe enhanced ecommerce hits are not sent automatically, instead they are retained until a regular hit is sent. For more documentation please go [here](https://developers.google.com/analytics/devguides/collection/protocol/v1/devguide#enhancedecom).\n\n#### new Actions.Add()\n\nNo parameters accepted\n\n#### new Actions.Checkout(step, option)\n\n* **step (optional):** number\n* **option (optional):** string\n\n#### new Actions.CheckoutOption(step, option)\n\n* **step (optional):** number\n* **option (optional):** string\n\n#### new Actions.Click(list)\n\n* **list (optional):** string\n\n#### new Actions.Detail(list)\n\n* **list (optional):** string\n\n#### new Actions.PromoClick()\n\nNo parameters accepted\n\n#### new Actions.Purchase(id, affiliation, revenue, tax, shipping, coupon)\n\n* **id (required):** string\n* **affiliation (optional):** string\n* **revenue (optional):** number\n* **tax (optional):** number\n* **shipping (optional):** number\n* **coupon (optional):** string\n\n#### new Actions.Refund(id, isNonInteractive)\n\n* **id (required):** string\n* **isNonInteractive (optional):** boolean\n\n#### new Actions.Remove()\n\nNo parameters accepted\n\n#### new Hits.Impression(id, name, list, brand, category, variant, position, price)\n\n* **id (required*):** string\n* **name (required*):** string\n* **list (required):** string\n* **brand (optional):** string\n* **category (optional):** string\n* **variant (optional):** string\n* **position (optional):** number\n* **price (optional):** number\n\n**\\*** Either **id** or **name** must be set.\n\n#### new Hits.Product(id, name, brand, category, variant, coupon, price, quantity, position)\n\n* **id (required\\*):** string\n* **name (required\\*):** string\n* **brand (optional):** string\n* **category (optional):** string\n* **variant (optional):** string\n* **coupon (optional):** string\n* **price (optional):** number\n* **quantity (optional):** number\n* **position (optional):** number\n\n**\\*** Either **id** or **name** must be set.\n\n#### new Hits.Promo(id, name, creative, position)\n\n* **id (required\\*):** string\n* **name (required\\*):** string\n* **creative (optional):** string\n* **position (optional):** string\n\n**\\*** Either **id** or **name** must be set.\n\n*Coming soon the rest of the API. For now, refer to the usage section.*\n","readmeFilename":"README.md"}