feat: add ga4 property support

Since google analytics is using now GA4 the support for the new script was needed
This commit is contained in:
David Kagerer 2021-03-30 21:02:53 +02:00
parent 1700605b7b
commit acbce19a50
4 changed files with 24 additions and 6 deletions

View File

@ -26,9 +26,12 @@ function google_analytics_script()
$google_analytics_code = $CI->settings_model->get_setting('google_analytics_code');
if ($google_analytics_code !== '')
{
echo '
if ($google_analytics_code !== '') {
// If the google analytics code starts with UA then it is a Universal Analytics Property and the script stays
// the legacy one
if (substr($google_analytics_code, 0, 2) === "UA") {
echo '
<script>
(function(i,s,o,g,r,a,m){i["GoogleAnalyticsObject"]=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
@ -38,5 +41,20 @@ function google_analytics_script()
ga("send", "pageview");
</script>
';
}
// If the google analytics code starts with a G then it is a Google Analytics 4-Property and the script
// to inject it looks different.
if (substr($google_analytics_code, 0, 2) === "G-") {
echo '
<script async src="https://www.googletagmanager.com/gtag/js?id=' . $google_analytics_code . '"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag("js", new Date());
gtag("config", "' . $google_analytics_code . '");
</script>
';
}
}
}

View File

@ -282,7 +282,7 @@ $lang['time_format'] = 'Time Format';
$lang['time_format_hint'] = 'Change the time display format (H - Hours, M - Minutes).';
$lang['first_weekday'] = 'First day of week';
$lang['first_weekday_hint'] = 'Set the first day of the calendar week.';
$lang['google_analytics_code_hint'] = 'Add your Google Analytics ID to be included in the booking page.';
$lang['google_analytics_code_hint'] = 'Add your Google Analytics ID to be included in the booking page. You can use the tracking id or measurement id.';
$lang['availabilities_type'] = 'Availabilities Type';
$lang['flexible'] = 'Flexible';
$lang['fixed'] = 'Fixed';

View File

@ -279,7 +279,7 @@ $lang['time_format'] = 'Zeitformat';
$lang['time_format_hint'] = 'Ändern Sie das Zeitanzeigeformat (H - Stunden, M - Minuten).';
$lang['first_weekday'] = 'First day of week';
$lang['first_weekday_hint'] = 'Set the first day of the calendar week.';
$lang['google_analytics_code_hint'] = 'Fügen Sie Ihre Google Analytics-ID hinzu, das auf der Buchungsseite enthalten wird.';
$lang['google_analytics_code_hint'] = 'Fügen Sie Ihre Google Analytics-ID hinzu, das auf der Buchungsseite enthalten wird. Es kann die Tracking ID oder Mess ID verwendet werden.';
$lang['availabilities_type'] = 'Verfügungstyp';
$lang['flexible'] = 'Flexibel';
$lang['fixed'] = 'Fest';

View File

@ -149,7 +149,7 @@
<div class="form-group">
<label for="google-analytics-code">
Google Analytics ID</label>
<input id="google-analytics-code" placeholder="UA-XXXXXXXX-XX"
<input id="google-analytics-code" placeholder="UA-XXXXXXXX-XX or G-XXXXXXXXXX"
data-field="google_analytics_code" class="form-control">
<span class="help-block">
<?= lang('google_analytics_code_hint') ?>