Click or drag to resize

Reporting

Last Updated: 22/03/2019

This topic contains the following sections:

Prerequisites
Create your scene and add Reporting as a last step. This is because you might need to tweak interactions during development and might make more work for yourself if you add reporting too quickly. Also, it is better to have a good solid overview of what your experience is like before thinking of what reports you want and what data you need to send.
Design Your Report

Identify Roles And Reportable Objects

  1. Think about the roles that users would take on when they are taking part in your experience. Identify a list of these roles. For example, you might have a Teacher Role and a Learner Role.

  2. Think about what the start and the end of a flow would be. These are usually the first and last thing a user does, and they are usually interactable objects that the user interacts with.

  3. Identify the interactable objects in your scene that you want to include in your report.

Once you have thought about the design considerations, we can start adding the data you need for those reports.

Sending Data

Adding Roles

  1. Locate the App component in your scene.

  2. If it is not already there, add the ImmerseSDK.RolesRolesList component to the same GameObject.

  3. Edit the RolesList_availableRoles array field. Add each of the roles you identified in the above design step.

Note:

These roles will be automatically added as metadata when you build and upload your scene.

Making Objects Reportable

  1. Select the GameObject that the TransformSync for the interactive component is on. If it's a PushButton or a ToggleSwitch, select that GameObject.

  2. Add the ImmerseSDK.ReportingInteractableObjectReporting component to the same GameObject.

  3. Edit the InteractableObjectReporting_eventId field. This can be a unique id, or the same as another event if you want to group the events together.

  4. Edit the InteractableObjectReporting_eventName field. This will be displayed in your report.

  5. Initially the component will detect the type of Interactable component you have on the GameObject when it is first added, and fill in all the default states for the object. You can edit these if you like. For instance, if you don't want release events to be sent, feel free to remove them.

  6. Repeat the above steps for all your interactable objects you want to report on.

Note:

Currently we have minimal error checking so please take care when you edit these fields.

Updating the Metadata file and testing locally

  1. Select "Immerse -> Scene -> Update Scene metadata" from the menu in the Unity Editor. This will update the metadata file that will be used at runtime to validate your events.

  2. Run your project in Ofline mode and trigger some events. You should not see any errors or warning about reporting in the console.

Note:

If you see errors or warnings while running your scene locally, please fix those before continuing to build and upload your project. The metadata file has to reflect exactly what is in your scene otherwise your events will not be sent.

The metadata file will also be update during the build itself.

Building, Uploading And Testing Your Scene

  1. Once you're done with adding roles and reportable objects, you are ready to test.

  2. Build your scene using the Immerse menu, or by checking in your scene to source control and letting Continuous Integration machines build it for you.

  3. Upload the scene in the normal way. The Zip files that the build created will include metadata that will describe your events to our backend systems.

  4. Test your scene by completing the flow you designed in the design step above.

  5. Open up your report and check that the events appear as you expect.

Other Help And Information
  1. We have added reporting to the Demo Scene, so feel free to download the source and have a look around. You can find it in the same place as the Sdk download link.

  2. As always, if you have any questions or feedback, please don't hesitate to contact us at Email support