Measuring Your Impact on the WebRTC Customer Experience
There are several factors that significantly affect the quality of a WebRTC call: cost, connectivity, available bandwidth, etc. These factors tend to seriously impact the customer experience. And even if users will judge the reliability of a service based on those factors, it is important to know that only a select few of them can be controlled.
If you take cost into consideration, you will find that there are several factors that have a direct effect on WebRTC calls. We can break down the call into three major variables; voice, video and the number of connections. Voice is the easiest to provide and probably the most cost effective, due to the fact that it uses low bandwidth.
However, costs rise with video, as it uses more bandwidth. It is true that the core WebRTC code will automatically determine the available bandwidth and scale down the video resolution accordingly, but how will this affect the user experience? This is one of those aspects that tend to be less controllable, due to its reliance on bandwidth availability.
The third factor falls into the same category. As more people join a call, more bandwidth is required, leading to higher costs of connectivity. Equipment such as routers can be used to facilitate the process, but since additional bandwidth is required, the impact of processing incoming video can be significant.
We live in a fast paced world where everyone wants to be connected all the time, and they want to be connected quickly. As networks provide faster speeds, people demand even faster speeds. If the connection time is going to take longer than a nanosecond, it is prudent to have something on the screen to indicate that the connection is happening.
People tend to like visual cues. Consider the people who will be joining the WebRTC call and provide an indication of their state of connectivity. There is nothing more disheartening than to see a blank screen and not know what is happening.
On the flip side, there are several reasons why a call may not go through. If it does not go through, there should be a message with information that the user can employ to try and establish a connection. The right message and displaying the state of connectivity can go a long way to providing a good user experience.
In addition to the state of connectivity, it is also a good practice to give the user a sense of the quality of their connection. In much the say way that everyone looks to see how many bars they have on their smartphones, people take comfort in knowing if they have a strong or weak connection. The more information a user has, the more they feel in control.
There are methods that a WebRTC developer can use to optimize the connection process. One option involves an endpoint gathering IP addresses, prioritizing them and sending them to a peer. The peer then gathers its own addresses, prioritizes them and sends them back. Another option only sends an IP address that is considered to be the best option of connecting.
Another method is to proactively start negotiating the call setup process behind the scenes. An example would include moving the mouse over a person's name in a call history log. By starting the negotiation process in the background, an app can save precious time, which the user will appreciate.
These are just a few factors that can have an effect on connectivity, bandwidth and call quality. This is something that will enhance the user’s experience and make the WebRTC app successful.
Edited by Kyle Piscioniere