Google Tag Manager & Google Analytics
Has anyone successfully implemented Google Tag Manager on their donation pages? I'm not seeing any support on how to implement so I'd love to get help on this. I'd also love if someone is able to help me understand how to interpret the data within Analytics. Currently all of our donations are being attributed to direct traffic and I know that is incorrect.
Thank you in advance for any help you can provide,
Iris
Comments
-
Hi Iris -
Attribution to direct traffic is likely not an issue with eCommercre tracking, but something screwy in your cross-domain tracking configurations.
Can you share a URL to your site? Thanks!
As for implementing eCommerce tracking via GTM, I have some code on GitHub that can help if you don't use the native GA installation on Luminate Online.
Happy coding,
Sara0 -
HI Sara,
My site's URL is iocc.org and I don't believe we've done any crossdomain tracking so maybe implementing that should be my first step? Thank you in advance for any help you can provide.
Thanks,
iris
Sara Hoffman:Hi Iris -
Attribution to direct traffic is likely not an issue with eCommercre tracking, but something screwy in your cross-domain tracking configurations.
Can you share a URL to your site? Thanks!
As for implementing eCommerce tracking via GTM, I have some code on GitHub that can help if you don't use the native GA installation on Luminate Online.
Happy coding,
Sara0 -
Yes, cross-domain is a great first step since your site will by default operate on multiple domains - your CMS, Luminate Online, etc.
Since your Google Analytics is already on Universal Analytics it's pretty straight forward to set this up.- In Admin, under Property > .js tracking > Open "Referral Exclusion List"
- In this list define all the URLs that are "yours" - where you "own" the domain. Add more if you have a blog or something else.
- iocc.org
- secure3.convio.net
- In Tag Manager, edit your Universal Analytics tag:
- Fields to Set: allowLinker = true; cookieDomain = iocc.org,secure3.convio.net
- Auto Link Domains = iocc.org, secure3.convio.net
- More in Tag Manager - Decorator tags - in quick scans of your site, I can't see any event tracking or link submission tracking, but there are ways to apply the domain name to specific interactions.
2 -
Hi Sara,
You're so helpful - thank you!!!!
Are you able to let me know the best way to implement our tag manager code on our Luminate pages?
Thank you again!
Iris
Sara Hoffman:
Yes, cross-domain is a great first step since your site will by default operate on multiple domains - your CMS, Luminate Online, etc.
Since your Google Analytics is already on Universal Analytics it's pretty straight forward to set this up.- In Admin, under Property > .js tracking > Open "Referral Exclusion List"
- In this list define all the URLs that are "yours" - where you "own" the domain. Add more if you have a blog or something else.
- iocc.org
- secure3.convio.net
- In Tag Manager, edit your Universal Analytics tag:
- Fields to Set: allowLinker = true; cookieDomain = iocc.org,secure3.convio.net
- Auto Link Domains = iocc.org, secure3.convio.net
- More in Tag Manager - Decorator tags - in quick scans of your site, I can't see any event tracking or link submission tracking, but there are ways to apply the domain name to specific interactions.
0 -
Ok, you'll need to utilize the dataLayer (Simo Ahava on what the dataLayer is) and I also encourage the use of pagebuilder reusables in your pagewrapper.
And before anything else, set up a test Google Analytics account - ensure that it is collecting data period and then we'll test putting eCommerce data into that profile first. No sense in mucking around with your main website profile.
1. Create a reuable pagebuilder page called something like "pagewrapper_tagmanager" and include it at the top of the HTML body for your pagewrappers.
2. Start the pagebuilder off like so:
3. Create a reusable pagebuilder page (S51) you named in the aforementioned script and fill it with the contents from GitHub.
<!-- Start: define dataLayer for Google Tag Manager -->
<script>
dataLayer = [{
[[S51:pagewrapper_tagmanager_ecommerce]]
}];
</script>
<!-- End: define dataLayer for GTM -->
<!-- Start: Google Tag Manager -->
<noscript><iframe......</iframe></noscript>
<script> your container code here </script>
<!-- End Google Tag Manager -->
What the code from GitHub is doing:- Conditionalizing the inclusion of eCommerce code with a session variable (U0:analyticsTransComplete) that is set to true when the URL contains "donation=completed."
- Mapping S120 to different parts of the transaction and product for Google Analytics eCommerce tracking.
1 -
Sara - I'm jumping on this thread becuse you seem very knowledgeable and helpful. I am also trying to implement GTM, but when I switch from Universal GA to GTM, I lose all url functionality to set goals in GA - specifically the adaptation of UA script using the BBNCAnalyticsURL variable. --> ga('send', 'pageview', BBNCAnalyticsURL);
I've tried this dataLayer addition to the GTM script, but no success. Any guidance?<script>
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
'virtualPageURL': BBNCAnalyticsURL
});
</script>
0 -
Sara provided some great examples but one key pieces of information is, If you're trying to implement cross domain tracking in LO then don't use the URL shortener. Query string parameters are stripped during the redirects and GA requires the _ga=clientid parameter to be available. The only way to guarantee the query string is preserved and the GA auto linker does its thing is to link to the LO forms and pages directly.0
-
Jason Rikard:
Sara provided some great examples but one key pieces of information is, If you're trying to implement cross domain tracking in LO then don't use the URL shortener. Query string parameters are stripped during the redirects and GA requires the _ga=clientid parameter to be available. The only way to guarantee the query string is preserved and the GA auto linker does its thing is to link to the LO forms and pages directly.Jason -- to clarify, if we want cross-domain tracking with Google Analytics to work with, we should not link to donate forms etc using the 'non-secure'/pretty hostname? In our case, we link to our donate pages at support.thirteen.org which redirects to secure2.convio.net. But if we start linking directly to the secure2.convio.net urls, cross domain Google Analytics tracking will FINALLY start working?
If that's the case, this is the final missing piece that we've needed (and have been asking to be informed of) for YEARS.0 -
Yes, if you are using analytics.js on LO (not ga.js), have the autolinker configured, and link to the secure2.convio.net url, the cross domain session can be shared using the _ga= query string. Try using the Google Tag Assistent Chrome extension for debugging.0
-
Sara Hoffman:
Ok, you'll need to utilize the dataLayer (Simo Ahava on what the dataLayer is) and I also encourage the use of pagebuilder reusables in your pagewrapper.
And before anything else, set up a test Google Analytics account - ensure that it is collecting data period and then we'll test putting eCommerce data into that profile first. No sense in mucking around with your main website profile.
1. Create a reuable pagebuilder page called something like "pagewrapper_tagmanager" and include it at the top of the HTML body for your pagewrappers.
2. Start the pagebuilder off like so:
3. Create a reusable pagebuilder page (S51) you named in the aforementioned script and fill it with the contents from GitHub.
<!-- Start: define dataLayer for Google Tag Manager -->
<script>
dataLayer = [{
[[S51:pagewrapper_tagmanager_ecommerce]]
}];
</script>
<!-- End: define dataLayer for GTM -->
<!-- Start: Google Tag Manager -->
<noscript><iframe......</iframe></noscript>
<script> your container code here </script>
<!-- End Google Tag Manager -->
What the code from GitHub is doing:- Conditionalizing the inclusion of eCommerce code with a session variable (U0:analyticsTransComplete) that is set to true when the URL contains "donation=completed."
- Mapping S120 to different parts of the transaction and product for Google Analytics eCommerce tracking.
Hi Sara,
Question for you....would the code you provided in GitHub also work for ecommerce transactions, teamraiser registrations, and survey submissions? We have a consultant on board to help us with migrating to GTM, converting to universal analytics, and helping with cross domain tracking. We think we have the GTM code finally working, what I'm missing is this datalayer piece. My ultimate goal is to be able to track any type of "conversion" on Convio - be it a donation, teamraiser registration, survey submission, or ecommerce transaction. Our consultant is saying they don't know enough about our system in order to provide us this code, and I'm certainly no developer, so I'm looking for any help I can get.
Thank you so much for your post - it's giving me hope that I'm getting somewhere!
Thanks,
Dina0 -
The tracking right out of the gate will handle anything in Donation2 - that'll be regular donation forms, honor/memorial, tribute, teamraiser personal or team gift forms.
Teamraiser registrations require different conditionals for grabbing that information. I don't have any code published that will work out of the box for that. There are too many unknowns from a 'standardized code' perspective to make something that works as universally as Donation2 - lots of custom_fields from TR can provide the flavor of defining the registration that it would be difficult to guesstimate what would work across the board.
Surveys - This can be as simple as a destination goal within GA and set standards for your Survey Thank You pages. For example, you could have all your thank you pages start with "thanks_" or "surverty_" Then your goal in GA would be a destionation goal with regular expressions looking for "(.*)pagename\\=thanks_(.*)" or "(.*)pagename\\=surveyty_(.*)".0 -
Sara Hoffman:
The tracking right out of the gate will handle anything in Donation2 - that'll be regular donation forms, honor/memorial, tribute, teamraiser personal or team gift forms.
Teamraiser registrations require different conditionals for grabbing that information. I don't have any code published that will work out of the box for that. There are too many unknowns from a 'standardized code' perspective to make something that works as universally as Donation2 - lots of custom_fields from TR can provide the flavor of defining the registration that it would be difficult to guesstimate what would work across the board.
Surveys - This can be as simple as a destination goal within GA and set standards for your Survey Thank You pages. For example, you could have all your thank you pages start with "thanks_" or "surverty_" Then your goal in GA would be a destionation goal with regular expressions looking for "(.*)pagename\\=thanks_(.*)" or "(.*)pagename\\=surveyty_(.*)".Thanks so much. I will try to implement this today. Do you know if it would also track ecommerce transactions? The code looks like it would but I'm really flying the in the dark here0 -
Hi Dina,
It seems as if the ecommerce should be picked up by Analytics as I double checked our GA account and was able to see transactions attributed to "/funnel/EcommerceCheckout/2017 Online Gift Catalog/completed " as an exit page. I will say though that we have a custom SSL through Luminate that allows our cross domain tracking implementation to work. We sadly were only successful tracking sources after we paid Luminate to implement the cross domain tracking for us because I couldn't figure out the data layer myself. Good luck!0 -
The LO eCommerce platform is ancient (sorry, BB content managers, but it's true) and still uses Donations Classic. The same is true for Ticketed Events in being clunky and old.
I added tracking for the eCommerce module to GitHub: https://inahat.co/2opn8uE
It doesn't need S-tags and can be contained completely within GTM - yay! BUT its written for enhanced eCommerce.
Ticketed Events can essentially use a copy of the same code to inspect the DOM and pull apart pieces that are needed to define the event's ticket purchase. So if your developers can crawl the DOM, you should be able to gather the information from the thank you pages.
0 -
Sara Hoffman:
The LO eCommerce platform is ancient (sorry, BB content managers, but it's true) and still uses Donations Classic. The same is true for Ticketed Events in being clunky and old.
I added tracking for the eCommerce module to GitHub: https://inahat.co/2opn8uE
It doesn't need S-tags and can be contained completely within GTM - yay! BUT its written for enhanced eCommerce.
Ticketed Events can essentially use a copy of the same code to inspect the DOM and pull apart pieces that are needed to define the event's ticket purchase. So if your developers can crawl the DOM, you should be able to gather the information from the thank you pages.Hey Sarah,
So I tried following your directions for installation for the gtm ecommerce to get donations tracked, then the developer I'm working with said she was gettign a syntax error with script tags inside script tags, so I backtracked a bit and she had me change some code:
"In other words, get rid of the extra <script> tags surrounding your new code, including the data layer pieces:
<script>
dataLayer = [{
and at the bottom:
}];
</script>
and add in my data layer instantiation line near the top of your new script:
var dataLayer = window.dataLayer = window.dataLayer || [];
"
So in order to get rid of the other script tags, I just put your gtm ecom code from github in place of the stag that pulled right it into my gtm head pagebuilder. The dev said that worked, but now the data is making it into the data layer on the review gift page instead of the confirmation page. I must have done something wrong somewhere....I just can't figure out how you would have that datalayer code in there in the header but not have it populate until you get to the confirmation page of the donation form.....any ideas?
Thank you so much for your help with this - I'm a team of 1 and need all the help I can get and I'd be NOWHERE without you so far!!0 -
Dina Zawaski:
Sara Hoffman:
The LO eCommerce platform is ancient (sorry, BB content managers, but it's true) and still uses Donations Classic. The same is true for Ticketed Events in being clunky and old.
I added tracking for the eCommerce module to GitHub: https://inahat.co/2opn8uE
It doesn't need S-tags and can be contained completely within GTM - yay! BUT its written for enhanced eCommerce.
Ticketed Events can essentially use a copy of the same code to inspect the DOM and pull apart pieces that are needed to define the event's ticket purchase. So if your developers can crawl the DOM, you should be able to gather the information from the thank you pages.Hey Sarah,
So I tried following your directions for installation for the gtm ecommerce to get donations tracked, then the developer I'm working with said she was gettign a syntax error with script tags inside script tags, so I backtracked a bit and she had me change some code:
"In other words, get rid of the extra <script> tags surrounding your new code, including the data layer pieces:
<script>
dataLayer = [{
and at the bottom:
}];
</script>
and add in my data layer instantiation line near the top of your new script:
var dataLayer = window.dataLayer = window.dataLayer || [];
"
So in order to get rid of the other script tags, I just put your gtm ecom code from github in place of the stag that pulled right it into my gtm head pagebuilder. The dev said that worked, but now the data is making it into the data layer on the review gift page instead of the confirmation page. I must have done something wrong somewhere....I just can't figure out how you would have that datalayer code in there in the header but not have it populate until you get to the confirmation page of the donation form.....any ideas?
Thank you so much for your help with this - I'm a team of 1 and need all the help I can get and I'd be NOWHERE without you so far!!Hi again, so now my developer is saying we could add in a check via GTM to make sure that the page url contains 'donation=completed' for example before allowing Google Analytics to collect the transaction information. Do you think that will solve it?0 -
William Tam:
Jason Rikard:
Sara provided some great examples but one key pieces of information is, If you're trying to implement cross domain tracking in LO then don't use the URL shortener. Query string parameters are stripped during the redirects and GA requires the _ga=clientid parameter to be available. The only way to guarantee the query string is preserved and the GA auto linker does its thing is to link to the LO forms and pages directly.Jason -- to clarify, if we want cross-domain tracking with Google Analytics to work with, we should not link to donate forms etc using the 'non-secure'/pretty hostname? In our case, we link to our donate pages at support.thirteen.org which redirects to secure2.convio.net. But if we start linking directly to the secure2.convio.net urls, cross domain Google Analytics tracking will FINALLY start working?
If that's the case, this is the final missing piece that we've needed (and have been asking to be informed of) for YEARS.0 -
Dina - with code installed, this isn't quite something that we can problem solve through just a forum discussion.0
-
Iris,
I wanted to add some tidbits of information here.
Sara's code for donation form is a great start but as she mentioned for Teamrasier and E-commerce products it requires additional work.
Due to the complexity, the implementation would require a developer to do some of the work.
The complexity comes from the number of products and platform limitations. For example, for Teamraiser there is technically 2 products: a donation and a registration. These 2 values are not easily provided by the Luminate platform, so JavaScript code is needed to record it. For E-commerce the story gets event more complicated, as a user can have multiple products and a donation, so all that information will have to be parsed from the HTML using JavaScript. Also, if you would like to track checkout flows some additional configurations will be needed.
In summary, it is possible to track all Luminate transactions with GTM or any other analytics suite, however, it does require some work and a lot of testing.
I work for an agency where we have done GTM, GA and DTM (Adobe's equivalent of GTM) implementation of Donation, Teamraiser and E-Commerce transactional flows.
Don't hesitate to reach out if you have questions or need further analytics assistance.
Elizabeth
1
Categories
- All Categories
- Shannon parent
- shannon 2
- shannon 1
- 21 Advocacy DC Users Group
- 14 BBCRM PAG Discussions
- 89 High Education Program Advisory Group (HE PAG)
- 28 Luminate CRM DC Users Group
- 8 DC Luminate CRM Users Group
- Luminate PAG
- 5.9K Blackbaud Altru®
- 58 Blackbaud Award Management™ and Blackbaud Stewardship Management™
- 409 bbcon®
- 2.1K Blackbaud CRM™ and Blackbaud Internet Solutions™
- donorCentrics®
- 1.1K Blackbaud eTapestry®
- 2.8K Blackbaud Financial Edge NXT®
- 1.1K Blackbaud Grantmaking™
- 527 Education Management Solutions for Higher Education
- 1 JustGiving® from Blackbaud®
- 4.6K Education Management Solutions for K-12 Schools
- Blackbaud Luminate Online & Blackbaud TeamRaiser
- 16.4K Blackbaud Raiser's Edge NXT®
- 4.1K SKY Developer
- 547 ResearchPoint™
- 151 Blackbaud Tuition Management™
- 1 YourCause® from Blackbaud®
- 61 everydayhero
- 3 Campaign Ideas
- 58 General Discussion
- 115 Blackbaud ID
- 87 K-12 Blackbaud ID
- 6 Admin Console
- 949 Organizational Best Practices
- 353 The Tap (Just for Fun)
- 235 Blackbaud Community Feedback Forum
- 55 Admissions Event Management EAP
- 18 MobilePay Terminal + BBID Canada EAP
- 36 EAP for New Email Campaigns Experience in Blackbaud Luminate Online®
- 109 EAP for 360 Student Profile in Blackbaud Student Information System
- 41 EAP for Assessment Builder in Blackbaud Learning Management System™
- 9 Technical Preview for SKY API for Blackbaud CRM™ and Blackbaud Altru®
- 55 Community Advisory Group
- 46 Blackbaud Community Ideas
- 26 Blackbaud Community Challenges
- 7 Security Testing Forum
- 1.1K ARCHIVED FORUMS | Inactive and/or Completed EAPs
- 3 Blackbaud Staff Discussions
- 7.7K ARCHIVED FORUM CATEGORY [ID 304]
- 1 Blackbaud Partners Discussions
- 1 Blackbaud Giving Search™
- 35 EAP Student Assignment Details and Assignment Center
- 39 EAP Core - Roles and Tasks
- 59 Blackbaud Community All-Stars Discussions
- 20 Blackbaud Raiser's Edge NXT® Online Giving EAP
- Diocesan Blackbaud Raiser’s Edge NXT® User’s Group
- 2 Blackbaud Consultant’s Community
- 43 End of Term Grade Entry EAP
- 92 EAP for Query in Blackbaud Raiser's Edge NXT®
- 38 Standard Reports for Blackbaud Raiser's Edge NXT® EAP
- 12 Payments Assistant for Blackbaud Financial Edge NXT® EAP
- 6 Ask an All Star (Austen Brown)
- 8 Ask an All-Star Alex Wong (Blackbaud Raiser's Edge NXT®)
- 1 Ask an All-Star Alex Wong (Blackbaud Financial Edge NXT®)
- 6 Ask an All-Star (Christine Robertson)
- 21 Ask an Expert (Anthony Gallo)
- Blackbaud Francophone Group
- 22 Ask an Expert (David Springer)
- 4 Raiser's Edge NXT PowerUp Challenge #1 (Query)
- 6 Ask an All-Star Sunshine Reinken Watson and Carlene Johnson
- 4 Raiser's Edge NXT PowerUp Challenge: Events
- 14 Ask an All-Star (Elizabeth Johnson)
- 7 Ask an Expert (Stephen Churchill)
- 2025 ARCHIVED FORUM POSTS
- 322 ARCHIVED | Financial Edge® Tips and Tricks
- 164 ARCHIVED | Raiser's Edge® Blog
- 300 ARCHIVED | Raiser's Edge® Blog
- 441 ARCHIVED | Blackbaud Altru® Tips and Tricks
- 66 ARCHIVED | Blackbaud NetCommunity™ Blog
- 211 ARCHIVED | Blackbaud Target Analytics® Tips and Tricks
- 47 Blackbaud CRM Higher Ed Product Advisory Group (HE PAG)
- Luminate CRM DC Users Group
- 225 ARCHIVED | Blackbaud eTapestry® Tips and Tricks
- 1 Blackbaud eTapestry® Know How Blog
- 19 Blackbaud CRM Product Advisory Group (BBCRM PAG)
- 1 Blackbaud K-12 Education Solutions™ Blog
- 280 ARCHIVED | Mixed Community Announcements
- 3 ARCHIVED | Blackbaud Corporations™ & Blackbaud Foundations™ Hosting Status
- 1 npEngage
- 24 ARCHIVED | K-12 Announcements
- 15 ARCHIVED | FIMS Host*Net Hosting Status
- 23 ARCHIVED | Blackbaud Outcomes & Online Applications (IGAM) Hosting Status
- 22 ARCHIVED | Blackbaud DonorCentral Hosting Status
- 14 ARCHIVED | Blackbaud Grantmaking™ UK Hosting Status
- 117 ARCHIVED | Blackbaud CRM™ and Blackbaud Internet Solutions™ Announcements
- 50 Blackbaud NetCommunity™ Blog
- 169 ARCHIVED | Blackbaud Grantmaking™ Tips and Tricks
- Advocacy DC Users Group
- 718 Community News
- Blackbaud Altru® Hosting Status
- 104 ARCHIVED | Member Spotlight
- 145 ARCHIVED | Hosting Blog
- 149 JustGiving® from Blackbaud® Blog
- 97 ARCHIVED | bbcon® Blogs
- 19 ARCHIVED | Blackbaud Luminate CRM™ Announcements
- 161 Luminate Advocacy News
- 187 Organizational Best Practices Blog
- 67 everydayhero Blog
- 52 Blackbaud SKY® Reporting Announcements
- 17 ARCHIVED | Blackbaud SKY® Reporting for K-12 Announcements
- 3 Luminate Online Product Advisory Group (LO PAG)
- 81 ARCHIVED | JustGiving® from Blackbaud® Tips and Tricks
- 1 ARCHIVED | K-12 Conference Blog
- Blackbaud Church Management™ Announcements
- ARCHIVED | Blackbaud Award Management™ and Blackbaud Stewardship Management™ Announcements
- 1 Blackbaud Peer-to-Peer Fundraising™, Powered by JustGiving® Blogs
- 39 Tips, Tricks, and Timesavers!
- 56 Blackbaud Church Management™ Resources
- 154 Blackbaud Church Management™ Announcements
- 1 ARCHIVED | Blackbaud Church Management™ Tips and Tricks
- 11 ARCHIVED | Blackbaud Higher Education Solutions™ Announcements
- 7 ARCHIVED | Blackbaud Guided Fundraising™ Blog
- 2 Blackbaud Fundraiser Performance Management™ Blog
- 9 Foundations Events and Content
- 14 ARCHIVED | Blog Posts
- 2 ARCHIVED | Blackbaud FIMS™ Announcement and Tips
- 59 Blackbaud Partner Announcements
- 10 ARCHIVED | Blackbaud Impact Edge™ EAP Blogs
- 1 Community Help Blogs
- Diocesan Blackbaud Raiser’s Edge NXT® Users' Group
- Blackbaud Consultant’s Community
- Blackbaud Francophone Group
- 1 BLOG ARCHIVE CATEGORY
- Blackbaud Community™ Discussions
- 8.3K Blackbaud Luminate Online® & Blackbaud TeamRaiser® Discussions
- 5.7K Jobs Board