6

Tek bir sayfa javascript uygulamasına sahibim, burada Reklamlarımızda daha iyi bir ilişkilendirme sağlamak için Advanced Matching Yeni Facebook Piksel'i kullanmaya çalışıyorum. Şu anda init uygulama ilk yüklendiğinde FB piksel ardından uygulamanın, örneğin kullanıcı davranışına göre standart iz olaylarını hareketeYeni Facebook Pixel ile Gelişmiş Eşleştirme Javascript Web Uygulaması Pixel

Kullanıcı siparişlerini tamamladığında satın alın. neler olduğu basitleştirilmiş bir görünümü altındadır

...

// App loads 
// URL: xxxx.com/[client]/ 
!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'); 

// Pixel Initialised 
// we don't know any user details at this stage 

fbq('init', '[PIXELID]'); 
fbq('track', 'PageView'); 


// User selects the event they want to purchase tickets from 
// URL: xxxx.com/[client]/event/[productid]/ 

fbq('track', 'PageView'); 
fbq('track', 'ViewContent', { 
    content_name: 'Store', 
    content_ids: '[productid]', 
    content_type: 'product_group' 
}); 

// User goes through rest of purchase process 
// More Standard Events sent, e.g. Add To Cart 

// User completes purchase 
// URL: xxxx.com/[client]/order/completed/ 
// At this point we now know email address, name & phone, but pixel is already initialised. How do we do Advanced Matching? 

fbq('track', 'PageView'); 
fbq('track', 'Purchase', { 
    content_type: 'Store', 
    value: 75.00, 
    currency: 'USD', 
    num_items: 4, 
    order_id: '20160710090000', 
});  

gelişmiş eşleme piksel başlatıldığında alanlar belirlenmelidir önerir. Ancak pixel'i uygulama yüküne yalnızca bir kez başlattığımızdan (herhangi bir kullanıcı bilgisini bilmediğimizde) gelişmiş eşlemenin nasıl uygulanacağından emin değilim. Aynı pikseli tekrar başlatmak bir hatayı atıyor ve bir parça olayındaki gelişmiş eşleme alanlarını veya bir pikseli yeniden başlatma yolunu geçmek için bir yol yok gibi görünüyor.

Herkes, tek bir sayfa js uygulamasında gelişmiş eşleştirmeyi kullanarak başarılı oldu mu?

cevap

1

Bu bilgi size ulaştığında PII ile bir kez daha fbq('init', '<pixel_id>', '<PII>') numaralı telefonu arayabilir ve tüm Pixel yangınları alır. Bahsettiğiniz hata, geçici bir hata nedeniyle olmuş olabilir.

+0

Evet, Facebook artık aynı sayfada birden çok kez 'init' uygulamanıza izin veriyor. Artık sorun yok. –

0

Piksel URL'nin doğrudan yüklenmesi benim için en iyi sonucu verdi. Aşağıdaki örnekte, form_data, yalnızca kullanıcı siparişlerini tamamladıktan sonra kullanılabilen verilerdir. Tekrar (' '' 'init',') How to initialize Facebook Pixel with data that will be populated after the initialization?

Ben FBQ çağırma K.Lei yaklaşımını denedim: bkz Ayrıca

:

// reinitialize with parameters 
    var split_name = form_data.name.split(" "); 
    var split_dob = form_data.date_of_birth.split("T")[0].split("-") 

    // https://stackoverflow.com/questions/39610897/how-to-initialize-facebook-pixel-with-data-that-will-be-populated-after-the-init 
    sha256(form_data.email).then(function(em) { 
     sha256(split_name[0].toLowerCase()).then(function(fn) { 
     sha256(split_name[split_name.length-1].toLowerCase()).then(function(ln) { 
      sha256(((form_data.phone).replace(")", "").replace("(","").split(" ").join("-")).split("-").join("")).then(function(pn) { 
      sha256(split_dob[0]+split_dob[1]+split_dob[2]).then(function(db) { 
       sha256(form_data.city.toLowerCase().split(" ").join("")).then(function(ct) { 
       sha256(form_data.region.toLowerCase()).then(function(st) { 
        sha256(form_data.postal_code).then(function(zp) { 
        var pixel = document.createElement('img'); 
        pixel.src = "https://www.facebook.com/tr/?id="+my_fb_pixel_id+"&ev=Purchase&ud[em]="+em+"&ud[fn]="+fn+ 
         "&ud[ln]="+ln+"&ud[pn]="+pn+"&ud[db]="+db+"&ud[ct]="+ct+"&ud[st]="+st+"&ud[zp]="+zp+"&cd[value]="+ 
         form_data.amount+"&cd[currency]=USD&cd[investment_object]="+JSON.stringify(res_ok); 
        document.body.appendChild(pixel) 
        }); 
       }); 
       }); 
      }); 
      }); 
     }); 
     }); 
    }); 

(https://www.google.com/search?q=sha256+mozilla&oq=sha256+mozilla&aqs=chrome..69i57j69i60.3197j0j7&sourceid=chrome&ie=UTF-8 SHA256 dan) Kullanıcı siparişlerini verdikten sonra (bir form aracılığıyla, benim durumumda). Ancak, sayfayı yeniledikten ve formu tekrar gönderdikten sonra (ve bu nedenle tekrar init) farklı bir Ad/Doğum/Cinsiyet/vb. Ile eski PII parametrelerinin (sayfa yenileme işleminden önce) hala gönderildiğini fark ettiğimde fark ettim. Bu, yine de Segment üzerinden FB pikselini kullanıyordu.