diff --git a/app/assets/javascripts/google_tag_manager/index.js b/app/assets/javascripts/google_tag_manager/index.js
index c8204f397ffd47a348242c53190cef9cfa4d87e5..ca5a1b29b6ded302c828145486e88100c27c00ff 100644
--- a/app/assets/javascripts/google_tag_manager/index.js
+++ b/app/assets/javascripts/google_tag_manager/index.js
@@ -290,3 +290,11 @@ export const trackCombinedGroupProjectForm = () => {
     pushEvent('combinedGroupProjectFormSubmit');
   });
 };
+
+export const trackCompanyForm = (aboutYourCompanyType) => {
+  if (!isSupported()) {
+    return;
+  }
+
+  pushEvent('aboutYourCompanyFormSubmit', { aboutYourCompanyType });
+};
diff --git a/ee/app/assets/javascripts/registrations/components/company_form.vue b/ee/app/assets/javascripts/registrations/components/company_form.vue
index 221ecc438ec91add0f33de61620e9372db054044..f78886931c95696b91c6c5274db3c1d506538db2 100644
--- a/ee/app/assets/javascripts/registrations/components/company_form.vue
+++ b/ee/app/assets/javascripts/registrations/components/company_form.vue
@@ -22,6 +22,7 @@ import {
   TRIAL_PHONE_DESCRIPTION,
   TRIAL_FORM_SUBMIT_TEXT,
 } from 'ee/trials/constants';
+import { trackCompanyForm } from '~/google_tag_manager';
 
 export default {
   csrf,
@@ -69,6 +70,9 @@ export default {
         ? this.$options.i18n.description.trial
         : this.$options.i18n.description.registration;
     },
+    aboutYourCompanyType() {
+      return this.trial ? 'ultimate_trial' : 'free_account';
+    },
   },
   methods: {
     toggleTrial() {
@@ -76,6 +80,9 @@ export default {
         trialOnboardingFlow: this.trialOnboardingFlow,
       });
     },
