diff --git a/config/events/view_admin_geo_settings_pageload.yml b/config/events/view_admin_geo_settings_pageload.yml
new file mode 100644
index 0000000000000000000000000000000000000000..f0c3fc5f43ad5251b6c0e75d328bcb59de2fc99d
--- /dev/null
+++ b/config/events/view_admin_geo_settings_pageload.yml
@@ -0,0 +1,15 @@
+---
+description: Tracks pageviews for the admin geo settings page
+internal_events: true
+action: view_admin_geo_settings_pageload
+identifiers:
+- user
+product_group: personal_productivity
+milestone: '17.2'
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157498
+distributions:
+- ce
+- ee
+tiers:
+- premium
+- ultimate
diff --git a/config/metrics/counts_28d/count_distinct_user_id_from_view_admin_geo_settings_pageload_monthly.yml b/config/metrics/counts_28d/count_distinct_user_id_from_view_admin_geo_settings_pageload_monthly.yml
new file mode 100644
index 0000000000000000000000000000000000000000..c3ca21fb780cb071ce29832c751abef78461755d
--- /dev/null
+++ b/config/metrics/counts_28d/count_distinct_user_id_from_view_admin_geo_settings_pageload_monthly.yml
@@ -0,0 +1,21 @@
+---
+key_path: redis_hll_counters.count_distinct_user_id_from_view_admin_geo_settings_pageload_monthly
+description: Monthly count of unique users who visited the admin geo settings page
+product_group: personal_productivity
+performance_indicator_type: []
+value_type: number
+status: active
+milestone: '17.2'
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157498
+time_frame: 28d
+data_source: internal_events
+data_category: optional
+distribution:
+- ce
+- ee
+tier:
+- premium
+- ultimate
+events:
+- name: view_admin_geo_settings_pageload
+  unique: user.id
diff --git a/config/metrics/counts_28d/count_total_view_admin_geo_settings_pageload_monthly.yml b/config/metrics/counts_28d/count_total_view_admin_geo_settings_pageload_monthly.yml
new file mode 100644
index 0000000000000000000000000000000000000000..61dcdf5d86df8e433a56deb1a1cc457538c3cc44
--- /dev/null
+++ b/config/metrics/counts_28d/count_total_view_admin_geo_settings_pageload_monthly.yml
@@ -0,0 +1,20 @@
+---
+key_path: counts.count_total_view_admin_geo_settings_pageload_monthly
+description: Monthly count of total users who visited the admin geo settings page
+product_group: personal_productivity
+performance_indicator_type: []
+value_type: number
+status: active
+milestone: '17.2'
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157498
+time_frame: 28d
+data_source: internal_events
+data_category: optional
+distribution:
+- ce
+- ee
+tier:
+- premium
+- ultimate
+events:
+- name: view_admin_geo_settings_pageload
diff --git a/config/metrics/counts_7d/count_distinct_user_id_from_view_admin_geo_settings_pageload_weekly.yml b/config/metrics/counts_7d/count_distinct_user_id_from_view_admin_geo_settings_pageload_weekly.yml
new file mode 100644
index 0000000000000000000000000000000000000000..03912cb5cdc86819a676130cf49743771bfca970
--- /dev/null
+++ b/config/metrics/counts_7d/count_distinct_user_id_from_view_admin_geo_settings_pageload_weekly.yml
@@ -0,0 +1,21 @@
+---
+key_path: redis_hll_counters.count_distinct_user_id_from_view_admin_geo_settings_pageload_weekly
+description: Weekly count of unique users who visited the admin geo settings page
+product_group: personal_productivity
+performance_indicator_type: []
+value_type: number
+status: active
+milestone: '17.2'
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157498
+time_frame: 7d
+data_source: internal_events
+data_category: optional
+distribution:
+- ce
+- ee
+tier:
+- premium
+- ultimate
+events:
+- name: view_admin_geo_settings_pageload
+  unique: user.id
diff --git a/config/metrics/counts_7d/count_total_view_admin_geo_settings_pageload_weekly.yml b/config/metrics/counts_7d/count_total_view_admin_geo_settings_pageload_weekly.yml
new file mode 100644
index 0000000000000000000000000000000000000000..c35627a2dbb8d1c196e880325f7757d8df8ebc3a
--- /dev/null
+++ b/config/metrics/counts_7d/count_total_view_admin_geo_settings_pageload_weekly.yml
@@ -0,0 +1,20 @@
+---
+key_path: counts.count_total_view_admin_geo_settings_pageload_weekly
+description: Weekly count of total users who visited the admin geo settings page
+product_group: personal_productivity
+performance_indicator_type: []
+value_type: number
+status: active
+milestone: '17.2'
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157498
+time_frame: 7d
+data_source: internal_events
+data_category: optional
+distribution:
+- ce
+- ee
+tier:
+- premium
+- ultimate
+events:
+- name: view_admin_geo_settings_pageload
diff --git a/ee/app/assets/javascripts/geo_settings/components/app.vue b/ee/app/assets/javascripts/geo_settings/components/app.vue
index 20d6f0099a3e62cd69b7e8f2773867837f1c1305..38c4112caa35c717e6ba84f25a44febe0e23a49e 100644
--- a/ee/app/assets/javascripts/geo_settings/components/app.vue
+++ b/ee/app/assets/javascripts/geo_settings/components/app.vue
@@ -3,6 +3,8 @@ import { GlLoadingIcon } from '@gitlab/ui';
 // eslint-disable-next-line no-restricted-imports
 import { mapActions, mapState } from 'vuex';
 import { s__ } from '~/locale';
+import { VIEW_ADMIN_GEO_SETTINGS_PAGELOAD } from 'ee/geo_settings/constants';
+import { InternalEvents } from '~/tracking';
 import GeoSettingsForm from './geo_settings_form.vue';
 
 export default {
@@ -17,12 +19,16 @@ export default {
     GlLoadingIcon,
     GeoSettingsForm,
   },
+  mixins: [InternalEvents.mixin()],
   computed: {
     ...mapState(['isLoading']),
   },
   created() {
     this.fetchGeoSettings();
   },
+  mounted() {
+    this.trackEvent(VIEW_ADMIN_GEO_SETTINGS_PAGELOAD);
+  },
   methods: {
     ...mapActions(['fetchGeoSettings']),
   },
diff --git a/ee/app/assets/javascripts/geo_settings/constants.js b/ee/app/assets/javascripts/geo_settings/constants.js
index fe8ca2dec7ea4e242429e87c44ee58aab01f4c52..409bc5e4f019ba7cd5601aa8ec1a944fe6d1a27c 100644
--- a/ee/app/assets/javascripts/geo_settings/constants.js
+++ b/ee/app/assets/javascripts/geo_settings/constants.js
@@ -5,3 +5,5 @@ export const FORM_VALIDATION_FIELDS = {
   TIMEOUT: 'timeout',
   ALLOWED_IP: 'allowedIp',
 };
+
+export const VIEW_ADMIN_GEO_SETTINGS_PAGELOAD = 'view_admin_geo_settings_pageload';