Расширенное соответствие с новым пикселом Facebook в веб-приложении Javascript


2 принят

Вы можете позвонить fbq('init', '<pixel_id>', '<PII>')во второй раз с PII, как только эта информация будет доступна вам, и все последующие огни Pixel поднимут ее. Вы упомянули об ошибке из-за кратковременной ошибки.


1

Загрузка URL-адреса пикселя напрямую сработала для меня. В приведенном ниже примере form_dataпредставлены данные, которые доступны только после того, как пользователь выполнит свой заказ.

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

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

Также см .: Как инициализировать Facebook Pixel с данными, которые будут заполнены после инициализации?

Я пробовал подход K.Lei по вызову fbq ('init', '', '') снова после того, как пользователь отправил свой заказ (через форму, в моем случае). Однако, когда я заметил, что после обновления страницы и повторной отправки формы (и, следовательно, вызова init снова) с другим именем / Birthdate / Gender / и т. Д., Старые параметры PII (начиная с обновления страницы) все равно отправляются. Это было при использовании пикселя FB через сегмент.

JavaScript, facebook, веб-приложения, одностраничное-приложение, facebook-объявления-апите,

javascript,facebook,web-applications,single-page-application,facebook-ads-api,

7

Ответов: 2


2 принят

Вы можете позвонить fbq('init', '<pixel_id>', '<PII>')во второй раз с PII, как только эта информация будет доступна вам, и все последующие огни Pixel поднимут ее. Вы упомянули об ошибке из-за кратковременной ошибки.


1

Загрузка URL-адреса пикселя напрямую сработала для меня. В приведенном ниже примере form_dataпредставлены данные, которые доступны только после того, как пользователь выполнит свой заказ.

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

    // http://moredez.ru/q//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)
                  });
                });
              });
            });
          });
        });
      });
    });

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

Также см .: Как инициализировать Facebook Pixel с данными, которые будут заполнены после инициализации?

Я пробовал подход K.Lei по вызову fbq ('init', '', '') снова после того, как пользователь отправил свой заказ (через форму, в моем случае). Однако, когда я заметил, что после обновления страницы и повторной отправки формы (и, следовательно, вызова init снова) с другим именем / Birthdate / Gender / и т. Д., Старые параметры PII (начиная с обновления страницы) все равно отправляются. Это было при использовании пикселя FB через сегмент.

JavaScript, facebook, веб-приложения, одностраничное-приложение, facebook-объявления-апите,
Похожие вопросы