Skip to content

Commit

Permalink
Merge pull request alinemorelli#9 from alinemorelli/environments
Browse files Browse the repository at this point in the history
Add support to gtm environments alinemorelli#6
  • Loading branch information
Aline Morelli authored Mar 21, 2018
2 parents d075e27 + 5616cd0 commit 8053e19
Show file tree
Hide file tree
Showing 8 changed files with 258 additions and 148 deletions.
37 changes: 37 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -162,12 +162,49 @@ const app = document.getElementById('app')
ReactDOM.render(<Router routes={routes} />, app)
```

## Environments

Configure how Tag Manager will works between development and production server environments.

### Example:

```js
import React from 'react'
import ReactDOM from 'react-dom'
import Router from 'react-router'
import routes from './routes'

...
import TagManager from 'react-gtm-module'

const tagManagerArgs = {
gtmId: 'GTM-000000',
auth: '6sBOnZx1hqPcO01xPOytLK',
preview: 'env-2'
}

TagManager.initialize(tagManagerArgs)

```

##### How can I find auth and preview?
Go to Google Tag Manager -> ADMIN -> Environments -> Actions -> Get Snippet.
Look for gtm_auth and gtm_preview

##### Don't know to use GTM environments?
- https://support.google.com/tagmanager/answer/6311518
- https://www.simoahava.com/analytics/better-qa-with-google-tag-manager-environments/



|Value|Type|Required|Notes|
|------|-----|-----|-----|
|gtmId| `String`| Yes | GTM id, must be something like `GTM-000000`.|
|dataLayer| `Object`| No | Object that contains all of the information that you want to pass to Google Tag Manager.|
|dataLayerName| `String`| No | Custom name for dataLayer object.|
|events| `Object`| No | Additional events such as 'gtm.start': new Date().getTime(),event:'gtm.js'.|
|auth| `String` | No | used to set environments. |
|preview| `String` | No | used to set environments, something like `env-00`. |


### Note:
Expand Down
11 changes: 8 additions & 3 deletions dist/Snippets.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,18 @@ var Snippets = {
var id = _ref.id,
events = _ref.events,
dataLayer = _ref.dataLayer,
dataLayerName = _ref.dataLayerName;
dataLayerName = _ref.dataLayerName,
preview = _ref.preview,
auth = _ref.auth;

var gtm_auth = '&gtm_auth=' + auth;
var gtm_preview = '&gtm_preview=' + preview;

if (!id) (0, _warn2.default)('GTM Id is required');

var iframe = '\n <iframe src="//www.googletagmanager.com/ns.html?id=' + id + '"\n height="0" width="0" style="display:none;visibility:hidden" id="tag-manager"></iframe>';
var iframe = '\n <iframe src="//www.googletagmanager.com/ns.html?id=' + id + gtm_auth + gtm_preview + '&gtm_cookies_win=x"\n height="0" width="0" style="display:none;visibility:hidden" id="tag-manager"></iframe>';

var script = '\n (function(w,d,s,l,i){w[l]=w[l]||[];\n w[l].push({\'gtm.start\': new Date().getTime(),event:\'gtm.js\', ' + JSON.stringify(events).slice(1, -1) + '});\n var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!=\'dataLayer\'?\'&l=\'+l:\'\';\n j.async=true;j.src=\'//www.googletagmanager.com/gtm.js?id=\'+i+dl;\n f.parentNode.insertBefore(j,f);\n })(window,document,\'script\',\'' + dataLayerName + '\',\'' + id + '\');';
var script = '\n (function(w,d,s,l,i){w[l]=w[l]||[];\n w[l].push({\'gtm.start\': new Date().getTime(),event:\'gtm.js\', ' + JSON.stringify(events).slice(1, -1) + '});\n var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!=\'dataLayer\'?\'&l=\'+l:\'\';\n j.async=true;j.src=\'//www.googletagmanager.com/gtm.js?id=\'+i+dl+\'' + gtm_auth + gtm_preview + '&gtm_cookies_win=x\';\n f.parentNode.insertBefore(j,f);\n })(window,document,\'script\',\'' + dataLayerName + '\',\'' + id + '\');';

var dataLayerVar = this.dataLayer(dataLayer, dataLayerName);

Expand Down
12 changes: 9 additions & 3 deletions dist/TagManager.js
Original file line number Diff line number Diff line change
Expand Up @@ -41,13 +41,19 @@ var TagManager = {
events = _ref$events === undefined ? {} : _ref$events,
dataLayer = _ref.dataLayer,
_ref$dataLayerName = _ref.dataLayerName,
dataLayerName = _ref$dataLayerName === undefined ? 'dataLayer' : _ref$dataLayerName;
dataLayerName = _ref$dataLayerName === undefined ? 'dataLayer' : _ref$dataLayerName,
_ref$auth = _ref.auth,
auth = _ref$auth === undefined ? '' : _ref$auth,
_ref$preview = _ref.preview,
preview = _ref$preview === undefined ? '' : _ref$preview;

var gtm = this.gtm({
id: gtmId,
events: events,
dataLayer: dataLayer || null,
dataLayerName: dataLayerName
dataLayer: dataLayer || undefined,
dataLayerName: dataLayerName,
auth: auth,
preview: preview
});
if (dataLayer) document.head.appendChild(gtm.dataScript);
document.head.appendChild(gtm.script());
Expand Down
Loading

0 comments on commit 8053e19

Please sign in to comment.