1 Introduction

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).


2 Setup

2.1 Load Libraries

# 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

3 Data Collection

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…

4 Exploratory Summary

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)
Five-Year Search Interest Summary (US, 2021–2026)
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

5 Visualizations

5.1 Comparative Trend Lines (2021–2026)

# 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.

Weekly U.S. Google Search Interest — Android, Windows & Apple (2021–2026). Source: Google Trends via gtrendsR.

5.2 Search Interest by Year (Faceted)

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.

Weekly search interest by brand, faceted by calendar year.

5.3 Peak Search Interest — Highlighted

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.

Peak search week highlighted for each brand.


6 Findings

6.1 Which Brand Had the Highest Peak?

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

6.2 Factors Driving Peak Search Interest

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.


7 Conclusion

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.


8 References