Skip to content

Instantly share code, notes, and snippets.

@sdieunidou
Last active November 2, 2015 15:54
Show Gist options
  • Save sdieunidou/5b5e9b3f343a7f362e6a to your computer and use it in GitHub Desktop.
Save sdieunidou/5b5e9b3f343a7f362e6a to your computer and use it in GitHub Desktop.
Track 404 with GTM / GA

Track your 404 errors with Google Tag Manager and Symfony2.

Installation

TwigBundle/views/Exception/error404.html.twig

{% block javascripts %}
    {{ parent() }}

    {# var used for Google Tag Manager for detect 404 errors #}
    <script type="text/javascript">
      var hasPageNotFoundError = true;
    </script>
{% endblock %}

app/config/parameters.yml.dist

    # Google
    google_gtm_id: "GTM-XXXXXX"

app/config/config.yml

twig:
    globals:
        google_gtm_id: %google_gtm_id%

app/Resources/views/base.html.twig

After , add :

    {% if app.environment == 'prod' %}
        <!-- Google Tag Manager -->
        <noscript><iframe src="//www.googletagmanager.com/ns.html?id={{ google_gtm_id }}" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
        <script>
            (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
                    new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
                    j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
                    '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
            })(window,document,'script','dataLayer','{{ google_gtm_id }}');
        </script>
        <!-- End Google Tag Manager -->
    {% endif %}

Configuration

For set configuration, go to https://tagmanager.google.com

Custom Javascript Variable

Create variable to detect 404 :

  • Name: hasPageNotFoundError
  • Type: custom javascript
  • Code:
function() {
  return typeof hasPageNotFoundError === 'undefined' ? 0 : hasPageNotFoundError;
}

Triggers

  • Name: 404
  • Trigger Type: Page view
  • Fire On: hasPageNotFoundError greater than or equal to 1

Tag 'Universal Analytics'

Create a Tag Universal Analytics :

  • Tag Type: Universal Analytics
  • ID de suivi: UA-XXXXXXXXX-X
  • Type de suivi: Page vue
  • Fire On: All Pages

Tag 'Page Not Found'

Create a Tag Page Not Found :

  • Tag Type: Universal Analytics
  • ID de suivi: UA-XXXXXXXXX-X
  • Type de suivi: Event
    • Category: page_not_found
    • Action: {{Page URL}}
    • Libellé: {{Referrer}}
  • Fire On: 404
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment