营销人员和DMS的Sitecore Web表单-不记录活动、目标和退出信息
WFFM中有一个选项,当有人放弃表单时,表单中输入的任何数据都会被记录下来,并且可以通过辍学报告访问 我有一个WFFM,我已经打开了分析和辍学功能。不幸的是,我没有看到任何数据被记录在数据库中,而且辍学报告是可见的,但是是空的 我从WFFM文件夹中包含的javascript代码中看到,一系列AJAX调用应该用来保存blur事件上的字段——调用/sitecore modules/web/web Forms for Marketers/Tracking.aspx 我试着调试Javascript代码,但从未调用过将信息发布到/sitecore modules/web/webforms for Marketers/Tracking.aspx的方法。你能想出这个代码不起作用的原因吗?还有,有人知道应该记录哪些表中的信息吗?它是WFFM数据库中的字段表吗 最后,尽管我已经打开了这个特定WFFM表单的分析功能,并且我已经将一个活动和一个目标与表单的提交相关联,但是这些都没有被记录下来。我看到表单中输入的数据已成功存储并显示在数据报告中,但数据库中未记录有关活动或目标的任何信息 我甚至直接在DMS数据库中手动检查运行:营销人员和DMS的Sitecore Web表单-不记录活动、目标和退出信息,sitecore,web-forms-for-marketers,sitecore-dms,Sitecore,Web Forms For Marketers,Sitecore Dms,WFFM中有一个选项,当有人放弃表单时,表单中输入的任何数据都会被记录下来,并且可以通过辍学报告访问 我有一个WFFM,我已经打开了分析和辍学功能。不幸的是,我没有看到任何数据被记录在数据库中,而且辍学报告是可见的,但是是空的 我从WFFM文件夹中包含的javascript代码中看到,一系列AJAX调用应该用来保存blur事件上的字段——调用/sitecore modules/web/web Forms for Marketers/Tracking.aspx 我试着调试Javascript代码,
select top 10
p.DateTime, p.UrlText, cp.CampaignName
,i.Url, vi.VisitId
from pages p
inner join ItemUrls i on p.ItemId = i.ItemId
inner join Visits vi on vi.VisitId = p.VisitId
inner join GeoIps g on vi.Ip = g.Ip
left join Campaigns cp on cp.CampaignId = vi.CampaignId
order by p.DateTime desc
这一个显示了呈现表单的页面正在被点击,但是没有活动与访问相关联
然后我尝试了以下方法:
select pe.datetime, ped.Name, pg.UrlText from PageEvents pe
inner join PageEventDefinitions ped on ped.PageEventDefinitionId = pe.PageEventDefinitionId
inner join Pages pg on pg.PageId = pe.PageId
order by pe.DateTime desc
但我看不到这个特定活动或目标的任何条目(而我看到与非WFFM Sitecore项目相关的其他活动和目标的条目)
任何建议都将不胜感激
谢谢
弗朗西斯科
编辑
sc.webform.js文件包含以下方法:
_create: function () {
var self = this,
options = this.options;
if (options.tracking) {
this.element.find("input[type!='submit'], select, textarea")
.bind('focus', function (e) { self.onFocusField(e, this) })
.bind('blur change', function (e) { self.onBlurField(e, this) });
this.element.find("select")
.change(function () { $scw.webform.controls.updateAnalyticsListValue(this) });
this.element.find("input[type='checkbox'], input[type='radio']")
.click(function () { $scw.webform.controls.updateAnalyticsListValue(this) });
}
this.element.find(".scfDatePickerTextBox").each(function () { $scw.webform.controls.datePicker(this) });
},
这应该由sc.webform小部件初始化上的表单调用。它应该绑定所有输入字段、下拉列表和文本区域的焦点和模糊更改事件。不幸的是,当我试图在这个方法中放置一个断点时,它从未被调用
第二次编辑
有趣。我发现整个过程应该从包含WFFM表单的页面中嵌入的这行Javascript代码开始:
<script type="text/javascript">
$scwhead.ready(function() {
$scw('#form_A8BF483419174F97A2830E12CBCF7E4F').webform({formId: "{A8BF4834-1917-4F97-A283-0E12CBCF7E4F}",pageId: "{21C24144-B964-4FBA-8388-D9B90EBBC17C}",eventCountId: "pagecolumns_0_columncontent_0_bottomrow_0_form_A8BF483419174F97A2830E12CBCF7E4F_form_A8BF483419174F97A2830E12CBCF7E4F_eventcount",tracking: true})
});
</script>
现在没有意义的是,即使我最终可以看到每当我在WFFM表单中从一个字段切换到另一个字段时调用trackEvents(为什么在我不确定之前没有工作),我也看不到WFFM DB中记录的任何数据。我甚至在数据库中尝试了一个快速查询:
select f.Timestamp, f.StorageName, fi.Value, fi.FieldName
from Form f
inner join Field fi on f.Id = fi.FormId
order by f.Timestamp desc, FieldName
有人知道Tracking.aspx应该保存捕获的字段信息的位置吗?问这个问题可能很愚蠢,但是您是否为WFFM正确配置了数据源?我的意思是,很明显,您正在使用WFFM..但它是设置为使用SQL还是使用WFFM默认使用的“文件”作为数据库 使用SQL的方法如下:
<!-- MSSQL-->
<formsDataProvider type="Sitecore.Forms.Data.DataProviders.WFMDataProvider,Sitecore.Forms.Core">
<param desc="connection string">Database=Sitecore_WebForms;Data Source=xxx;user id=xxx;password=xxx;Connect Timeout=30</param>
</formsDataProvider>
<!-- SQLite -->
<!--<formsDataProvider type="Sitecore.Forms.Data.DataProviders.SQLite.SQLiteWFMDataProvider,Sitecore.Forms.Core">
<param desc="connection string">Data Source=/data/sitecore_webforms.db;version=3;BinaryGUID=true</param>
</formsDataProvider>-->
数据库=Sitecore\u WebForms;数据源=xxx;用户id=xxx;密码=xxx;连接超时=30
如果您没有正确配置,我想知道数据是否以某种方式记录在一个地方而不是另一个地方?另外,我要问的另一个问题是,如果这是一个开发环境,您是否在实时模式下运行webforms?在我看来,这只是一个配置问题 我们在6.5更新版6和WFFM 2.3.3修订版上遇到了完全相同的问题。111209我们可以看到对服务器的异步调用,包括包含正确事件的可能格式良好的json对象 例如:
track:[{"fieldId":"{E0A0BCDD-85E1-4D8D-9E76-5ABD240423C9}","type":"Field Completed","value":"test","formId":"{0F3B57C1-1B6A-43B9-A5A6-2E958C168B31}","pageId":"{025AFF68-62B9-42CE-B49F-0C36311E1976}","ticks":16}]
我们没有看到任何辍学者进入数据库,但是…您是否确保您的活动和目标已部署?如果您已切换数据库,则可能未切换。要重新部署,请执行以下操作:
不要忘记对活动执行同样的操作。您是否正确安装了WFFM模块?你能通过分析报告确认DMS本身工作正常吗?马克,DMS 2.0工作正常。如果我将活动和目标添加到WFFM表单以外的任何其他页面,它们都会被很好地记录下来。我们刚刚从Sitecore 6.2升级到6.5,并安装了DMS 2.0(我们以前有OMS,但没有使用,所以我们基本上从头安装了DMS 2.0)。我们还将WFFM升级至最新版本。WFFM的工作原理是,当表单提交时,它会在DB中记录内容,并在提交时执行各种操作(即保存到CRM等)。不起作用的东西只与DMS有关,至少到目前为止看起来是这样的……正如我上面所说,“我看到了与非WFFM Sitecore项目相关的其他活动和目标的条目”,因此是的,在form.config文件的该部分中正确定义了DB。不过,你可能有什么想法。我们最近将DMS数据库移动到另一台服务器。我所更改的只是Sitecore connectionsStrings.config文件中的连接字符串。。。是否还有其他地方需要我更改连接字符串?并且,回答您的另一个问题,不,我不是在实时模式下运行。我正在一个QA环境中测试这一点,该环境有一个CM和一个CD服务器可用。特别是我在CD网站上测试。
track:[{"fieldId":"{E0A0BCDD-85E1-4D8D-9E76-5ABD240423C9}","type":"Field Completed","value":"test","formId":"{0F3B57C1-1B6A-43B9-A5A6-2E958C168B31}","pageId":"{025AFF68-62B9-42CE-B49F-0C36311E1976}","ticks":16}]