WordPress Contact Forms7 で GA
ANALYTICS October 7th, 2009Wordpressで、google anlaytics に対応させた formのプラグインを探してて、下のurlを見つけた。
http://wordpress.org/support/topic/277808?replies=20 で、やりとりを見てて、作者のwebsiteにいったら、日本語はこちらというリンクがあった。 作者は日本人(博多の人)で、英語と日本語の両方で質問に答えたりしてた。 すごいなあ。
で、上のフォーラムの通り、pluginのsettingページのadditional settingsに所に、
on_sent_ok “pageTracker._trackPageview(‘/contacted’);”
とセットし、フォームを実行させた。 でも、”illegal character”というjavascriptのerrorになった。文字列のevalの所がエラーになる。 (後で、張り直したら、問題なかった。変な文字が入っていたのだろうか??コピペの時にそのような事が起こる可能性あるのかな?)
で、ともかく、このpluginをみていると、 “xml/http-request”のpostメソッドで、送っていて、jsonを返す作業をしてる。 wpcf7ProcessJsonが、返された値を引数にしてcallbackされる。とまでは、わかった。 なので、callback関数のwpcf7ProcessJsonの中に
pageTracker._trackPageview('/contacted')
と書いたコードをいれた。 ついでに、エラーとかにもそれっぽいvirtualPageviewをいれて、やり過ごす形にした。 一応、google-analyticsのデータは飛んでるよう。
これで、フォームの正常と失敗の送信をgoogle analyticsでtrackingできるし、コンバージョンの発生も計れる。
なぜかその後、消し忘れていた additional-settingsのpageTrackerも正常に動き出した。 donateというボタンがあったので、http://pledgie.com/ を経由して、paypalでペットボトル二本分を送った。
下のコードは、wordpressの禁止文字???に引っかからないように、execをexecXXXと入れ替えた。
こんなエラーがでてた。”mod_security: Access denied with code 503. Pattern match “(echo( |\\\\(|\\\\’).*\\\\;|chr|fwrite|fopen|system|echr|passthru|popen|proc_open|shell_exec|exec|proc_nice|proc_terminate|proc_get_status|proc_close|pfsockopen|leak|apache_child_terminate|posix_kill|posix_mkfifo|posix_setpgid|posix_setsid|posix_setuid|phpinfo)\\\\(.*\\\\)\\\\;”
function wpcf7ProcessJson(data) {
var wpcf7ResponseOutput = jQuery(data.into).find('div.wpcf7-response-output');
wpcf7ClearResponseOutput();
if (data.invalids) {
pageTracker._trackPageview('/contact/invalids');
jQuery.each(data.invalids, function(i, n) {
wpcf7NotValidTip(jQuery(data.into).find(n.into), n.message);
});
wpcf7ResponseOutput.addClass('wpcf7-validation-errors');
}
if (data.captcha) {
pageTracker._trackPageview('/contact/captcha');
jQuery.each(data.captcha, function(i, n) {
jQuery(data.into).find(':input[name="' + i + '"]').clearFields();
jQuery(data.into).find('img.wpcf7-captcha-' + i).attr('src', n);
var match = /([0-9]+)\.(png|gif|jpeg)$/.execXXX(n);
jQuery(data.into).find('input:hidden[name="_wpcf7_captcha_challenge_' + i + '"]').attr('value', match[1]);
});
}
if (data.quiz) {
pageTracker._trackPageview('/contact/quiz');
jQuery.each(data.quiz, function(i, n) {
jQuery(data.into).find(':input[name="' + i + '"]').clearFields();
jQuery(data.into).find(':input[name="' + i + '"]').siblings('span.wpcf7-quiz-label').text(n[0]);
jQuery(data.into).find('input:hidden[name="_wpcf7_quiz_answer_' + i + '"]').attr('value', n[1]);
});
}
if (1 == data.spam) {
pageTracker._trackPageview('/contact/spam');
wpcf7ResponseOutput.addClass('wpcf7-spam-blocked');
}
if (1 == data.mailSent) {
pageTracker._trackPageview('/contact/mailsent');
jQuery(data.into).find('form').resetForm().clearForm();
wpcf7ResponseOutput.addClass('wpcf7-mail-sent-ok');
if (data.onSentOk)
jQuery.each(data.onSentOk, function(i, n) { eval(n) });
} else {
wpcf7ResponseOutput.addClass('wpcf7-mail-sent-ng');
}
wpcf7ResponseOutput.append(data.message).fadeIn('fast');
}
function wpcf7ProcessJson(data) {
var wpcf7ResponseOutput = jQuery(data.into).find('div.wpcf7-response-output');
wpcf7ClearResponseOutput();
if (data.invalids) {
pageTracker._trackPageview('/contact/invalids');
jQuery.each(data.invalids, function(i, n) {
wpcf7NotValidTip(jQuery(data.into).find(n.into), n.message);
});
wpcf7ResponseOutput.addClass('wpcf7-validation-errors');
}
if (data.captcha) {
pageTracker._trackPageview('/contact/captcha');
jQuery.each(data.captcha, function(i, n) {
jQuery(data.into).find(':input[name="' + i + '"]').clearFields();
jQuery(data.into).find('img.wpcf7-captcha-' + i).attr('src', n);
var match = /([0-9]+)\.(png|gif|jpeg)$/.execXXX(n);
jQuery(data.into).find('input:hidden[name="_wpcf7_captcha_challenge_' + i + '"]').attr('value', match[1]);
});
}
if (data.quiz) {
pageTracker._trackPageview('/contact/quiz');
jQuery.each(data.quiz, function(i, n) {
jQuery(data.into).find(':input[name="' + i + '"]').clearFields();
jQuery(data.into).find(':input[name="' + i + '"]').siblings('span.wpcf7-quiz-label').text(n[0\
]);
jQuery(data.into).find('input:hidden[name="_wpcf7_quiz_answer_' + i + '"]').attr('value', n[1\
]);
});
}
if (1 == data.spam) {
pageTracker._trackPageview('/contact/spam');
wpcf7ResponseOutput.addClass('wpcf7-spam-blocked');
}
if (1 == data.mailSent) {
pageTracker._trackPageview('/contact/mailsent');
jQuery(data.into).find('form').resetForm().clearForm();
wpcf7ResponseOutput.addClass('wpcf7-mail-sent-ok');
if (data.onSentOk)
jQuery.each(data.onSentOk, function(i, n) { eval(n) });
} else {
wpcf7ResponseOutput.addClass('wpcf7-mail-sent-ng');
}
wpcf7ResponseOutput.append(data.message).fadeIn('fast');
}
Google Analytics アクセス解析