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;
your_project.your_dataset.website_access_logs
and your_region
with your actual values.)
Benefits:
-
Browser Statistics: By aggregating results by
browser_name
andbrowser_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
anddevice_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
andos_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!