В WFFM есть опция, так что, когда кто-то покидает форму, любые данные, которые были введены в самой форме, записываются и должны быть доступны через отчет об исключении.
У меня есть WFFM, для которогоЯ включил Google Analytics и включил функцию исключения.К сожалению, я не вижу никаких данных, записываемых в БД, и отчет об удалении виден, но пустой.
Я вижу из кода javascript, включенного в папку WFFM, что серия вызовов AJAX должна сохранятьполя событий размытия - с вызовами / sitecore modules / web / Web Forms для маркетологов / Tracking.aspx
Я попытался отладить код Javascript, но метод должен был публиковать информацию в / sitecore modules /web / Web Forms для маркетологов / Tracking.aspx никогда не вызывается.Можете ли вы вспомнить причины, по которым этот код не работает?Кроме того, кто-нибудь знает, в какую таблицу эта информация должна записываться?Это таблица полей в БД WFFM?
Наконец, несмотря на то, что я включил аналитику в этой конкретной форме WFFM и связал кампанию и цель с отправкой формы, ни одно из них не являетсязаписывается.Я вижу, что данные, введенные в форму, успешно сохранены и отображаются в отчете о данных, но информация о кампании и цели не записана в БД.
Я даже проверял вручную непосредственно в БД DMSвыполняется:
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.Он должен связывать фокус и события изменения размытия для всех полей ввода, выпадающих и текстовых областей.К сожалению, когда я пытался установить точку останова внутри этого метода, он никогда не вызывался.
ВТОРОЕ РЕДАКТИРОВАНИЕ
Интересно.Я понял, что все должно начаться с этой строки кода Javascript, встроенного в страницу, содержащую форму WFFM:
<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>
Как только я поставил точку останова, я наконец смог отследить в_create метод виджета jQuery.UI, определенный в sc.webform.js.Код, который вызывает _create, фактически находится внутри библиотеки jQuery.UI.Что-то в этом есть, верно?
Наконец, код внутри _create выполняется, события размытия привязываются к методу TrackEvents , также определенному в виджете:
_trackEvents: function(events) {
$scw.ajax({
type: 'POST',
url: "/sitecore modules/web/Web Forms for Marketers/Tracking.aspx" + location.search,
data: {track: JSON.stringify(events)},
dataType: 'json'
});
Что не имеет смысла, так это то, что теперь, хотя я, наконец, могу видеть, что trackEvents вызывается всякий раз, когда я переключаюсь от поля к полю в форме WFFM (почему не работало, пока для меня это не загадка), Я не вижу никаких данных, записанных в БД WFFM.Я даже попытался выполнить быстрый запрос в БД:
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 должен сохранять захваченную информацию поля?