From 5e25fc0ee6b28ffc1ec76d1f35706b6e77003341 Mon Sep 17 00:00:00 2001 From: Tim Mackey Date: Fri, 26 May 2017 13:56:33 -0700 Subject: [PATCH] Add Custom hitCallback Functionality MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add Custom hitCallback Functionality (https://developers.google.com/analytics/devguides/collection/analyticsjs/sending-hits#hitcallback) * Fix typo in TRACKING_ID variable name (was “TACKING_ID”) * German and Spanish translations still needed for new parameters in de.yaml / es.yaml --- blueprints.yaml | 11 +++++++++-- ganalytics.php | 10 ++++++++-- languages/de.yaml | 6 ++++-- languages/en.yaml | 6 ++++-- languages/es.yaml | 6 ++++-- 5 files changed, 29 insertions(+), 10 deletions(-) diff --git a/blueprints.yaml b/blueprints.yaml index 717dc74..9858a97 100644 --- a/blueprints.yaml +++ b/blueprints.yaml @@ -42,8 +42,8 @@ form: trackingId: type: text size: medium - label: PLUGIN_GANALYTICS.TACKING_ID - help: PLUGIN_GANALYTICS.TACKING_ID_HELP + label: PLUGIN_GANALYTICS.TRACKING_ID + help: PLUGIN_GANALYTICS.TRACKING_ID_HELP placeholder: "UA-00000000-0" validate: required: true @@ -73,6 +73,13 @@ form: size: small default: "ga" + hitCallback: + type: textarea + label: PLUGIN_GANALYTICS.HITCALLBACK + help: PLUGIN_GANALYTICS.HITCALLBACK_HELP + size: large + placeholder: "function() { form.submit(); }" + async: type: toggle label: PLUGIN_GANALYTICS.ASYNC diff --git a/ganalytics.php b/ganalytics.php index f529477..e81a7b3 100644 --- a/ganalytics.php +++ b/ganalytics.php @@ -87,9 +87,15 @@ private function getTrackingSettings($trackingId, $objectName) 'trace-debug' => "window.ga_debug = {trace: true};", 'create' => "{$objectName}('create', '{$trackingId}', {$cookie_config});", 'anonymize' => "{$objectName}('set', 'anonymizeIp', true);", - 'force-ssl' => "{$objectName}('set', 'forceSSL', true);", - 'send' => "{$objectName}('send', 'pageview');" + 'force-ssl' => "{$objectName}('set', 'forceSSL', true);" ]; + // If hitCallback has been specified, include it on pageview send + $hitCallback = $this->config->get('plugins.ganalytics.hitCallback'); + if ($hitCallback) { + $settings['send'] = "{$objectName}('send', 'pageview', { hitCallback: $hitCallback });"; + } else { + $settings['send'] = "{$objectName}('send', 'pageview');"; + } if (!$this->config->get('plugins.ganalytics.debugTrace', false)) unset ($settings['trace-debug']); if (!$this->config->get('plugins.ganalytics.anonymizeIp', false)) unset ($settings['anonymize']); diff --git a/languages/de.yaml b/languages/de.yaml index 3eda61d..170b4fb 100644 --- a/languages/de.yaml +++ b/languages/de.yaml @@ -9,8 +9,10 @@ PLUGIN_GANALYTICS: SECTION_ADVANCED: "Erweitert" SECTION_COOKIE: "Cookie" SECTION_DEBUG: "Debugging" - TACKING_ID: "Tracking-ID" - TACKING_ID_HELP: "Google Analytics Tracking-ID" + TRACKING_ID: "Tracking-ID" + TRACKING_ID_HELP: "Google Analytics Tracking-ID" + HITCALLBACK: "(NEEDS TRANSLATION) hitCallback Function" + HITCALLBACK_HELP: "(NEEDS TRANSLATION) Provide your callback function to be triggered when page hit is tracked." POSITION: "Code-Position" POSITION_HELP: "Position des Codes im HTML-Dokument (Head oder Body)" POSITION_HEAD: "Kopf" diff --git a/languages/en.yaml b/languages/en.yaml index ae8ad9f..2c02daa 100644 --- a/languages/en.yaml +++ b/languages/en.yaml @@ -9,8 +9,10 @@ PLUGIN_GANALYTICS: SECTION_ADVANCED: "Advanced" SECTION_COOKIE: "Cookie" SECTION_DEBUG: "Debug" - TACKING_ID: "Tracking ID" - TACKING_ID_HELP: "Google Analytics Tracking ID" + TRACKING_ID: "Tracking ID" + TRACKING_ID_HELP: "Google Analytics Tracking ID" + HITCALLBACK: "hitCallback Function" + HITCALLBACK_HELP: "Provide your callback function to be triggered when page hit is tracked." POSITION: "Code Position" POSITION_HELP: "Code Position in the HTML document (head or body)" POSITION_HEAD: "Head" diff --git a/languages/es.yaml b/languages/es.yaml index e569e1f..c9fba3b 100644 --- a/languages/es.yaml +++ b/languages/es.yaml @@ -9,8 +9,10 @@ PLUGIN_GANALYTICS: SECTION_ADVANCED: "Avanzada" SECTION_COOKIE: "Cookie" SECTION_DEBUG: "Depuración" - TACKING_ID: "ID Seguimiento" - TACKING_ID_HELP: "ID Seguimiento estadísticas Google" + TRACKING_ID: "ID Seguimiento" + TRACKING_ID_HELP: "ID Seguimiento estadísticas Google" + HITCALLBACK: "(NEEDS TRANSLATION) hitCallback Function" + HITCALLBACK_HELP: "(NEEDS TRANSLATION) Provide your callback function to be triggered when page hit is tracked." POSITION: "Posición del Código" POSITION_HELP: "Posición del código en el documento HTML (cabecera o cuerpo)" POSITION_HEAD: "Cabecera"