Skip to content

Commit

Permalink
Introducing micrositeGoogleAnalytics4Token and the corresponding conf…
Browse files Browse the repository at this point in the history
…ig.identity.googleAnalytics4
  • Loading branch information
blast-hardcheese committed Oct 25, 2023
1 parent 56d3b09 commit a2a806e
Show file tree
Hide file tree
Showing 5 changed files with 30 additions and 4 deletions.
6 changes: 6 additions & 0 deletions microsite/docs/docs/settings.md
Expand Up @@ -130,6 +130,12 @@ micrositeGitHostingUrl := "https://gitlab.com/gitlab-org/gitlab-ce"
micrositeAnalyticsToken := 'UA-XXXXX-Y'
```

- `micrositeGoogleAnalytics4Token`: Property id of Google Analytics 4 (GA4). This is empty by default.

```scala
micrositeGoogleAnalytics4Token := 'G-XXXXXXXXXX'
```

- `micrositeGithubLinks`: This setting defines whether to show/hide GitHub links for stars and forks in docs layout. By default, it is enabled.

```scala
Expand Down
7 changes: 6 additions & 1 deletion src/main/scala/microsites/MicrositeKeys.scala
Expand Up @@ -187,6 +187,10 @@ trait MicrositeKeys {
settingKey[String](
"Optional. Add your legacy Universal Access (UA-...) property id of Google Analytics to add a Google Analytics tracker"
)
val micrositeGoogleAnalytics4Token: SettingKey[String] =
settingKey[String](
"Optional. Add your Google Analytics 4 (GA4, G-...) property id of Google Analytics to add a Google Analytics tracker"
)
val micrositeGitterChannel: SettingKey[Boolean] = settingKey[Boolean](
"Optional. Includes Gitter sidecar Chat functionality. Enabled by default."
)
Expand Down Expand Up @@ -338,7 +342,8 @@ trait MicrositeAutoImportSettings extends MicrositeKeys {
organizationHomepage = micrositeOrganizationHomepage.value,
twitter = micrositeTwitter.value,
twitterCreator = micrositeTwitterCreator.value,
analytics = micrositeAnalyticsToken.value
analytics = micrositeAnalyticsToken.value,
googleAnalytics4 = micrositeGoogleAnalytics4Token.value
),
visualSettings = MicrositeVisualSettings(
highlightTheme = micrositeHighlightTheme.value,
Expand Down
14 changes: 13 additions & 1 deletion src/main/scala/microsites/layouts/Layout.scala
Expand Up @@ -59,7 +59,7 @@ abstract class Layout(config: MicrositeSettings) {
metas,
favicons,
styles
))
)) ++ ganalytics4

val ganalytics: Option[TypedTag[String]] =
if (config.identity.analytics.nonEmpty)
Expand Down Expand Up @@ -206,6 +206,18 @@ abstract class Layout(config: MicrositeSettings) {
cssStyles ++ customCssList ++ customScssList ++ customCDNList ++ ganalytics.toList
}

val ganalytics4: List[TypedTag[String]] =
if (config.identity.googleAnalytics4.nonEmpty)
List(
script(attr("async") := "async", attr("src") := s"https://www.googletagmanager.com/gtag/js?id=${config.identity.googleAnalytics4}"),
script(s"""
|window.dataLayer = window.dataLayer || [];
|function gtag(){dataLayer.push(arguments);}
|gtag('js', new Date());
|gtag('config', '${config.identity.googleAnalytics4}');
""".stripMargin))
else Nil

def scripts: List[TypedTag[String]] = {

val customJsList =
Expand Down
3 changes: 2 additions & 1 deletion src/main/scala/microsites/microsites.scala
Expand Up @@ -26,7 +26,8 @@ case class MicrositeIdentitySettings(
organizationHomepage: String,
twitter: String,
twitterCreator: String,
analytics: String
analytics: String,
googleAnalytics4: String,
)

case class MicrositeFileLocations(
Expand Down
4 changes: 3 additions & 1 deletion src/test/scala/microsites/util/Arbitraries.scala
Expand Up @@ -122,6 +122,7 @@ trait Arbitraries {
twitter <- Arbitrary.arbitrary[String]
twitterCreator <- Arbitrary.arbitrary[String]
analytics <- Arbitrary.arbitrary[String]
googleAnalytics4 <- Arbitrary.arbitrary[String]
highlightTheme <- Arbitrary.arbitrary[String]
highlightLanguages <- Arbitrary.arbitrary[Seq[String]]
theme <- Arbitrary.arbitrary[String]
Expand Down Expand Up @@ -166,7 +167,8 @@ trait Arbitraries {
organizationHomepage,
twitter,
twitterCreator,
analytics
analytics,
googleAnalytics4
),
MicrositeVisualSettings(
highlightTheme,
Expand Down

0 comments on commit a2a806e

Please sign in to comment.