Skip to content

Commit 81acf5f

Browse files
committed
Preparations for the server tracking
1 parent 63fe5bb commit 81acf5f

File tree

5 files changed

+46
-10
lines changed

5 files changed

+46
-10
lines changed

Block/GtmCode.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ public function getWebsiteId(): int
121121
protected function _toHtml(): string
122122
{
123123

124-
if ($this->config->isEnabled() && $this->getPublicId()) {
124+
if ($this->config->isEnabled() /* && $this->getPublicId() */ ) {
125125
return parent::_toHtml();
126126
}
127127

etc/adminhtml/system.xml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,35 @@ height="0" width="0" style="display:none;visibility:hid
178178
]]>
179179
</comment>
180180
</field>
181+
182+
<group id="preview" translate="label" type="text" sortOrder="70" showInDefault="1" showInWebsite="1" showInStore="1" >
183+
<label>Debug View / Preview</label>
184+
<field id="enabled" translate="label comment" type="select" sortOrder="10" showInDefault="1" showInWebsite="1" showInStore="1" canRestore="1">
185+
<label>Enable</label>
186+
<source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
187+
</field>
188+
<field id="secret" translate="label comment" type="text" sortOrder="20" showInDefault="1" showInWebsite="1" showInStore="1" >
189+
<label>X-Gtm-Server-Preview HTTP Header (optional)</label>
190+
<depends>
191+
<field id="enabled">1</field>
192+
</depends>
193+
<comment><![CDATA[
194+
You can get the X-Gtm-Server-Preview value in the <a href="https://tagmanager.google.com/" title="Google Tag Manager" target="_blank">Google Tag Manager</a> container >
195+
Preview > &#10247; > Send requests manually.<br/>
196+
This value is used for debugging and the ability to view events in the preview mode of Google Tag Manager.<br/>
197+
<strong>Important!</strong> This value is changed by Google from time-to-time, before preview, please double check if the value is correct.
198+
]]>
199+
</comment>
200+
</field>
201+
<field id="allow_ips" translate="label comment" type="text" sortOrder="30" showInDefault="1" showInWebsite="1" showInStore="1">
202+
<label>Allowed IPs (comma separated)</label>
203+
<comment>Leave empty for access from any location.</comment>
204+
<backend_model>Magento\Developer\Model\Config\Backend\AllowedIps</backend_model>
205+
<depends>
206+
<field id="enabled">1</field>
207+
</depends>
208+
</field>
209+
</group>
181210
</group>
182211
<group id="analytics" translate="label" type="text" sortOrder="30" showInDefault="1" showInWebsite="1" showInStore="1">
183212
<label>Google Analytics 4</label>

etc/config.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,11 @@
2828
<account_id/>
2929
<container_id/>
3030
<tag_server_url/>
31+
<preview>
32+
<enabled>0</enabled>
33+
<secret/>
34+
<allow_ips/>
35+
</preview>
3136
</server_container>
3237
<analytics>
3338
<enable>1</enable>

view/frontend/templates/js_code.phtml

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -167,14 +167,16 @@ if (!isset($escaper)) {
167167
if (window.mfGTMTriedToLoad) return;
168168
window.mfGTMTriedToLoad = true;
169169

170-
<?php if ('use_public_id' === $block->getConfig()->getInstallGtm()) { ?>
171-
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
172-
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
173-
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
174-
'https:<?= '/' . '/' ?>www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
175-
})(window,document,'script','dataLayer','<?= $escaper->escapeHtml($block->getPublicId()) ?>');
176-
<?php } elseif ('use_head_and_body_script' === $block->getConfig()->getInstallGtm()) { ?>
177-
<?= $block->getGtmScript(); ?>
170+
<?php if ($block->getPublicId()) { ?>
171+
<?php if ('use_public_id' === $block->getConfig()->getInstallGtm()) { ?>
172+
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
173+
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
174+
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
175+
'https:<?= '/' . '/' ?>www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
176+
})(window,document,'script','dataLayer','<?= $escaper->escapeHtml($block->getPublicId()) ?>');
177+
<?php } elseif ('use_head_and_body_script' === $block->getConfig()->getInstallGtm()) { ?>
178+
<?= $block->getGtmScript(); ?>
179+
<?php } ?>
178180
<?php } ?>
179181
}
180182
</script>

view/frontend/templates/no_js_code.phtml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ if (!isset($escaper)) {
1212
$escaper = $block;
1313
}
1414
?>
15-
<?php if (!$block->isProtectCustomerDataEnabled() || $block->isLoadBeforeConsent()) { ?>
15+
<?php if ($block->getPublicId() && (!$block->isProtectCustomerDataEnabled() || $block->isLoadBeforeConsent())) { ?>
1616
<!-- Google Tag Manager (noscript) -->
1717
<?php if ('use_public_id' === $block->getConfig()->getInstallGtm()) { ?>
1818
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=<?= $escaper->escapeHtml($block->getPublicId()) ?>"

0 commit comments

Comments
 (0)