不知道大家做問卷調查的時候,會不會需要A/B test,或是有很多份問卷要隨機分配?其實,自己寫一小段程式就可以達到目的囉,本文教你如何透過Dropbox空間架設靜態網頁,並寫個javascript來隨機分配問卷!

之前看見有人貼文請大家填問卷,大概是這樣的形式:

請大家幫忙填寫XX問卷,隨便選一個份就可以囉~
1.問卷A:連結...
2.問卷B:連結...
3.問卷C:連結...

可是這樣的方式,有點難平均分配受測者進入不同問卷,大家可能會想說不要選第一個,結果造成2與3的數量多很多。為了不要讓這樣的事情發生,需要有一個隨機分配的轉址網頁,就動手做看看吧!


行前準備

  • 準備好問卷連結們 (例如:Google表單)
  • 擁有一個Dropbox帳號
  • 想要寫點程式的心

架設轉址頁面

如下圖所示,受測者點選縮網址後,就會進入我們在DropPages架設的網頁,而這個網頁只有Javascript程式碼,用來隨機轉向到預先設定好的表單。整個轉址過程很快速,受測者是沒有甚麼感覺的XD

droppage

首先,用Dropbox帳號登入DropPages,來架設個人網頁。當然也可以自己架設網頁,或使用Google drive架靜態網頁,不過Google的檔案聯外功能將於2016/08關閉,可用的時間不多了。

DropPages架設教學可以參考:DropPages 三個步驟,打造專屬個人網站,這部份就不多說拉,假設各位已經建立完畢,就可以往下繼續囉


用Javascript隨機轉址

在DropPages建立好個人頁面後,可以在Dropbox目錄下,看見一個以droppages網域為名的資料夾

Dropbox->應用程式->My.DropPages->xxx.droppages.com

xxx是你申請的子網域名稱,在這個目錄底下,分別又有三個資料夾,我們會在Content寫轉址程式,然後修改Template上的網頁標題。

dropbox

在Content/index.txt,加入javascript程式碼,可以根據表單連結數自行新增

:Base
<script type="text/javascript">;
var url = new Array(); 
url[0] = '表單連結A';
url[1] = '表單連結B'; 
location.href = url[Math.round(Math.random()*(url.length-1))];
</script>

接著修改Template/base.html,加上標題或內文。這樣做的原因是讓你在分享連結的時候,標題/內文可以被快取,受測者也比較知道點了甚麼東西XD

<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8" />
 <title>問卷名稱</title>
 <link href="/main.css" rel="stylesheet" type="text/css" />
</head>
<body>
 {{Body}}
</body>
</html>

修改完後,將檔案關閉,Dropbox會自動同步至雲端!點擊你的網址就會看到效果了!

如果不想要網址太長,可以再用Google縮網址簡化:https://goo.gl/


加入Google Analytics

Google表單本身有流量統計的功能,但經過一層轉址,沒辦法追蹤流量來源,需要安插GA追蹤碼。
修改剛剛的Content/index.txt,如下所示,這裡的UA-XXXXXXXX-X是GA追蹤編號。如果沒用過GA的話,就申請一個試試吧,滿好用的!

:Base
<script type="text/javascript"> 
 (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
 (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
 m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
 })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-XXXXXXXX-X', 'auto');
ga('send', 'pageview');

var url = new Array(); 
url[0] = '表單連結A';
url[1] = '表單連結B'; 
location.href = url[Math.round(Math.random()*(url.length-1))];
</script> 

參考資料
java寫的隨機自動轉址