Skip to main content

Including media in your survey

Let's get visual!

Updated over 7 months ago

Including media like images and videos in surveys to capture authentic consumer responses in scenarios where visual and emotional engagement are essential. For example, when testing ads or movie trailers, visuals allow respondents to provide feedback on elements like emotional impact, message clarity, and overall appeal. This leads to more accurate insights into how the target audience might react before launching a campaign or product.

Media is also essential in product testing, where the design and presentation play a significant role in consumer perception. By showcasing a product through images or videos, companies can gather valuable feedback on its appearance, functionality, and perceived value. This helps refine product features or packaging before they hit the market, ensuring they meet consumer expectations and preferences.

In the MX8 Research Platform, adding media to your surveys is straightforward, and you can upload media in the media tab for your survey:

Uploading your media

You upload media in the "Media" tab of the survey:

When you first upload a video, the thumbnail will appear as pending while the video is ingested and encoded in our systems:

You can then add additional columns to the media to provide extra metadata for each media item. This metadata will be available to access within the survey code and will also be appended to any questions about that specific media:

Programming with survey media

You can access the media within the survey using the s.media object, for example:

for image in s.randomize(s.media):
s.multi_choice_question("Do you like this image?", options=["Yes", "No"], image=image)

You can also access the metadata by using dot access; in this example, there is a column "ask_like" on the metadata, which is set for items that should have the like question asked:

for image in s.randomize(s.media):
if s.ask_like:
s.multi_choice_question("Do you like this image?", options=["Yes", "No"], image=image)

The video works just the same way, and you can play with the play_video function, e.g.

for media in s.media:
if not media.is_image:
s.play_video(video=media, start_message="Please watch this video.")
... ask questions here

How media looks in the survey

You can include images in any question in the survey by using the show_image question to display the image for five seconds or more:

You can also include the image in a question by using the image parameter

If you don't want to include the IP address watermark, you should uncheck the security checkbox in the media section of the survey:

Example Survey

Below are an example survey and zip file of images:

from survey import Survey

s = Survey(**globals())

# Introduction note
s.note(
"Welcome to the survey! We'll show you several images, and we'd like to know your opinion on each one. Please rate them based on your personal feelings about the style, emotion, and overall impression."
)

# Consent question
s.get_consent(
consent_text="Before we begin, we need your consent to participate in this survey. Your responses will be kept confidential and used for research purposes only."
)

# Screening Questions

# Age question with termination for under 18
age = s.multi_choice_question(
question="What is your age?",
options=["18-24", "25-34", "35-44", "45-54", "55-64", "65 and above"],
other_options=["Under 18"],
)
s.terminate_if(
age == "Under 18",
reason="Sorry, but this survey is only for individuals aged 18 and above.",
)

# Gender question
s.multi_choice_question(
question="What is your gender?",
options=["Male", "Female", "Non-binary/Third gender", "Prefer not to say"],
)

# Ethnicity question (USA-specific)
s.multi_choice_question(
question="What is your ethnicity?",
options=[
"White",
"Black or African American",
"Asian",
"Native Hawaiian or Other Pacific Islander",
"American Indian or Alaska Native",
],
other_options=["Other (please specify):"],
)

# Hispanic or Latino origin question
s.multi_choice_question(
question="Are you of Hispanic or Latino origin?", options=["Yes", "No"]
)

# Household income question
s.multi_choice_question(
question="What is your annual household income?",
options=[
"Less than $25,000",
"$25,000 - $49,999",
"$50,000 - $74,999",
"$75,000 - $99,999",
"$100,000 - $149,999",
"$150,000 and above",
],
)

# Education level question
s.multi_choice_question(
question="What is the highest level of education you have completed?",
options=[
"Less than high school",
"High school diploma or GED",
"Some college, no degree",
"Associate degree",
"Bachelor's degree",
"Graduate or professional degree",
],
)

# Core Questions for each image
s.note("Now we'll show you an series of images and ask you a few questions about them.")

# Loop through each image and ask the set of core questions
for image in s.media:

# Show the image first
s.show_image(image)

# How do you feel about the image?
s.multi_choice_question(
question="How do you feel about the image?",
options=["Very Positive", "Positive", "Neutral", "Negative", "Very Negative"],
image=image,
)

# How likely are you to hang this image in your home?
s.multi_choice_question(
question="How likely are you to hang this image in your home?",
options=["Very Likely", "Likely", "Neutral", "Unlikely", "Very Unlikely"],
image=image,
)

# What does this image remind you of, or what do you think it represents? (Open-ended)
s.text_question(
question="What does this image remind you of, or what do you think it represents?",
image=image,
)

# Closing note
s.note(
"Thank you for participating! Your responses will help us better understand how people connect with art."
)

# Finalize the survey
s.complete()

Attachment icon
Did this answer your question?