You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Google Apps Script实现Google Forms随机分配对照组与处理组问卷的技术问询

实现Google Forms随机分配对照组/处理组问卷的完整方案

嘿,我刚好有过用Google Apps Script实现问卷随机分配的经验,完美匹配你的毕业论文需求!下面是从代码到部署的全流程解决方案,你可以直接照搬使用:

第一步:准备两份目标问卷

  • 先把你的对照组和处理组问卷在Google Forms中创建完成,确保它们都设置为允许任何人填写(在表单「设置」→「回复」选项卡下,关闭所有「限制回复」的相关设置)
  • 分别复制两份表单的填写链接(打开表单后,地址栏的URL,格式为https://docs.google.com/forms/d/e/XXX/viewform)

第二步:编写Google Apps Script代码

  • 打开任意一个Google表单(或者新建一个空表单当临时载体)
  • 点击顶部菜单栏的「扩展程序」→「Apps Script」,进入脚本编辑器
  • 清空默认的myFunction()代码,替换成下面的完整脚本:
function randomAssignQuestionnaire() {
  // 👇 替换成你自己的对照组和处理组表单链接
  const controlGroupUrl = "https://docs.google.com/forms/d/e/你的对照组表单ID/viewform";
  const treatmentGroupUrl = "https://docs.google.com/forms/d/e/你的处理组表单ID/viewform";
  
  // 生成0或1的随机数,实现50%概率分配
  const randomResult = Math.floor(Math.random() * 2);
  
  // 带过渡提示的跳转逻辑,提升参与者体验
  if (randomResult === 0) {
    return HtmlService.createHtmlOutput(`
      <div style="text-align:center; margin-top:50px; font-size:18px;">
        正在为您分配问卷,请稍候...
      </div>
      <script>setTimeout(() => window.location.href="${controlGroupUrl}", 1000);</script>
    `);
  } else {
    return HtmlService.createHtmlOutput(`
      <div style="text-align:center; margin-top:50px; font-size:18px;">
        正在为您分配问卷,请稍候...
      </div>
      <script>setTimeout(() => window.location.href="${treatmentGroupUrl}", 1000);</script>
    `);
  }
}

// Web应用的入口函数,必须命名为doGet
function doGet() {
  return randomAssignQuestionnaire();
}

第三步:部署为可公开访问的Web应用

  1. 在脚本编辑器右上角,点击「部署」→「新部署」
  2. 点击「类型」下拉菜单,选择「Web应用」
  3. 配置部署选项:
    • 执行:选择「我」(使用你的Google账号权限执行脚本)
    • 谁可以访问:选择「任何人,甚至匿名」(确保参与者无需登录即可访问)
  4. 点击「部署」,按照提示完成权限授权(第一次部署可能会提示“不安全的应用”,点击「高级」→「转到[你的脚本名称](不安全)」即可继续授权)
  5. 部署完成后,会得到一个类似https://script.google.com/macros/s/XXX/exec的URL,这个就是你要发给所有参与者的随机分配入口链接

可选调整:自定义分配概率

如果你不想用50/50的分配比例,比如想让60%的参与者进入处理组,可以修改随机数判断逻辑:

// 替换原来的randomResult判断部分
const randomProb = Math.random();
if (randomProb < 0.6) {
  // 60%概率跳转到处理组
  return HtmlService.createHtmlOutput(`
    <div style="text-align:center; margin-top:50px; font-size:18px;">
      正在为您分配问卷,请稍候...
    </div>
    <script>setTimeout(() => window.location.href="${treatmentGroupUrl}", 1000);</script>
  `);
} else {
  // 40%概率跳转到对照组
  return HtmlService.createHtmlOutput(`
    <div style="text-align:center; margin-top:50px; font-size:18px;">
      正在为您分配问卷,请稍候...
    </div>
    <script>setTimeout(() => window.location.href="${controlGroupUrl}", 1000);</script>
  `);
}

内容的提问来源于stack exchange,提问作者TizianPro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:12:29