Facebook Werbeanzeigen-"Pixel" schrottet Frontend?!

@pierre-schmitz schrieb:

Hallo,

wir haben eine Facebook-Werbeanzeige geschaltet, und hierzu wollen wir das sog. „Zählpixel“ von Facebook integrieren. So sieht der allgemeine Teil aus:

!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
n.push=n;n.loaded=!0;n.version=‚2.0‘;n.queue=;t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
document,‚script‘,‚https://connect.facebook.net/en_US/fbevents.js‘);
fbq(‚init‘, ‚XXXXXXXXXXXXXXXXXXXX‘); // Insert your pixel ID here.
fbq(‚track‘, ‚PageView‘);
fbq(‚track‘, ‚Purchase‘);

https://www.facebook.com/tr?id=XXXXXXXXXXXXXXXXXXXX&ev=PageView&noscript=1";
/>

Dieses Script soll im Head der Seite platziert werden. Wunderbar, hierfür steht ja in der fontend/index/header.tpl der Block frontend_index_header_javascript_tracking direkt vor dem schießenden Head-Tag zu Verfügung. Also rein damit, Theme neu kompiliert und zack:

Jetzt bin ich ziemlich ratlos. Wie kann denn ein (meinetwegen auch fehlerhaftes) Stück Javascript dafür sorgen, dass die serverseitige Verarbeitung komplett aussteigt?

Hallo,

das liegt daran, das nunmal das Zeichen { und } für Smarty reserviert ist und du das nicht einfach so nutzen kannst, siehe: {literal} | Smarty .

Setze also am besten um den JavaScipt einfach folgendes drum herum:

{literal}
     
    
    !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
    n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
    n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
    t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
    document,&#39;script&#39;,&#39;<a href="https://connect.facebook.net/en_US/fbevents.js'"; rel="nofollow" target="_blank">https://connect.facebook.net/en_US/fbevents.js&#39;</a>;);
    fbq(&#39;init&#39;, &#39;XXXXXXXXXXXXXXXXXXXX&#39;); // Insert your pixel ID here.
    fbq(&#39;track&#39;, &#39;PageView&#39;);
    fbq(&#39;track&#39;, &#39;Purchase&#39;);
    
    https://www.facebook.com/tr?id=XXXXXXXXXXXXXXXXXXXX&ev=PageView&noscript=1";
    />
    
    
{/literal}

Man sollte so und so wenn möglich versuchen, JavaScript nicht inline einzubinden, um der Performance des Shops nicht zu schaden.

Beste Grüße

Sebastian