Wie kann ich Facebook-Pixel in Vorlagen bedienen?

Inhaltsverzeichnis

Einleitung

In diesem Artikel erfährst du, wie du deine Vorlage ändern kannst, um Facebook Pixel zu unterstützen.

Tipp
Für diesen Artikel müss man Änderungen an den Dateien vornehmen js eingeben.

Topaz

Am Anfang der Datei base_layout.html gibt es einen Artikel head. Füge in diesem Element ganz am Ende den folgenden Code ein:

{{ globalSettings.FbPixel.Script }}
{% if cart.CartEmpty == true and cart.OrderStep != ‘ThankYou’ and page.PageId == config.DefinedPages.Order.Id -%} {% assign fbInCartNeeded = true -%}
{% endif -%}
{% if fbInCartNeeded or page.PageId != config.DefinedPages.Order.Id -%}

{% endif -%}

Dann am Ende der Datei staticElements/cart/cart.html suchst du nach einer Phrase {% endcase %} und füge den folgenden Code darunter ein:

Jetzt in der Datei js/layout.js findest du eine Funktion post, und darin eine Zeile mit einer Phrase } else if (result.action.Action === ‘Customer/Register’) {. Suche in diesem Zustand die Zeile mit der Phrase $.get(”, {__collection: ‘customer.UserId32’}, function (result) {. Dies ist einen Request, bei der der folgende Code eingefügt werden sollte:

var userId = result.collection;
if(typeof fbq !== ‘undefined’) {
fbq(‘track’, ‘CompleteRegistration’, {status: true, content_name: userId});
}

Wenn dieser Request in dieser Bedingung nicht vorhanden ist, füge den folgenden Code am Ende der Bedingung hinzu:

$.get(”, {__collection: ‘customer.UserId32’}, function (result) {
var userId = result.collection;
if(typeof fbq !== ‘undefined’) {
fbq(‘track’, ‘CompleteRegistration’, {status: true, content_name: userId});
}
});

Weiter in derselben Datei (js/layout.js) suchst du nach der Zeile mit der Phrase document.body.appendChild(formElement); und füge den folgenden Code darüber ein:

var k,fbDLC=JSON.parse(result.collection[‘page.FbDL’]);
for(k in fbDLC){
if(fbDLC[k][1] != ‘InitiateCheckout’ || (fbDLC[k][1] == ‘InitiateCheckout’ && window.InitiateCheckout != true)){ fbq.push(fbDLC[k]);
if(fbDLC[k][1] == ‘InitiateCheckout’){
window.InitiateCheckout = true;
}}}

Dann in der gleichen Datei (js/layout.js) suchst du eine Funktion addToCart, und darin eine Zeile mit einer Phrase if (result.action.Result) {. Füge ganz am Anfang dieser Bedingung den folgenden Code ein:

if(typeof fbq !== ‘undefined’) {
fbq(‘track’, ‘AddToCart’,
{ content_ids: $(‘[name=productId]’).eq(0).val(),
content_name: $(‘.js-product-details__name’).text(),
value: Number($(‘[name=price]’).val().replace(‘,’,’.’)),
currency: __curr,
quantity: $(‘.quantity__field-js’).val(),
content_type: ‘product’ } ); }

Die ganze Zeit in derselben Datei findest du (js/layout.js) und dann die Funktion addSetToCart, und darin eine Zeile mit einer Phrase if (result.action.Result) {. Füge am Anfang dieser Bedingung den folgenden Code hinzu:

var setProducts = form.find(‘.js-product-set__item’);
var setProductsForFBPixel = [];
setProducts.each(function () {
var setProductFBP = {
id: $(this).data(‘id’).toString(),
content_name: $(this).data(‘name’),
value: Number($(this).data(‘price’).replace(‘,’,’.’)),
currency: __curr,
quantity: $(this).data(‘quantity’) }
setProductsForFBPixel.push(setProductFBP);
});
if(typeof fbq !== ‘undefined’) {
fbq(‘track’, ‘AddToCart’,
{
contents: setProductsForFBPixel,
content_type: ‘product’ } ); }

 

Czy ten artykuł był pomocny?