2
votes

I am using Google Tag Manager with Google Analytics (Universal Analytics).

Here is my setup, and here is our Donation Page.

The dataLayer is created before the Google Tags as:

var dataLayer = [{
'pageCategory' : 'Donation Page',
'txnPhase' : 'Transaction Pageview',
'txnT1' : new Date()
}];

On our eCommerce page I have added this code with executes only when a transaction is committed (and it works).

//TEMP BATCH
var gaqTemp = [].concat.apply([], gaq); //Puts 3 arrays of eCome data together so I can access it easier

//DIMENSIONS
var giftID = gaqTemp[1];
var txnID = gaqTemp[11];
var txnPhase = 'Transaction Closed';

//METRICS
var giftAmount = gaqTemp[3];
var giftCount = gaqTemp[15];
var txnT2 = new Date();

//PUSH TO dataLayer
dataLayer.push({'giftID' : giftID, 'txnID' : txnID, 'txnPhase' : txnPhase, 'giftAmount' : giftAmount, 'giftCount' : giftCount, 'txnT2' : txnT2});

The result looks like this when a donation is pushed and successful: GTM Preview Mode Data Layer Messages

Here is what my Google Tag Manager (GTM) Setup looks like to track the data:

GTM Setup

And this is the Trigger: ClicksDonate_Class,

enter image description here

And lastly, here is are my setups for Custom Metrics and Dimensions in Google Analytics (GA): Custom Metrics Setup

Custom Dimensions Setup

Any of my reports with these Custom Metrics show no results (tested over several days).

I am looking for any suggestions.

Thank you, RCS

PS. Here is my previous post where I 'thought' I solved my issue... http://bit.ly/1OOhOH6

Here is another post with a similar issue.

1
pageCategory is both in the Event Label and CDim, so does it show up correctly as the Label? If not, I would check the variables are properly setup as DL variables. If so, I would add more of these variables to the label and see if one is wrong/breaks it. - lossleader
first you want to look at user behavior-> events and make sure you have these events at all, then check their label. If it wasn't "Donation Page" then the problem is clearly the DL to variable mapping. - lossleader
Please also post a screenshot of your trigger ("ClicksDonat...") - nyuen
Your trigger is set up to fire on links only, however your dataLayer shows a HTMLDivElement as clicked element. Can you try to change your trigger to a generic click instead of a link click ? Plus, install GA Debugger (Chrome extension) to see what data is actually being sent (also, use realtime view to quickly make sure event data actually arrives) - Eike Pierstorff
@rorschaff, if you have solved this it would be nice if you would post the solution as an answer and accept (you will not get reputation for answering your own question, but the question will disappear from the "unanswered questions" tab) and then we could clear up the comments - would look much more tidy that way :-) - Eike Pierstorff

1 Answers

2
votes

Pressing the 'Donate Button' executes the following, in order: *(0) 1. Data from form pushed into eCommerce array: '_gaq'; 2. Data in eCommerce array sent to neverland (doesn't matter where); 3. 'gaqTemp' array created to concat the three '_gaq' arrays; 4. dataLayer.push() populates dataLayer with objects out of select variables from 'gaqTemp'; 5. Done.

*Somewhere between step (0) and step (1), whent he button is pressed, the GTM trigger fires (on click of button with class etc...) and the tag fires.

Everything I want to happen is happening, just not in the right order. The dataLayer is being populated at the time of 'clicks donate button', as such:

dataLayer.push({'giftAmount' : ''}); //everything is null at this point

rather than,

dataLayer.push({'giftAmount' : Some Amount});

because the variables are empty when the tag fires.

My dataLayer shows all the expected objects and values in the log, because they are pushed.

This makes my real issue, finding a way to populate the dataLayer before firing the tag to collect the dataLayer data.