Предотвратить повторную загрузку кода пикселя Facebook из-за кода Facebook, если он уже загружен в интерфейс? - PullRequest
0 голосов
/ 14 декабря 2018

Мой модуль должен отправить Полную регистрацию Facebook Pixel Event после завершения регистрации.

В инструменте Facebook Pixel Helper указано, что Pixel Code загружен дважды.Иногда это не так.

У меня есть код отслеживания Pixel для всех файлов скинов в DNN.

Иногда происходит постбэк, и мне нужно снова загрузить его в Code-Позади, когда сообщение «Регистрация успешна» загружается вместе с событием отслеживания Facebook.

Что я могу добавить к приведенному ниже утверждению IF, чтобы проверить, не загружен ли код пикселя Facebook на интерфейс?

Это мой код:

 RegUserFacebookPixelID = TryGetPortalSetting("FacebookPixelID");

if (RegUserFacebookPixelID != null)
{
    string FacebookPixelResult = string.Empty;

    using (var FBPxl = new StringWriter())
    using (var FBCodescript = new HtmlTextWriter(FBPxl))
    {
        FBCodescript.AddAttribute(Attr.Type, "text/javascript");
        FBCodescript.RenderBeginTag(Tag.Script);
        //load ecommerce plugin
        FBCodescript.WriteLine("!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)};");
        FBCodescript.WriteLine("if (!f._fbq) f._fbq = n; n.push = n; n.loaded = !0; n.version = '2.0';");
        FBCodescript.WriteLine("n.queue =[]; t = b.createElement(e); t.async = !0;");
        FBCodescript.WriteLine("t.src = v; s = b.getElementsByTagName(e)[0];");
        FBCodescript.WriteLine("s.parentNode.insertBefore(t, s)}");
        FBCodescript.WriteLine("(window, document,'script','https://connect.facebook.net/en_US/fbevents.js');");
        FBCodescript.RenderEndTag();
        FBCodescript.WriteLine($"<noscript><img height='1' width='1' style='display:none'  src='https://www.facebook.com/tr?id={RegUserFacebookPixelID}&ev=PageView&noscript=1'/></noscript>");
        FacebookPixelResult = FBCodescript.InnerWriter.ToString();
    }

    Page.ClientScript.RegisterStartupScript(this.GetType(), "myFacebookPixelInitialization", FacebookPixelResult, false);
}
...