Виртуальный просмотр страниц GA при перезагрузке веб-формы: есть ли более простой способ?
Я не могу поверить, что это было так трудно.
У меня установлена Веб-форма и Google Analytics . Я хочу отслеживать отправку моей веб-формы, но, поскольку она настроена на перезагрузку текущей страницы при отправке, я должен использовать либо виртуальные просмотры страниц, либо события. Я пошел с первым.
Сначала я думал, что это будет так же просто, как использовать hook_webform_submission_insert()
1 и вызов кода GA через drupal_add_js()
оттуда, но почему-то это не сработало: сам хук был выполнен, но JS так и не был добавлен на страницу.
Теперь я добрался до нижней части Google и не нашел никакой помощи в этом конкретном случае (похоже, все используют отдельные страницы "спасибо"). Перемотав вперед пару часов, дюжину подходов и сотни страниц, я, наконец, пришел к этому рабочему коду:
function mymodule_form_alter(&$form, &$form_state, $form_id) {
//add custom submit callback
if ($form_id == 'webform_client_form_[node id here]') {
$form['#submit'][] = 'mymodule_submit_ga';
}
//add GA tracking upon successful submission
if (isset($_SESSION['mymodule_submission_successful']) &&
$_SESSION['mymodule_submission_successful'] == TRUE) {
//reset temporary variable
unset($_SESSION['mymodule_submission_successful']);
//build JS
$script = '(function() {';
$script .= '_gaq.push(["_trackPageview","[virtual page path here]"]);';
$script .= '})();';
//add JS somewhere in the end
drupal_add_js($script, array("type"=>"inline","group"=>JS_THEME,"weight"=>20));
}
}
function mymodule_submit_ga($form,&$form_state) {
//set temporary variable for the code above
$_SESSION['mymodule_submission_successful'] = TRUE;
}
Я делюсь этим на случай, если это кому-нибудь поможет, но, поскольку я не эксперт по PHP, я не могу избавиться от ощущения, что пропустил что-то действительно простое.
Есть ли более простой способ сделать это?
1 answers
Более простым методом (который не требует кодирования) было бы установить для параметра веб-формы "Местоположение перенаправления" значение "Пользовательский URL" и ввести "узел/%nid?f=my_webform_success".
Это приведет к размещению формы самой по себе, а также позволит вам добавить некоторый уникальный ключ/значение к URL-адресу.
Затем в Google Analytics вы можете установить цель с URL-адресом цели "f=my_webform_success" и Типом соответствия "Соответствие регулярному выражению".