# react-native-google-tag-manager
React Native package for using native Google tag manager libraries on iOS and Android.

## Installation

1. Install `react-native-google-tag-manager`

    ```
    yarn add react-native-google-tag-manager
    ```

2. Extra step for iOS native project: 

   - Open iOS project by Xcode, click `project name` node , then find `Build Phases` tab at right side windows , expand `Link Binary With Libraries` section , add below libraries:
    
     ```
     CoreData.framework
     SystemConfiguration.framework
     libz.tbd
     libsqlite3.0.tbd
     AdSupport.framework
     ```

## How to use

###openContainerWithId(containerId)
Import the libraries and call `openContainerWithId` to create singleton instance.
    ```
    import GoogleTagManager from 'react-native-google-tag-manager';
    
    (function initializeGA() {
	    GoogleTagManager.openContainerWithId("GTM-XXXX")
	        .then(function(){
	            //open container success
	        })
    }());
    
 
###push({json})
Import the libaries and call `openContainerWithId` to create singleton instance.  ***Note: {json} now(>0.1.5) support array type included on Andriod , but not full test.***

1. If first key **is** `event` , the `push` will fire a event with others keyPairs to `datalayer`. 

    ```
    GoogleTagManager.push({
      event: "openScreen",
      screenName: "HomeScreen",
      appName: "HelloApp"
    });
    ```
    
2. If first key **not** `event` , the `push` will send keyPairs value to `datalayer`. 

    ```
    GoogleTagManager.push({
      sku: "some sku",
      productName: "some product name",
      price: 123,
      ...
    });
    ```

3. let value is `null` to clean the datalayer data. 

    ```
    GoogleTagManager.push({
      sku: null,
      productName: null,
      price: null,
      ...
    });
    ```

 
## Reference
1. [Google Tag Manager - iOS](https://developers.google.com/tag-manager/ios/v3/)
2. [Google Tag Manager - Android](https://developers.google.com/tag-manager/android/v4/#getting-started)
3. [Universal Analytics Tags - iOS](https://developers.google.com/tag-manager/ios/v3/ua)
4. [Universal Analytics Tags - Android](https://developers.google.com/tag-manager/android/v4/ua)

