General Testing - woocommerce/woocommerce-google-analytics-integration GitHub Wiki

For compatibility and general smoke testing

Prereqs: Configured WooCommerce with products, and a valid payment processor (dev Stripe, or cash on delivery option in WC Settings > Payments) so that you can complete checkout.

Be sure to check the browser console as well as the WP debug log for errors. Make sure there is no ad blockers in your browser.

  1. Installation
  • Activating the plugin doesn't cause errors.
  • Deactivating the plugin doesn't cause errors.
  1. Settings

    • Settings link from the WCGA row on the Plugin page or WooCommerce → Settings → Integration → Google Analytics
    • Confirm it loads OK.
    • Checking "Use Global Site Tag" hides "Set Domain Name" and "Enable Universal Analytics"
    • One or both of "Use Global Site Tag" or "Enable Universal Analytics" shows "Enhanced eCommerce"
    • "Enable Enhanced eCommerce" toggles the EEC options.
  2. Global Site tag

    • Add a tracking code (valid Global Site Tag format, like G-28QSQJCS9D), Select "Use Global Site Tag" and all Tracking Options EXCEPT "Accept Incoming Linker Parameters".
    • Enable "Enable Enhanced eCommerce" and all sub-options.
    • Visit non-store page (NOT AS ADMIN).
      • Confirm general gtag scripts: <script async src="https://www.googletagmanager.com/gtag/js?id=G-28QSQJCS9D"> and gtag('set', 'developer_id.dOGY3NW', true); and
        gtag('config', 'G-28QSQJCS9D', {
        			'allow_google_signals': true,
        			'link_attribution': true,
        			'anonymize_ip': true,
        			'custom_map': {
        				'dimension1': 'logged_in'
        			},
        			'linker':{
        				'domains': [],
        				'allow_incoming': false,
        			},
        			'logged_in': 'no'
        		} );
        
    • Visit shop page (with open Network panel and enable "Preserve log")
      • Confirm above general gtag scripts
      • Confirm multiple gtag( 'event', 'view_item_list', and multiple gtag( 'event', 'select_content', for each product
      • Confirm multiple gtag( 'event', 'add_to_cart',
      • In network panel:
        • Confirm request to www.googletagmanager.com/gtag/js?id=G-28QSQJCS9D…
        • Confirm one POST request to google-analytics.com/g/collect, with en=page_view and multiple en=view_item_list in the request payload (Payload tab of network request):
        • After clicking on an "Add to cart" button on the shop, confirm the request to google-analytics.com/g/collect with en=add_to_cart
        • - NOTE: Not currently working, see #208 - After clicking on an individual product (not a variable product), confirm the request to google-analytics.com/g/collect with en=select_content
    • Click through to individual product page (not a variable product)
      • Confirm general gtags
      • Confirm $( '.single_add_to_cart_button' ).on('click', function() { and gtag('event', 'add_to_cart', {"items": [item_data]})
      • Confirm gtag( 'event', 'view_item_list', and gtag( 'event', 'select_content', for all related products
      • In network panel:
        • Confirm request to www.googletagmanager.com/gtag/js?id=G-28QSQJCS9D…
        • Confirm either:
          • Multiple requests to google-analytics.com/g/collect with en=view_item_list
          • And one request to google-analytics.com/g/collect with en=view_item -OR-
          • One POST request to google-analytics.com/g/collect with a payload of one en=view_item and multiple en=view_item_list
        • After clicking on an "Add to cart" button on the product, confirm the request to google-analytics.com/g/collect with en=add_to_cart (either in the URL or in the "payload")
    • Go to the cart
      • Confirm general gtags
      • Confirm gtag( 'event', 'remove_from_cart', {
      • In network panel:
        • After removing an item from the cart, confirm the request to google-analytics.com/g/collect with en=remove_from_cart NOTE Not working as of 2022-04-27 Confirmed working as of 2022-08-29.
    • Proceed to checkout
    • Place the order
      • Confirm general gtags
      • Confirm gtag( 'event', 'purchase', { with corresponding details
      • In network panel:
        • Confirm the request to google-analytics.com/g/collect with en=purchase
  3. Universal Analytics

    • Return to the WCGA settings page and disable "Use Global Site Tag"
    • Make sure "Enable Universal Analytics" is selected.
    • Disabled "Enable Enhanced eCommerce".
    • Leave the same GA ID (eg, G-28QSQJCS9D)
    • Visit shop page:
      • Confirm the code ga( 'create', 'G-28QSQJCS9D', 'auto' ) is inserted into the page, as well as ga('send', 'event', 'Products', 'Add to Cart' and ga( 'send', 'pageview' );
    • Add an item to the cart
      • Confirm the request to http://www.google-analytics.com/collect containing ea=Add%20to%20Cart
    • Click on a product
      • Confirm the code ga( 'create', 'G-28QSQJCS9D', 'auto' ) is inserted into the page
      • Confirm ga('send', 'event', 'Products',… for .single_add_to_cart_button and for add_to_cart_button:not(…
      • Confirm ga( 'send', 'pageview' );
    • On cart and checkout
      • Confirm the code ga( 'create', 'G-28QSQJCS9D', 'auto' ) is inserted into the page, as well as ga('send', 'event', 'Products',… and ga( 'send', 'pageview' );
    • After completing checkout,
      • Confirm the code ga('ecommerce:addTransaction',…, ga('ecommerce:addItem',… (for each item in the cart), and ga('ecommerce:send') is inserted into the page
      • Confirm the requests to http://www.google-analytics.com/collect, one with t=transaction, on or more with t=item (according to number of items in the cart), and one with t=pageview
  4. Analytics Classic

    • Return to the WCGA settings page and disable "Use Global Site Tag"
    • Make sure "Enable Universal Analytics" is not selected.
    • Disable "display advertising support"
    • Leave the same GA ID (eg, G-28QSQJCS9D)
    • [ ] Go to the shop [ ] See http://www.google-analytics.com/ga.js` is loaded and this snippet is loaded
var _gaq = _gaq || [];
		_gaq.push(
			['_setAccount', 'G-28QSQJCS9D'], ['_gat._anonymizeIp'],
			['_setCustomVar', 1, 'logged-in', 'no', 1],
			['_trackPageview']);


			$( '.add_to_cart_button:not(.product_type_variable, .product_type_grouped)' ).on( 'click', function() {
				_gaq.push(['_trackEvent', 'Products', 'Add to Cart', ($(this).data('product_sku')) ? ($(this).data('product_sku')) : ('#' + $(this).data('product_id'))]);
			});

[ ] Finish the order and see how _gaq.push(['_addTrans related code and the _gaq.push(['_addItem', for your purchased products are in the page and the network requests for the transaction are performed.

Note

Another smoke testing section using the WooCommerce Block checkout wouldn't be a bad addition here.

  • Remove cart item
  • View item and select item events from product blocks