Gør din shop klar til Facebooks dynamiske annoncer

Facebook har en feature, der hedder “dynamic ads”. Ganske kort går det ud på, at en kunde er forbi din webshop. Facebook opsamler information om, hvilke varer kunden ser. Næste gang hun er på Facebook eller Instagram, så er der på magisk vis reklamer for netop de produkter hun så i din shop.

Ren magi, ikke? :-)

Nuvel – vi har allieret os med Halfdan Timm fra Obsidian her for at guide dig igennem, hvordan du får det sat op. Halfdann sidder dagligt med Facebook marketing og har også skrevet en bog om emnet.

Du skal bruge fem ting:

1) En Facebook pixel på din side (læs her hvordan du sætter den ind). Det er gratis og det bør du gøre allerede i dag, så du begynder at indsamle data til Facebook.

2) Et produktfeed med alle dine produkter (det skal ind i Facebook, så de kender alle dine produkter)

3) Et “viewcontent” på dine produktsider. Vi skal fortælle Facebook, når kunden har set et produkt.

4) En event, der bliver skudt af til Facebook, når din kunde smider en vare i kurven.

5) En konverterings-event, så Facebook ved, hvornår en kunde har konveteret.

Det er ca. dét – lad os komme i gang.

Pkt. 1 er der taget hånd om

Du skal bare lige finde din Facebook pixel først. Her kan du læse, hvordan du laver en Facebook pixel.

Pkt 2. – Lav et produktfeed

Du kan egentligt bare bruge dit feed fra Google Shopping.  Men ellers er der en xml skabelon her, som du kan bruge. Den skal gemmes i dit tema som f.eks. fb-produkter.xml

<?xml version="1.0"?><rss xmlns:g="http://base.google.com/ns/1.0" version="2.0">
    <channel>
        <title>Alle varer</title>
        <link><{$landing_page->getRemoteUrl()}></link>
        <description></description>

        <{assign var="products" value=$landing_page->getProducts()}>
        <{section name="i" loop=$products}>
            <{assign var="images" value=$products[i]->getImages()}>
            <{assign var="supplier" value=$products[i]->getBrand()}>
            <item>
                <title><{$products[i]->getName()|escape}></title>
                <link><{$products[i]->getRemoteUrl()}></link>

                <g:id><{$products[i]->getProductId()}></g:id>

                <{if $products[i]->getSalePrice()}>
                    <g:price><{$products[i]->getPrice(null, null, true)|number_format:2:".":","}> DKK</g:price>
                    <g:sale_price><{$products[i]->getSalePrice(null, null, true)|number_format:2:".":","}> DKK</g:sale_price>
                <{else}>                    
                    <g:price><{$products[i]->getPrice(null, null, true)|number_format:2:".":","}> DKK</g:price>
                <{/if}>
                <g:availability>in stock</g:availability>
                <{section name="j" loop=$images max=1 start=0}>
                    <g:image_link><{$webshop->getUrl()}><{$images[j]->getSrc(800,800, 'fit')}></g:image_link>
                <{/section}>

                <g:condition>new</g:condition>

                <{assign var=hovedkat value=$products[i]->getMainCategory()}>
                <{if $hovedkat}>
                    <{if $hovedkat->getMetaValue('g:google_product_category')}>
                        <g:google_product_category><{$hovedkat->getMetaValue('g:google_product_category')}></g:google_product_category>
                    <{/if}>
                <{/if}>

                <{if $products[i]->hasVariants()}>
                    <{assign var="profile" value=$products[i]->getProfile()}>
                    <{assign var="attr" value=$profile->getAttributeList()}>

                    <{section name="h" loop=$attr}>
                        <{if $attr[h]->getDataType() == "valuelist"}>

                            <{assign var="values" value=$attr[h]->getValues()}>
                            <{assign var="tempgtin" value=0}>
                            <{section name="k" loop=$values}>
                                <{if $tempgtin == 0}>
                                    <{if $products[i]->getInStock($attr[h]->getAttributeId(), $values[k]->getAttributeValueId()) > 0}>
                                        <g:gtin><{$products[i]->getGtin($values[k]->getAttributeValueId(),$attr[h]->getAttributeId())}></g:gtin>
                                        <{assign var="tempgtin" value=1}>
                                    <{/if}>
                                <{/if}>
                            <{/section}>

                        <{/if}>
                    <{/section}>

                <{else}>                
                    <g:gtin><{$products[i]->getGtin()}></g:gtin>                
                <{/if}>
                <{if $supplier}>
                    <g:brand><{$supplier->getName()}></g:brand>
                <{/if}>

                <g:product_type></g:product_type>
            </item>
        <{/section}>
    </channel>
</rss>

Nu opretter du en landingsside med alle de produkter du vil have i feedet (skal det bare være dem alle, kan du vælge "pris større end 0" som regel.

Du indsætter fb-produkter.xml i “eget feed”-feltet.

Pkt. 3 – viewcontent

Det er ret simpelt. Vi skal bare skyde lidt kode af, så Facebook kan se, at kunden har set en vare. Så denne kode skal ind på product.html

<script> _fbq.push('track', 'ViewContent', {content_ids: ['<{$product->getProductId()}>'], content_type: 'product'}); </script>

Nemt ikke?

Pkt. 4 – registrere, når der er lagt en vare i kurven

Det er en lille bitte stump kode, der skal på din læg i kurv-knap. Den ser sådan ud

<input type="submit" name="submit" value="Læg i kurv" id="submit" onclick="fbq('track', 'AddToCart');"/>

Det er jo kun “onclick”-delen du skal have tilføjet.

Pkt. 5 – registrere salg

Det er også supernemt. Denne kode skal ind på din thanks.html side (eller ecommerce_tracking.html – det er en smagssag)

<script type="text/javascript">
        fbq('track', 'Purchase', {value: '<{$order->getPrice()|number_format:2:".":""}>', currency: 'DKK'});
    </script>

Så er du så godt som i mål.

Nu kan du gå i Facebook og oprette dine dynamiske annoncer.

 

Tweak din søgefunktion til at vise kategorier

Søgningen i Shoporama søger kun på produkter.

Men ind imellem søger folk på en kategori eller et brand og så kan det være praktisk at de ryger direkte over på en side med alle disse produkter. Her kommer et trick til at løse den opgave (kræver du kan trylle med din SFTP editor).

Lad os antage en bruger søger på Faktorfobi på “Hummel”. Hvis der er Hummel produkter på shoppen, som ikke lige har ordet “Hummel” i hverken navn eller beskrivelse, så vil de ikke blive vist i en søgning. Derfor giver det mere mening at sende de besøgende direkte ind på siden med Hummel badetøj.

Nuvel… hvordan gøres det så? Først ændrer vi lige søgestrengen til lowercase for at gøre det lidt nemmere. Så sender vi dem videre med JavaScript. Koden ser således ud:

<{if $get.search|lower == "hummel"}>
<script type="text/javascript">
    window.location = "https://www.faktorfobi.dk/hummel-badetoej";
</script>
<{/if}>

Det er alt :-)
Nu er det bare at oprette alle de specielle søgninger, du vil have her med en elseif-sætning.