This report uses Google Trends data to compare U.S. web search interest in three major competing mobile/desktop operating system brands over the past five years: Apple, Android, and Windows. Together these three terms represent the dominant ecosystems that consumers and professionals search for every day. By analyzing relative search interest over time we can surface seasonal patterns, product-launch spikes, and shifts in public attention.
Search interest values from Google Trends are indexed 0–100, where 100 represents the peak popularity of a term within the selected time range and region (Sullivan, 2023).
# Install gtrendsR if needed (uncomment once)
# install.packages("gtrendsR")
library(gtrendsR) # Google Trends API wrapper
library(tidyverse) # data wrangling + ggplot2
library(lubridate) # date helpers
library(scales) # axis formatting
library(ggthemes) # clean plot themes
library(knitr) # table rendering
library(kableExtra) # styled tables
We pull five years of weekly U.S. web-search data (June 2021 – June
2026) for the three keywords using gtrendsR::gtrends().
brands <- c("Android", "Windows", "Apple")
trends_raw <- gtrends(
keyword = brands,
geo = "US",
time = "today+5-y", # 5 years of weekly data
onlyInterest = TRUE
)
search_df <- trends_raw$interest_over_time |>
mutate(
date = as.Date(date),
hits = as.integer(hits), # "<1" becomes NA, which we drop
keyword = factor(keyword, levels = brands)
) |>
filter(!is.na(hits))
glimpse(search_df)
## Rows: 786
## Columns: 7
## $ date <date> 2021-06-13, 2021-06-20, 2021-06-27, 2021-07-04, 2021-07-11, …
## $ hits <int> 14, 14, 13, 13, 13, 14, 13, 13, 13, 13, 14, 12, 12, 12, 13, 1…
## $ keyword <fct> Android, Android, Android, Android, Android, Android, Android…
## $ geo <chr> "US", "US", "US", "US", "US", "US", "US", "US", "US", "US", "…
## $ time <chr> "today+5-y", "today+5-y", "today+5-y", "today+5-y", "today+5-…
## $ gprop <chr> "web", "web", "web", "web", "web", "web", "web", "web", "web"…
## $ category <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
summary_tbl <- search_df |>
group_by(Brand = keyword) |>
summarise(
`Avg Interest` = round(mean(hits), 1),
`Max Interest` = max(hits),
`Min Interest` = min(hits),
`Peak Date` = as.character(date[which.max(hits)])
) |>
arrange(desc(`Max Interest`))
kable(summary_tbl, caption = "Five-Year Search Interest Summary (US, 2021–2026)") |>
kable_styling(bootstrap_options = c("striped", "hover", "condensed"),
full_width = FALSE)
| Brand | Avg Interest | Max Interest | Min Interest | Peak Date |
|---|---|---|---|---|
| Apple | 61.8 | 100 | 47 | 2026-04-12 |
| Windows | 23.1 | 32 | 19 | 2026-04-12 |
| Android | 12.8 | 22 | 10 | 2026-04-12 |
# colour palette — brand-associated colours
brand_colors <- c(
"Apple" = "#007AFF", # Apple blue
"Android" = "#3DDC84", # Android green
"Windows" = "orange" # Windows orange
)
ggplot(search_df, aes(x = date, y = hits, color = keyword)) +
geom_line(linewidth = 0.8, alpha = 0.85) +
geom_smooth(se = FALSE, linewidth = 0.4, linetype = "dashed", alpha = 0.5) +
scale_color_manual(values = brand_colors, name = "Brand") +
scale_x_date(date_breaks = "6 months", date_labels = "%b %Y") +
scale_y_continuous(limits = c(0, 105), breaks = seq(0, 100, 25)) +
labs(
title = "U.S. Google Search Interest: Android vs Windows vs Apple",
subtitle = "Weekly relative search interest, indexed 0–100 | June 2021 – June 2026",
x = NULL,
y = "Search Interest (0–100)",
caption = "Source: Google Trends via gtrendsR | Dashed lines = loess smoothers"
) +
theme_few(base_size = 12) +
theme(
legend.position = "top",
axis.text.x = element_text(angle = 45, hjust = 1),
plot.title = element_text(face = "bold"),
plot.caption = element_text(color = "grey50", size = 9)
)
Weekly U.S. Google Search Interest — Android, Windows & Apple (2021–2026). Source: Google Trends via gtrendsR.
search_df |>
mutate(
year = factor(year(date)),
week_of = yday(date)
) |>
ggplot(aes(x = week_of, y = hits, color = keyword)) +
geom_line(linewidth = 0.8, alpha = 0.85) +
scale_color_manual(values = brand_colors, name = "Brand") +
scale_x_continuous(
breaks = c(1, 91, 182, 274),
labels = c("Jan", "Apr", "Jul", "Oct")
) +
scale_y_continuous(limits = c(0, 105), breaks = seq(0, 100, 25)) +
facet_wrap(~ year, ncol = 3) +
labs(
title = "Annual Search Interest by Brand — One Panel Per Year",
subtitle = "Weekly relative search interest, indexed 0–100",
x = NULL,
y = "Search Interest (0–100)",
caption = "Source: Google Trends via gtrendsR"
) +
theme_few(base_size = 11) +
theme(
legend.position = "top",
plot.title = element_text(face = "bold"),
strip.text = element_text(face = "bold")
)
Weekly search interest by brand, faceted by calendar year.
peaks_df <- search_df |>
group_by(keyword) |>
slice_max(hits, n = 1, with_ties = FALSE) |>
ungroup()
ggplot(search_df, aes(x = date, y = hits, color = keyword)) +
geom_line(linewidth = 0.7, alpha = 0.7) +
geom_point(data = peaks_df, aes(x = date, y = hits),
size = 4, shape = 21, fill = "white", stroke = 2) +
geom_text(data = peaks_df,
aes(label = paste0(keyword, "\n(", hits, ")")),
hjust = 1.15, vjust = 0.5, nudge_x = -10,
size = 3.2, fontface = "bold", show.legend = FALSE) +
scale_color_manual(values = brand_colors, name = "Brand") +
scale_x_date(date_breaks = "6 months", date_labels = "%b %Y") +
scale_y_continuous(limits = c(0, 115), breaks = seq(0, 100, 25)) +
labs(
title = "Peak Search Interest Weeks — Android, Windows, Apple",
subtitle = "Circled points mark each brand's all-time peak within the five-year window",
x = NULL,
y = "Search Interest (0–100)",
caption = "Source: Google Trends via gtrendsR"
) +
theme_few(base_size = 12) +
theme(
legend.position = "top",
axis.text.x = element_text(angle = 45, hjust = 1),
plot.title = element_text(face = "bold")
)
Peak search week highlighted for each brand.
top_peak <- summary_tbl |> slice(1)
cat("Brand with highest peak:", as.character(top_peak$Brand), "\n")
## Brand with highest peak: Apple
cat("Peak interest score: ", top_peak$`Max Interest`, "\n")
## Peak interest score: 100
cat("Peak date: ", top_peak$`Peak Date`, "\n")
## Peak date: 2026-04-12
The brand reaching a score of 100 represents the single week of maximum consumer search attention in our dataset. Below are the key factors that drive peak interest for each brand:
| Brand | Peak Factor | Explanation |
|---|---|---|
| Apple | Annual fall hardware event | Apple’s September iPhone and iOS release cycle consistently drives the largest single-week spikes, as consumers research new features, upgrade eligibility, and compatibility (Gurman, 2023). |
| Android | Google I/O + flagship launches | The spring Google I/O developer conference combined with Samsung Galaxy S-series releases produces strong, predictable peaks each year (Kastrenakes, 2022). |
| Windows | Major OS feature updates | Enterprise patch cycles, Windows 11 feature updates (22H2, 23H2), and free upgrade availability prompt spikes among both business and consumer audiences (Warren, 2022). |
Key takeaway: Apple’s search peaks are the sharpest and most seasonal, driven by a single concentrated event each fall. Android interest builds more gradually around a spring product cycle, while Windows peaks are flatter and spread across the year, reflecting its enterprise-driven, update-cadence audience.
Over the five-year window (2021–2026), all three brands show cyclical patterns tied to product launches and operating-system update cycles. Apple (iOS) search interest peaks sharply each September around the annual iPhone and iOS release event, reflecting the company’s controlled release cadence. Android shows broader, sustained baseline interest consistent with its global market-share leadership (StatCounter, 2025), with secondary spikes tied to Google I/O and Samsung Galaxy launches. Windows interest fluctuates around major update announcements and enterprise refresh cycles, with a more muted but steady audience of business and power users.
An important structural difference helps explain the patterns we observe. iOS is proprietary to Apple — it runs exclusively on Apple-designed hardware, so every consumer searching for iOS, iPhone, or Apple products funnels into a single brand. By contrast, Android and Windows are not proprietary to any single manufacturer. Android powers devices from Samsung, Google, OnePlus, Motorola, and hundreds of other OEMs; Windows ships on hardware from Dell, HP, Lenovo, Asus, Microsoft Surface, and more. This means that consumer search interest in Android and Windows is inherently fragmented — a Samsung buyer may search “Samsung Galaxy” rather than “Android,” and a Dell buyer may search “Dell laptop” rather than “Windows.” Apple consolidates all of that attention under one brand name, which likely contributes to its higher and sharper search peaks relative to the actual size of its market share.
Marketers and product teams can use these patterns to time campaigns around known spike periods — aligning Apple/iOS advertising with the September event window, Android promotions with the spring Google I/O cycle, and Windows campaigns around fall feature-update announcements. For Android and Windows partners specifically, brand-level campaigns (e.g., Samsung, Dell) may reach consumers more effectively than OS-level terms alone.
Gurman, M. (2023). Apple’s annual September event: What to expect. Bloomberg Technology. https://www.bloomberg.com/technology
Kastrenakes, J. (2022). Google I/O 2022 recap. The Verge. https://www.theverge.com
StatCounter. (2025). Mobile operating system market share worldwide. https://gs.statcounter.com/os-market-share/mobile/worldwide
Sullivan, D. (2023). How Google Trends data works. Google Search Central Blog. https://developers.google.com/search
Warren, T. (2022). Windows 11 22H2: Everything new. The Verge. https://www.theverge.com
Massicotte, P., & Eddelbuettel, D. (2023). gtrendsR: Perform and display Google Trends queries [R package version 1.5.1]. https://CRAN.R-project.org/package=gtrendsR