mobilize: campaign creation hongsuda tangmunarunkit
TRANSCRIPT
Mobilize: Campaign Creation
Hongsuda Tangmunarunkit
Mobilize Technologies
Collect Data
Analyze Data
Campaign Authoring Tool
Data Collection Tools• Android devices• IOS devices• Desktop Browsers
Mobilize Frontend: Explore Data
Interactive Dashboards RStudio
Create Campaign
Mobilize FrontEnd Mobilize Class Setup(teacher only)
Integrated and Iterative Learning Environment
Manage Data
Mobilize FrontEnd
Campaign XML
(Different tools for different objectives)
Campaign• A data gathering project
• Scriptable (xml)• Campaign Definition Structure
CampaignCampaign info
SurveySurvey info
SurveyItem
Prompt(expect user input)
Info:- Properties- Skippable (optional)
- Condition (optional)
Message (no user input)
info:- Condition (optional)
1n
1n
<Android only>
contains
contains
(Not recommend)
• Well-formed: matching start and end tags• Follow campaign definition schema:
https://github.com/ohmage/server/wiki/Campaign-Definition
Campaign Infotags Description Required
campaignUrn
The globally unique ID of the campaign. Convention: urn:campaign:lausd:2014:Spring:SchoolName:TeacherLastname:Subject:Period:CampaignNameExample:urn:campaign:lausd:2014:Spring:MobilizeSchool:Landa:ECS:P5:Snack
Yes
campaignName A name to be displayed to the user for this campaign.Convention:CampaignName Period TeacherLastName YearExample:Snack P5 Landa 2014 Spring
Yes
iconUrl URL for the icon to be used for the campaign (Android only). Eg. http://web.ohmage.org/mobilize/img/ad_icon.png
No
Survey Infotags Description Required
id A unique identifier for this survey, e.g. Snack. Yes
title A name for the survey to be displayed to the user, e.g. Snack. Yes
Description A user-friendly description of the survey. No
introText The text to be displayed when a survey is started. No
submitText The text to be displayed on the submit screen once a survey has been completed. Yes
anytime A Boolean value indicating whether or not the survey may be taken at any time. This field should always be set to true. Yes
contentList A list of survey items. Yes
Prompt Infotags Description Required
id A one-word unique identifier for the prompt e.g. WhatSnack. Yes
displayLabel The user-friendly name of this prompt used in visualizations. Yes
promptText The text to display to the user when prompting them to respond e.g. What did you eat? Yes
promptType One of the prompt types. Yes
default The default value for this prompt. This is type-dependent. No
condition The condition determines if the prompt is displayed or not. No
skippable A boolean representing whether or not the prompt may be skipped. Eg. <skippable>true</skippable> Yes
skipLabel If skippable, this is the text of the button to use to skip the label. Eg. <skipLabel>Skip</skipLabel>
Yes, if 'skippable' is true.
properties A list of property consisting of key, label, and value (optional) that define type-specific properties. Yes
Prompt types
• Simple types (Recommended)
• single_choice• text• number • photo
• More complicated types (Not recommended)
• multi_choices• video, audio (android only)
• remote_activity (android only)
• single_choice_custom• multi_choice_custom • Timestamp
Prompt: single_choice
tags Description
key A integer value representing this choice's key. The key should start from 0.
label The label to show to the user for this choice.
Value (optional)
An assigned whole number representing the “ordinal ranking“ value of this choice.
Properties
Default One of the keys specified under the properties tag. Eg.<default>1</default>
Example<prompt> <id>SnackPeriod</id> <displayLabel>Last snack period</displayLabel> <promptText>When did you eat your last snack?</promptText> <promptType>single_choice</promptType> <properties> <property> <key>0</key> <label>Mid-morning</label> </property> <property> <key>1</key> <label>Midafternoon</label> </property> <property> <key>2</key> <label>Evening</label> </property> … </properties><skippable>false</skippable></prompt>
Single_choice provides possible choices for users to select from. Only one choice can be selected.
Note: The order of choices follows the order of the text in the XML.
Prompt: text
tags Description
key Possible options are:• min : The minimum length of the text• max : The maximum length of the text
label The value associated with the key. Note that the max label has to be more than the min label.
Default A default string shown in the text box. Eg. <default>Default text</default>
Properties
Example<prompt> <id>WhatSnack</id> <displayLabel>Snack Name</displayLabel> <promptText>What did you eat?</promptText> <promptType>text</promptType> <properties> <property> <key>min</key> <label>1</label> </property> <property> <key>max</key> <label>256</label> </property> </properties><skippable>false</skippable></prompt>
Text allows users to provide an open-ended answer.
Prompt: number
tags Description
key Possible options are:• min : The minimum number allowed• max : The maximum number allowed
label The value associated with the key. Note that the max label has to be more than the min label.
Default
A default number with in the specified range. Eg, <default>3</default>
Properties
Example<prompt> <id>HealthyLevel</id> <displayLabel>Healthy Level</displayLabel> <promptText>How healthy was the snack? (1 very unhealthy, 5 very healthy)</promptText> <promptType>number</promptType> <properties> <property> <key>min</key> <label>1</label> </property> <property> <key>max</key> <label>5</label> </property> </properties> <default>3</default> <skippable>false</skippable></prompt>
Number provides a range of numbers for users to select from. Only one number can be selected.
Prompt: photo
tags Description
maxDimension(Optional)
The maximum vertical resolution of the image response. This parameter affects the resource consumption. (The android client defaults to 800px if this is not defined)
Default No default is allowed.
Properties
Example<prompt> <id>SnackImage</id> <displayLabel>Snack Image</displayLabel> <promptText>Take a picture?</promptText> <promptType>photo</promptType> <properties> <property> <key>maxDimension</key> <label>800</label> </property> </properties> <skippable>true</skippable> <skipLabel>Skip</skipLabel></prompt>
Photo asks users to take a picture to be included in the survey.
Condition
• Specify whether to show the current prompt based on the answers to previous prompts. – If true, show the survey item
• Example: <condition>SnackPeriod==0</condition>
• For more information, visit https://github.com/ohmage/server/wiki/Campaign-Definition#wiki-promptTypes
Put it all together<?xml version="1.0" encoding="UTF-8"?><campaign> <campaignUrn>urn:campaign:lausd:2013:Spring:UCLACommunity:Marino:P5:Snack</campaignUrn> <campaignName>Snack P5 2013 Marino</campaignName> <surveys> <survey> <id>Snack</id> <title>Snack Habit</title> <description>This survey asks about birds sighted during the day.</description> <submitText>Thank you for recording bird sightings!</submitText> <anytime>true</anytime> <contentList> <prompt> …. Prompt 1 detail </prompt> <prompt> …. Prompt 2 detail </prompt> </contentList> </survey> </surveys></campaign>
Campaign Uploadhttps://lausd.mobilizingcs.org
Should be set to “Running,” which will enable the campaign to be visible to data collection tools.
Should be set to “Shared,” which will allow students to share data to others.
Campaign Authoring Tool (alpha version)
campaign definition in XML
Create Campaign
InfoSurvey
InfoSurvey Item
Create Survey (Repeatable)View XML
Submit to Mobilize Server
https://lausd.mobilizingcs.org/campaignAuthoring
Campaign Info
Survey Info
Prompt Info
GUI for creating a campaign
Campaign Authoring Tool (alpha version)Create campaign Info Create survey Info Create prompt Info
Show all prompts single_choice properties text properties
Survey Response:Timestamp and Geographical Location
Timestamp is automatically tagged for each survey response.
Location (lat,long) is automatically tagged (if allowed) for each survey response. • Responses with no location will
not be included in the map.
A survey response is a set of answers (associated with a particular survey) completed by a user.
Resources
• Mobilize wiki: https://wiki.mobilizingcs.org• Mobilize campaign creation guide: https://
wiki.mobilizingcs.org/xml• Campaign definition scheme: https://
github.com/ohmage/server/wiki/Campaign-Definition
Acknowledgements• Mobilize technical team: Safaa Dabagh, Amelia McNamara, James
Molyneux, Steve Nolen, Jeroen Ooms, Hongsuda Tangmunarunkit (Lead)
• Ohmage: Cheng-Kang Hsieh, Cameron Ketcham, John Jenkin, Tai Pham, Josh Selsky (Lead)
• Ohmage-mwf: Zorayr Khalapyan, Vinh Pham, Rose Rocchio (Lead), Edward Sakabu, Cathy Trance
• Education team: Salvador Beas, Odette Board (LAUSD), John Landa (LAUSD), Suyen Noncada-Machado (LAUSD), Christine Ong (CRESST), LeeAnn Trusela (Project Director), Pat Phillips (UCLA), et. al
• PIs: Rob Gould, Mark Hansen, Deborah Estrin, Jane Margolis, Tomas Philip, Jody Priselac, Todd Ullah, Chris Stephenson, Joanna Goode
• Funding: NSF Math Science Partnership (#DUE-0962919), UCLA Center for Embedded Networked Sensing (NSF#CCF-0120778)