Embed a simulation in a web page
You can place a simulation directly inside your own website, intranet, or LMS page using an embed code. Cesura generates a ready-to-paste <iframe> snippet, and you can add parameters to the URL to tag each run with your own data.
💡 For an embed on an open web page, set the space's Access Level to Anonymous (no sign-in) so visitors can start without a Cesura account. (See How sharing works.)
Before you embed: turn your simulation into a Space
Embedding works through a Space — the workspace that holds your simulation (as an activity) and collects visitors’ runs and results. If your simulation isn’t in a space yet, create one straight from the Library:
- Open the Library and find your simulation.
- Click the Share with a group icon on the simulation’s card.
- Keep Create New selected, give the space a Name, and set the Access Level to Anonymous (no sign-in) (as noted above) so visitors can start without an account.
- Click Create Space. Your simulation now lives in a space and is ready to embed.
Already have a space? Open Share with a group and choose Add to Existing instead.
Embedding is not available for every activity. An activity in a space with the LMS — SCORM / LTI 1.3 access level shows "Embedding is disabled for activities with LMS access level." Use SCORM export or LTI 1.3 for those. An activity set to Safe Exam Browser only cannot be embedded either; learners open it from its Safe Exam Browser link.
Get the embed code
- Open the simulation in the editor and go to the Embedding tab. (You can also reach it from the Share dialog under Advanced options: embed & SCORM.)
- If you see "Save the simulation first to generate the embed code," save it and the code appears.
- Under Embed Code, click Copy Code.
- Paste it into your page's HTML where you want the simulation to appear.
The snippet looks like this:
<iframe src="https://app.cesura.ai/sim/<activity-id>" width="100%" height="600px" frameborder="0" allow="microphone; camera; accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
💡 Keep
microphoneandcamerain theallowlist. A frame gets no microphone and no camera unless the page around it hands them over, and the refusal is silent — the learner is never asked, so a voice simulation simply never starts and video call mode never turns the camera on. If you copied your snippet from an earlier version of Cesura, check theallowlist on your page and add the two words by hand, or copy the embed code again.
You can change width and height to fit your layout (e.g. a fixed width="800px", or a taller height="800px").
Add parameters to tag your runs
To connect results back to your own system, append query parameters to the src URL. Cesura saves them with each run and includes them in the activity's results export.
Link results to your user ID (uid)
Add ?uid=YOUR_USER_ID to identify who took part:
<iframe src="https://app.cesura.ai/sim/<activity-id>?uid=USER_12345" ...></iframe>
The value is stored with the run and appears in the export, so you can match a result to a person in your own records.
Add your own custom fields
You can attach extra metadata with parameters you choose — for example a course, cohort, or campaign:
.../sim/<activity-id>?uid=USER_12345&course=biology-101&cohort=spring
These also appear in the results export. A few rules to keep in mind:
- Up to 10 custom parameters per URL.
- Each name can be up to 64 characters; each value up to 256 characters; text only.
- Names are case-insensitive —
uidandUIDcount as the same parameter. - Cesura ignores marketing/tracking parameters (such as
utm_*) and a small set of reserved names it uses internally — those simply won't be saved.
Each parameter becomes its own column in the export: Param: uid on the Summary Dashboard sheet of the Full Report, param_uid on the Results sheet of Simple Table, and param_uid on the Coded Data sheet of Coded Forms — where the run status is a numeric code rather than text (1 = completed; see the Codes and Labels sheet). Runs opened without the parameter leave those cells empty.
💡 The same parameters work on a plain participant link — you don’t have to embed anything. That is the simplest way to give each person their own link and see who finished: see Identifying and tracking individual participants (Option 5).
Tips for a good embed
- Give it room. Simulations are interactive — a height of around
600–800pxworks well; avoid squeezing it into a small box. - Safari / iPhone / iPad: some browsers restrict content embedded in another page. If the embed misbehaves there, link learners to the activity in a new tab (use the participant link from the Share dialog) instead of embedding.
- Keep sensitive data out of the URL. Anything in the URL is visible to the learner, so use opaque IDs (like
uid) rather than personal data such as full names or emails.
Troubleshooting
| Symptom | Likely cause & fix |
|---|---|
| "Save the simulation first to generate the embed code." | The activity hasn't been saved yet. Save it and the embed code appears. |
| No embed code, and a message says embedding is disabled | The space uses the LMS access level, or the activity uses Safe Exam Browser delivery. Deliver it through your LMS or Safe Exam Browser instead, or move it to a space with another access level. |
| Visitors are asked to sign in | The space's access level requires an account. Set it to Anonymous (no sign-in) for an open embed. |
| My parameter isn't in the export | Check it isn't a reserved/tracking name, the name/value lengths are within the limits above, and you haven't exceeded 10 custom parameters. |
| The simulation looks cramped | Increase the height (and width) in the iframe. |
| A voice simulation never starts, or the camera stays off — and the browser never asks for permission | The allow list is missing microphone and camera. Add them (see the snippet above), or copy the embed code again. The giveaway is that the same simulation works from its direct link: see Voice and video simulations: what goes wrong and how to fix it. |
Need a hand? Reach out through Contact support under Get help in the sidebar.