+    trackCompanyForm() {
+      trackCompanyForm(this.aboutYourCompanyType);
+    },
   },
   i18n: {
     companyNameLabel: LEADS_COMPANY_NAME_LABEL,
@@ -99,7 +106,7 @@ export default {
 </script>
 
 <template>
-  <gl-form :action="submitPath" method="post">
+  <gl-form :action="submitPath" method="post" @submit="trackCompanyForm">
     <input :value="$options.csrf.token" type="hidden" name="authenticity_token" />
     <gl-form-text class="gl-font-base gl-text-gray-400 gl-pb-3">{{ descriptionText }}</gl-form-text>
     <div class="gl-display-flex gl-flex-direction-column gl-sm-flex-direction-row gl-mt-5">
diff --git a/ee/app/controllers/registrations/company_controller.rb b/ee/app/controllers/registrations/company_controller.rb
index a579cfe9c6ab3cb86d5a8dcb134f7e26d7b4d45b..90a8b2d7f2e7391952525be7153ec3af6b408311 100644
--- a/ee/app/controllers/registrations/company_controller.rb
+++ b/ee/app/controllers/registrations/company_controller.rb
@@ -2,11 +2,17 @@
 
 module Registrations
   class CompanyController < ApplicationController
+    include OneTrustCSP
+    include GoogleAnalyticsCSP
+
     layout 'minimal'
 
     before_action :check_if_gl_com_or_dev
     before_action :authenticate_user!
     feature_category :onboarding
+    before_action only: [:new] do
+      push_frontend_feature_flag(:gitlab_gtm_datalayer, type: :ops)
+    end
 
     def new
     end
diff --git a/ee/app/views/registrations/company/new.html.haml b/ee/app/views/registrations/company/new.html.haml
index 3442ca876eea9c58fcc3ac785223b2319c79557c..8cdc2ec753a8187c285231877e2ad226d310cefd 100644
--- a/ee/app/views/registrations/company/new.html.haml
+++ b/ee/app/views/registrations/company/new.html.haml
@@ -1,4 +1,9 @@
 - page_title _('Start your Free Ultimate Trial')
+- content_for :page_specific_javascripts do
+  = render "layouts/google_tag_manager_head"
+  = render "layouts/one_trust"
+  = render "layouts/bizible"
+= render "layouts/google_tag_manager_body"
 
 .row
   .col-md-6.m-sm-6
diff --git a/ee/spec/views/registrations/company/new.html.haml_spec.rb b/ee/spec/views/registrations/company/new.html.haml_spec.rb
new file mode 100644
index 0000000000000000000000000000000000000000..107929656263a1667d109d59be31c44ed0da12dd
--- /dev/null
+++ b/ee/spec/views/registrations/company/new.html.haml_spec.rb
@@ -0,0 +1,39 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe 'registrations/company/new' do
+  describe 'Google Tag Manager' do
+    let!(:gtm_id) { 'GTM-WWKMTWS' }
+    let!(:google_url) { 'www.googletagmanager.com' }
+
+    subject { rendered }
+
+    before do
+      stub_devise
+      allow(Gitlab).to receive(:com?).and_return(true)
+      stub_config(extra: { google_tag_manager_id: gtm_id, google_tag_manager_nonce_id: gtm_id })
+      allow(view).to receive(:google_tag_manager_enabled?).and_return(gtm_enabled)
+
+      render
+    end
+
+    describe 'when Google Tag Manager is enabled' do
+      let(:gtm_enabled) { true }
+
+      it { is_expected.to match(/#{google_url}/) }
+    end
+
+    describe 'when Google Tag Manager is disabled' do
+      let(:gtm_enabled) { false }
+
+      it { is_expected.not_to match(/#{google_url}/) }
+    end
+  end
+
+  def stub_devise
+    allow(view).to receive(:devise_mapping).and_return(Devise.mappings[:user])
+    allow(view).to receive(:resource).and_return(spy)
+    allow(view).to receive(:resource_name).and_return(:user)
+  end
+end
diff --git a/spec/frontend/google_tag_manager/index_spec.js b/spec/frontend/google_tag_manager/index_spec.js
index 6a7eb1fd9f10f2d5b4e2c4557a0852be06cbdc25..9c4b23e3a7040e6a3489f0394ac0a09d75a9a21c 100644
--- a/spec/frontend/google_tag_manager/index_spec.js
+++ b/spec/frontend/google_tag_manager/index_spec.js
@@ -15,6 +15,7 @@ import {
   trackTransaction,
   trackAddToCartUsageTab,
   getNamespaceId,
+  trackCompanyForm,
 } from '~/google_tag_manager';
 import { setHTMLFixture, resetHTMLFixture } from 'helpers/fixtures';
 import { logError } from '~/lib/logger';
@@ -440,6 +441,34 @@ describe('~/google_tag_manager/index', () => {
         });
       });
     });
+
+    describe('when trackCompanyForm is invoked', () => {
+      it('with an ultimate trial', () => {
+        expect(spy).not.toHaveBeenCalled();
+
+        trackCompanyForm('ultimate_trial');
+
+        expect(spy).toHaveBeenCalledTimes(1);
+        expect(spy).toHaveBeenCalledWith({
+          event: 'aboutYourCompanyFormSubmit',
+          aboutYourCompanyType: 'ultimate_trial',
+        });
+        expect(logError).not.toHaveBeenCalled();
+      });
+
+      it('with a free account', () => {
+        expect(spy).not.toHaveBeenCalled();
+
+        trackCompanyForm('free_account');
+
+        expect(spy).toHaveBeenCalledTimes(1);
+        expect(spy).toHaveBeenCalledWith({
+          event: 'aboutYourCompanyFormSubmit',
+          aboutYourCompanyType: 'free_account',
+        });
+        expect(logError).not.toHaveBeenCalled();
+      });
+    });
   });
 
   describe.each([