How do I add images to my survey?


Conjoint.ly supports the use of pictures in a variety of popular formats (JPEG, PNG, etc.).

Upload images for conjoint attributes and levels

You can insert images for each level through the format level text button:

Uploading images for conjoint attributes and levels on Conjoint.ly platform

Upload multiple images for conjoint levels at once

Multiple packshots can be easily added directly from PowerPoint and other file formats through + Add multiple levels at the bottom of each attribute:

Uploading several images at once for conjoint levels Conjoint.ly platform

Upload images to additional questions

You can insert images by clicking insert image button in the additional questions:

Uploading images to additional questions on Conjoint.ly platform

Image optimisation utility

If you have multiple images as part of the inputs for your study, it is important to ensure that the images are consistent across the study. For that, we would recommend using the Image Optimisation tool for the best results.

  • Click the Utilities option from the left-hand menu and select Image optimisation.
  • Upload your images by clicking the grey rectangle and selecting from files or by dragging your images into the same space.
  • Continue to Step 2 and select which images you want in your survey.
  • Continue to Step 3 to edit image size, spacing, and background colour.
  • Continue to Step 4 to complete image optimisation process and click the “Download zip” button on the bottom-left to download a .zip file of your optimised image files.
Uploading multiple images to survey using the Image Optimisation tool on Conjoint.ly platform

Frequently asked questions on images used in experiments


What file type should I use to upload my images?

All common image files extensions such as JPG, JPEG, PNG and GIF are supported on the Conjoint.ly platform.

Is there a file size limit to the images that can be uploaded?

No, however, for a more robust experiment we recommend that all your images be optimised and standardised so that images of products of different sizes can be more accurately compared.

You may use the image optimisation utility on the Conjoint.ly platform to optimise and standardise your image.

How can I let the respondents see the fine details on my packshots?

You can enable zooming or magnifying glass when uploading an image so that the respondents can see the fine details on your packshots.

Enable zooming for images

Zooming will open the packshot in full size when the respondents click on the image while magnifying glass will magnify a certain part of the image when the respondents hover the mouse cursor over the image.

Do not rely on small details as not all respondents will spend enough time on each image in detail.

How to standardise sizes of images for experiments

When uploading pack shot images of products of different sizes, we highly recommended that all the sizes of images are standardised, this allows the respondents to have a better visual context of the difference in the products.

Unstandardised images
Standardised zooming for images

Standardising image sizes with Microsoft PowerPoint:

If you have a small number of images (e.g. less than 100), we recommend doing the image sizes standardisation manually so you have a better control of the sizes. You can easily do so in Microsoft PowerPoint:

  • Create box shapes of identical size in a blank slide.
    Standardising images step 1
  • Paste in the images and adjust the size accordingly
    Standardising images step 2
  • Remove the outline of the boxes
  • Highlight each individual box together with the image inside, right click and save it as a new image to be uploaded.
    Standardising images step 3

Standardising image sizes with R code:

If you have a large number of images (e.g. more than 100) and don’t have the luxury to standardise their sizes manually, the alternative solution is to perform an automated image sizes standardisation via R code we have shared below. However, this solution requires some basic coding skills and a few attempts of trial-and-error. We suggest reviewing the standardised images just to ensure their overall quality.

Specifically, you will have to define the following parameters, in which some require trial-and-error to find the optimal value:

  • sourceDir as the folder containing your images
  • types as the format of your images(e.g. png, jpg),
  • outputFormat as the desired format of the standardised image
  • padding as the ratio of image padding (i.e. adding spaces)
  • maxPixels as the maximum size of the images
#' Image proportion standardiser 
#' Settings: 
#'  sourceDir: directory where source images are
#'  types character vector of file extensions to include default c("png", "jpg", "PNG", "JPG")
#'  outputFormat: string of output image type, default "png"
#'  padding: ratio for image padding 1.05 = 5% image padding
#'  maxPixels: size to crop images to, images smaller than this are not changed

{
  library(magick)
  library(tools)
  library(rsvg)
  
  sourceDir <- "."
  types <- c("png", "jpg", "PNG", "JPG")
  outputFormat <- "png"
  padding <- 1.05
  maxPixels <- 1000
}

{
  files <- list_files_with_exts(sourceDir, types)
  
  if(!dir.exists("edited/")){
    dir.create("edited/")
  }
  
  for(file in files){
      productImg <- image_read(file) %>% 
        image_trim() %>% 
        image_background(color = 'white')
      
      imageData <- image_info(productImg)
      maxDim <- max(imageData$width, imageData$height)  * padding
      
      whiteBackground <- image_read_svg(paste0("<svg><rect x='0' y='0' width='",
                                               maxDim ,
                                               "' height='",
                                               maxDim ,
                                               "' fill='white' stroke-width='0'/></svg>"))
      
      finalImg <- image_composite(whiteBackground, 
                                  productImg,
                                  offset = paste0("+", (maxDim - imageData$width) / 2, "+", (maxDim - imageData$height) / 2)) %>% 
        image_scale(paste0(min(maxPixels, maxDim)))
      
      
      
      image_write(finalImg,
                  path = paste0("edited/", file_path_sans_ext(basename(file)), ".", outputFormat),
                  format = outputFormat)
  }
}