6

Tôi có một ứng dụng javascript trang đơn, trong đó tôi đang cố triển khai Advanced Matching bằng Pixel Facebook mới để phân bổ tốt hơn cho Quảng cáo của chúng tôi.Đối sánh nâng cao với Pixel Facebook mới trong Javascript Web App

Hiện tại chúng tôi đang init pixel FB khi ứng dụng được tải lần đầu tiên, sau đó kích hoạt các sự kiện theo dõi chuẩn dựa trên hành vi của người dùng trong ứng dụng, ví dụ: Mua khi người dùng hoàn tất đơn đặt hàng của họ.

Một cái nhìn đơn giản về những gì đang xảy ra dưới ...

// 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', 
});  

Việc kết hợp tiên tiến khuyên rằng các lĩnh vực cần được thiết lập khi các điểm ảnh được khởi tạo. Tuy nhiên, vì chúng tôi chỉ khởi tạo pixel một lần khi tải ứng dụng (khi chúng tôi không biết bất kỳ chi tiết người dùng nào), tôi không chắc chắn cách triển khai kết hợp nâng cao. Việc khởi tạo lại cùng một pixel sẽ ném một lỗi và có vẻ như không phải là cách để truyền các trường khớp nâng cao trong sự kiện theo dõi hoặc một cách để khởi tạo lại pixel.

Có ai đã thành công khi sử dụng tính năng kết hợp nâng cao trong một ứng dụng trang js không?

Trả lời

1

Bạn có thể gọi fbq('init', '<pixel_id>', '<PII>') lần thứ hai với PII sau khi thông tin đó có sẵn cho bạn và tất cả các vụ cháy Pixel tiếp theo sẽ phát hiện. Lỗi bạn đã đề cập có thể là do lỗi tạm thời.

+0

Có, có vẻ như bây giờ Facebook cho phép bạn 'bắt đầu' nhiều lần trên cùng một trang. Không còn là vấn đề nữa. –

0

Tải URL pixel trực tiếp đã hoạt động tốt nhất cho tôi. Trong ví dụ bên dưới, form_data là dữ liệu chỉ khả dụng sau khi người dùng hoàn tất đơn đặt hàng của họ.

// 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) 
        }); 
       }); 
       }); 
      }); 
      }); 
     }); 
     }); 
    }); 

(Các SHA256 là từ: https://www.google.com/search?q=sha256+mozilla&oq=sha256+mozilla&aqs=chrome..69i57j69i60.3197j0j7&sourceid=chrome&ie=UTF-8)

Xem thêm: How to initialize Facebook Pixel with data that will be populated after the initialization?

Tôi đã thử phương pháp gọi fbq K.Lei của ('init', '', '') một lần nữa sau khi người dùng gửi đơn đặt hàng của họ (thông qua biểu mẫu, trong trường hợp của tôi). Tuy nhiên, khi tôi nhận thấy rằng sau khi tôi làm mới trang và gửi lại biểu mẫu (và do đó gọi lại init) với Tên/Ngày sinh/Giới tính/v.v. khác, thông số PII cũ (từ trước khi làm mới trang) vẫn được gửi. Điều này là trong khi sử dụng FB pixel thông qua Segment mặc dù.

Các vấn đề liên quan