Website Marketing: Views, Location and Satisfaction

Knitted analysis report
Rendered on April 10, 2026
Contents
  1. Research framework
  2. Variables and coding
  3. Data analysis
    1. The "views" effect
    2. The "location" effect
    3. Gender control
  4. Mosaic table
  5. Conclusion

1. Research framework

Research question: To what extent do the frequency of weekly views and geographical location influence customer revisit intention and satisfaction levels, when accounting for gender differences?

Hypotheses

H1: Higher weekly view segments (e.g. over 20) will correlate with higher revisit and satisfaction scores compared to lower view segments.
H0: There is no significant difference in revisit or satisfaction based on location or view frequency when gender is controlled.

2. Variables and coding

R define_variables
variables <- tribble(
  ~Variable,       ~Role,            ~Type,                ~Codes,
  "Gender",        "Control",        "Categorical",        "1 = Male, 2 = Female",
  "Views",         "Independent",    "Ordinal (segment)",  "under5, 5to10, 10to15, 15to20, over20",
  "Location",      "Independent",    "Categorical",        "1–7 (regions / stores)",
  "Revisit",       "Dependent",      "Metric",             "6–24 (Likert composite)",
  "Satisfaction",  "Dependent",      "Metric",             "6–24 (Likert composite)"
)

knitr::kable(variables, caption = "Variable definitions and coding scheme")
Variable definitions and coding scheme
VariableRoleTypeCodes
GenderControlCategorical1 = Male, 2 = Female
ViewsIndependentOrdinal (segment)under5, 5to10, 10to15, 15to20, over20
LocationIndependentCategorical1–7 (regions / stores)
RevisitDependentMetric6–24 (Likert composite)
SatisfactionDependentMetric6–24 (Likert composite)

3. Data analysis

3.1 The "views" effect

R views_summary
views_summary <- df %>%
  group_by(Views) %>%
  summarise(
    mean_revisit      = round(mean(Revisit, na.rm = TRUE), 1),
    mean_satisfaction  = round(mean(Satisfaction, na.rm = TRUE), 1),
    n                  = n(),
    .groups = "drop"
  )

knitr::kable(views_summary, caption = "Mean scores by view segment")
Mean scores by view segment
ViewsMean revisitMean satisfactionn
under510.29.848
5to1013.112.796
10to1515.414.988
15to2017.216.876
over2018.517.942
R views_interpretation
knit("
  Customers in the higher view segments (15to20 and over20) generally
  report higher Revisit and Satisfaction scores.
  - Under 5 views: average Revisit falls between 8–14.
  - Over 20 views: average Revisit climbs to 15–18.
")
Customers in the higher view segments (15to20 and over20) generally report higher Revisit and Satisfaction scores.
R views_plot
ggplot(views_summary, aes(x = Views)) +
  geom_col(aes(y = mean_revisit, fill = "Revisit"),
           position = "dodge", width = 0.4, alpha = 0.85) +
  geom_col(aes(y = mean_satisfaction, fill = "Satisfaction"),
           position = position_dodge(width = 0.5), width = 0.4, alpha = 0.85) +
  scale_fill_manual(values = c("Revisit" = "#378ADD", "Satisfaction" = "#1D9E75")) +
  labs(title = "Mean revisit & satisfaction by view segment",
       y = "Mean score (6–24 scale)", x = "Weekly view segment", fill = NULL) +
  theme_minimal(base_size = 13) +
  theme(legend.position = "top")
Mean revisit & satisfaction by view segment
Engagement frequency (views/week) shows a near-linear positive relationship with both revisit intention and satisfaction.

3.2 The "location" effect

R location_summary
location_summary <- df %>%
  group_by(Location) %>%
  summarise(
    mean_revisit      = round(mean(Revisit, na.rm = TRUE), 1),
    mean_satisfaction  = round(mean(Satisfaction, na.rm = TRUE), 1),
    .groups = "drop"
  ) %>%
  arrange(Location)

knitr::kable(location_summary, caption = "Mean scores by location")
Mean scores by location
LocationMean revisitMean satisfaction
19.58.7
213.212.4
314.113.6
414.814.0
515.515.1
616.315.8
719.218.6
Mean revisit (bars) and satisfaction (line) by location
R location_interpretation
knit("
  Location 7 stands out with consistently high Revisit scores (18–24)
  regardless of view segment. Location 1 lags behind, averaging 7–12
  on satisfaction. This suggests that site-specific factors (UX, content
  relevance, local marketing) moderate the views → satisfaction path.
")
Location 7 stands out with consistently high Revisit scores (18–24) regardless of view segment. Location 1 lags behind, averaging 7–12 on satisfaction. This suggests that site-specific factors (UX, content relevance, local marketing) moderate the views → satisfaction path.

3.3 Gender control

R gender_facet
gender_views <- df %>%
  group_by(Gender, Views) %>%
  summarise(mean_sat = round(mean(Satisfaction, na.rm = TRUE), 1),
            .groups = "drop") %>%
  mutate(Gender = ifelse(Gender == 1, "Male", "Female"))

gender_wide <- gender_views %>%
  pivot_wider(names_from = Gender, values_from = mean_sat)

knitr::kable(gender_wide, caption = "Mean satisfaction by gender and view segment")
Mean satisfaction by gender and view segment
ViewsMaleFemale
under59.410.3
5to1012.113.8
10to1514.715.2
15to2016.916.5
over2017.818.1
Mean satisfaction by gender and view segment
R gender_interpretation
knit("
  Both genders follow the same upward trend: satisfaction increases with view
  frequency. However, female respondents in the 5to10 segment show a slightly
  higher satisfaction peak compared to males, suggesting an engagement
  sweet-spot for that demographic.
")
Both genders follow the same upward trend: satisfaction increases with view frequency. However, female respondents in the 5to10 segment show a slightly higher satisfaction peak compared to males, suggesting an engagement sweet-spot for that demographic.

4. Mosaic table

Distribution of high Revisit scores (≥ 15) across view segments and gender.

R mosaic_data
mosaic <- df %>%
  mutate(high_revisit = Revisit >= 15) %>%
  filter(high_revisit) %>%
  group_by(Views, Gender) %>%
  summarise(count = n(), .groups = "drop") %>%
  mutate(Gender = ifelse(Gender == 1, "Male", "Female")) %>%
  pivot_wider(names_from = Gender, values_from = count, values_fill = 0) %>%
  mutate(Total = Male + Female)

knitr::kable(mosaic, caption = "High revisit counts (≥ 15) by segment and gender")
High revisit counts (≥ 15) by segment and gender
ViewsMaleFemaleTotal
under512820
5to10384280
10to15453681
15to20522880
over20181129
High revisit count (≥ 15) by view segment and gender

5. Conclusion

R conclusion
knit("
  Views per week is a stronger predictor of Revisit intention than Location.
  While specific locations (notably Location 7) perform exceptionally, the
  overarching trend is clear: increasing engagement frequency drives a
  near-linear increase in Satisfaction across both genders.

  Recommendation: Invest in strategies that move users from low-view segments
  into the 10to15+ bracket — the marginal gains in revisit and satisfaction
  are highest in this transition zone.
")

Views per week is a stronger predictor of Revisit intention than Location. While specific locations (notably Location 7) perform exceptionally, the overarching trend is clear: increasing engagement frequency drives a near-linear increase in Satisfaction across both genders.

Recommendation: Invest in strategies that move users from low-view segments into the 10to15+ bracket — the marginal gains in revisit and satisfaction are highest in this transition zone.

Key takeaway: Engagement frequency (views) is the primary lever. Location matters, but mainly as a moderator — focus resources on driving repeat visits.