Skip to content

Commit b07121c

Browse files
committed
Add 'require consent for campaigns tracking' setting
1 parent b72c8a0 commit b07121c

5 files changed

+27
-0
lines changed

Template/Tag/MatomoTag.web.js

+4
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,10 @@
126126
tracker.disableBrowserFeatureDetection();
127127
}
128128

129+
if (matomoConfig.disableCampaignParameters) {
130+
tracker.disableCampaignParameters();
131+
}
132+
129133
if (matomoConfig.disableCookies) {
130134
tracker.disableCookies();
131135
}

Template/Variable/MatomoConfigurationVariable.php

+4
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,10 @@ public function getParameters()
227227
$field->inlineHelp = Piwik::translate('TagManager_MatomoConfigurationMatomoDisableBrowserFeatureDetectionInLineHelp',
228228
['<br><strong>', '<a href="' . Url::addCampaignParametersToMatomoLink('https://matomo.org/faq/how-to/how-do-i-disable-browser-feature-detection-completely/', null, null, 'App.TagManager.getParameters') . '" target="_blank" rel="noreferrer noopener">', '</a>', '</strong>']);
229229
}),
230+
$this->makeSetting('requireConsentForCampaignTracking', false, FieldConfig::TYPE_BOOL, function (FieldConfig $field) {
231+
$field->title = Piwik::translate('TagManager_MatomoConfigurationMatomoRequireConsentForCampaignTrackingTitle');
232+
$field->description = Piwik::translate('TagManager_MatomoConfigurationMatomoRequireConsentForCampaignTrackingDescription');
233+
}),
230234
$this->makeSetting('domains', array(), FieldConfig::TYPE_ARRAY, function (FieldConfig $field) {
231235
$field->title = Piwik::translate('TagManager_MatomoConfigurationMatomoDomainsTitle');
232236
$field->description = Piwik::translate('TagManager_MatomoConfigurationMatomoDomainsDescription');

lang/en.json

+2
Original file line numberDiff line numberDiff line change
@@ -622,6 +622,8 @@
622622
"MatomoConfigurationMatomoRequestMethodInlineHelp": "To use the POST request method, either 1) the Matomo host is the same as the tracked website host (Matomo installed in the same domain as your tracked website), or 2) if Matomo is not installed on the same host as your website, you need to enable CORS (Cross domain requests) as explained in this %1$sFAQ%2$s. Keep in mind that when Matomo uses sendBeacon() for sending tracking requests (which is enabled by default), it will send data via POST. If you want Matomo to never send POST requests, you can use this method to force GET which will automatically disable sendBeacon.%3$s",
623623
"MatomoConfigurationMatomoRequestContentTypeTitle": "Content-Type",
624624
"MatomoConfigurationMatomoRequestContentTypeDescription": "Set request Content-Type header value for POST requests.",
625+
"MatomoConfigurationMatomoRequireConsentForCampaignTrackingTitle": "Require consent to track campaign parameters",
626+
"MatomoConfigurationMatomoRequireConsentForCampaignTrackingDescription": "By enabling the consent requirement, Matomo will track campaign parameters only for users who have provided their consent. This approach ensures that data collection respects users' preferences while enabling the analysis of traffic segmentation by key metrics like source, medium, and campaign specifics.",
625627
"MatomoConfigurationMatomoCustomRequestProcessingTitle": "Custom Request Processing",
626628
"MatomoConfigurationMatomoCustomRequestProcessingDescription": "Can be set to a variable of type \"%s\" to augment or override default request sending behaviour.",
627629
"MatomoTagDescription": "Matomo is the leading open source analytics platform.",

tests/System/expected/test___TagManager.exportContainerVersion_site_default_container.xml

+1
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@
108108
<cookiePath />
109109
<cookieSameSite>Lax</cookieSameSite>
110110
<disableBrowserFeatureDetection>0</disableBrowserFeatureDetection>
111+
<requireConsentForCampaignTracking>0</requireConsentForCampaignTracking>
111112
<domains>
112113
</domains>
113114
<alwaysUseSendBeacon>0</alwaysUseSendBeacon>

tests/System/expected/test_webContext__TagManager.getAvailableVariableTypesInContext.xml

+16
Original file line numberDiff line numberDiff line change
@@ -1228,6 +1228,22 @@
12281228
<condition />
12291229
<fullWidth>0</fullWidth>
12301230
</row>
1231+
<row>
1232+
<name>requireConsentForCampaignTracking</name>
1233+
<title>Require consent to track campaign parameters</title>
1234+
<value>0</value>
1235+
<defaultValue>0</defaultValue>
1236+
<type>boolean</type>
1237+
<uiControl>checkbox</uiControl>
1238+
<uiControlAttributes>
1239+
</uiControlAttributes>
1240+
<availableValues />
1241+
<description>By enabling the consent requirement, Matomo will track campaign parameters only for users who have provided their consent. This approach ensures that data collection respects users' preferences while enabling the analysis of traffic segmentation by key metrics like source, medium, and campaign specifics.</description>
1242+
<inlineHelp />
1243+
<introduction />
1244+
<condition />
1245+
<fullWidth>0</fullWidth>
1246+
</row>
12311247
<row>
12321248
<name>domains</name>
12331249
<title>Domains</title>

0 commit comments

Comments
 (0)