Skip to content

parse_user_agent

parse_user_agent(user_agent_string)

Description

Parses User Agent strings into several components

Examples

Call or Deploy parse_user_agent ?
Call parse_user_agent directly

The easiest way to use bigfunctions

  • parse_user_agent function is deployed in 39 public datasets for all of the 39 BigQuery regions.
  • It can be called by anyone. Just copy / paste examples below in your BigQuery console. It just works!
  • (You need to use the dataset in the same region as your datasets otherwise you may have a function not found error)

Public BigFunctions Datasets

Region Dataset
eu bigfunctions.eu
us bigfunctions.us
europe-west1 bigfunctions.europe_west1
asia-east1 bigfunctions.asia_east1
... ...
Deploy parse_user_agent in your project

Why deploy?

  • You may prefer to deploy parse_user_agent in your own project to build and manage your own catalog of functions.
  • This is particularly useful if you want to create private functions (for example calling your internal APIs).
  • Get started by reading the framework page

Deployment

parse_user_agent function can be deployed with:

pip install bigfunctions
bigfun get parse_user_agent
bigfun deploy parse_user_agent

Mobile User Agent

select bigfunctions.eu.parse_user_agent('Mozilla/5.0 (Linux; Android 12; SM-S906N Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/80.0.3987.119 Mobile Safari/537.36')
select bigfunctions.us.parse_user_agent('Mozilla/5.0 (Linux; Android 12; SM-S906N Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/80.0.3987.119 Mobile Safari/537.36')
select bigfunctions.europe_west1.parse_user_agent('Mozilla/5.0 (Linux; Android 12; SM-S906N Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/80.0.3987.119 Mobile Safari/537.36')
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| parsed_user_agent                                                                                                                                                                                                                                                                                           |
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| STRUCT<STRUCT<'Chrome WebView' as name, '80.0.3987.119' as version, '80' as major> as browser, STRUCT<'Blink' as name, '80.0.3987.119' as version> as engine, STRUCT<'Android' as name, '12' as version> as os, STRUCT<'Samsung' as vendor, 'SM-S906N' as model, 'mobile' as type> as device, null as arch> |
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

Need help or Found a bug using parse_user_agent?
Get help using parse_user_agent

The community can help! Engage the conversation on Slack

We also provide professional suppport.

Report a bug about parse_user_agent

If the function does not work as expected, please

  • report a bug so that it can be improved.
  • or open the discussion with the community on Slack.

We also provide professional suppport.

Use cases

A website analytics team could use the parse_user_agent function to analyze website traffic and user behavior. Here's a breakdown of how they might use it:

Scenario: The team wants to understand which browsers are most popular among their users, identify trends in mobile device usage, and optimize the website experience for different operating systems. They have a BigQuery table containing website access logs, including a column with user agent strings.

Use Case with BigQuery SQL:

SELECT
    parsed_user_agent.browser.name AS browser_name,
    parsed_user_agent.browser.version AS browser_version,
    parsed_user_agent.os.name AS os_name,
    parsed_user_agent.os.version AS os_version,
    parsed_user_agent.device.model AS device_model,
    parsed_user_agent.device.type AS device_type,
    COUNT(*) AS access_count
  FROM
    `your_project.your_dataset.website_access_logs`,
    UNTABLE(bigfunctions.your_region.parse_user_agent(user_agent) AS parsed_user_agent)
  GROUP BY 1, 2, 3, 4, 5, 6
  ORDER BY access_count DESC;
(Replace your_project.your_dataset.website_access_logs and your_region with your actual values.)

Benefits:

  • Browser Statistics: By aggregating results by browser_name and browser_version, the team can determine the market share of different browsers accessing their website. This helps in prioritizing browser compatibility testing and ensuring a consistent user experience.

  • Mobile Device Insights: Grouping by device_model and device_type reveals which mobile devices are commonly used to visit the site. This information is valuable for responsive design and mobile optimization efforts.

  • Operating System Analysis: Analyzing data based on os_name and os_version allows the team to identify potential compatibility issues or optimize the website for specific operating systems.

  • Targeted Improvements: By understanding the breakdown of user agents, the team can make data-driven decisions about website improvements. For example, if a significant portion of users are on older versions of a specific browser, they might choose to display a message encouraging them to update for better performance and security.

  • Troubleshooting: If there's a sudden spike in errors from a specific browser or device, the parsed user agent data helps pinpoint the problem quickly.

This use case demonstrates how the parse_user_agent function empowers the analytics team to gain valuable insights from raw user agent data within BigQuery, leading to informed decisions about website development and optimization.

Spread the word!

BigFunctions is fully open-source. Help make it a success by spreading the word!

Share on Add a on