完成注册后,我的模块需要提交 Complete Registration Facebook Pixel Event。
在 Facebook Pixel Helper 工具上,它说 Pixel Code 加载了两次。有时它不会。
我在 DNN 中的所有皮肤文件上都有像素跟踪代码。
有时会发生回发,当“注册成功”消息与 Facebook 跟踪事件一起加载时,我需要在代码隐藏中再次加载它。
我可以在下面的 IF 语句中添加什么来检查 Facebook Pixel 代码是否尚未加载到前端?
这是我的代码:
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);
}