簡體   English   中英

使用 gtag (GA4) 手動生成 GA linker 參數

[英]Manually generate GA linker parameter with gtag (GA4)

背景

要將 client_id 從一個域傳遞到另一個域,Google 支持向作為跨域跟蹤設置一部分的傳出鏈接添加“鏈接器”參數。 這個 linker 參數包含client_idsession_id (我相信,關於 Google Ads 的信息,例如gclid )和一個基本的指紋 + 時間戳。 在接收域上,如果瀏覽器指紋匹配並且時間戳不是過去太遠,則傳遞的client_idsession_id將存儲在第二個域的第一方 cookie 中並隨后使用。

analytics.js / GA-UA

使用analytics.js (GA-UA),您可以輕松地執行以下操作,手動修飾 URL:

function decorateUrl(urlString) {
  var ga = window[window['GoogleAnalyticsObject']];
  var tracker;
  if (ga && typeof ga.getAll === 'function') {
    tracker = ga.getAll()[0]; // Uses the first tracker created on the page
    urlString = (new window.gaplugins.Linker(tracker)).decorate(urlString);
  }
  return urlString;
}

然而,當只加載 gtag 時, window.gawindow.gaplugins沒有定義。 據我所知,目前沒有記錄的方法來手動生成帶有 gtag 的 linker 參數的鏈接。

在 Google 的文檔中,他們建議手動設置 linker。 ( https://support.google.com/analytics/answer/10071811?hl=en#zippy=%2Cmanual-setup ) 但這有幾個缺點,例如我必須創建一個自定義的“指紋”邏輯(這樣修飾的 URL不共享),例如不包括 Google Ads 信息。 無論哪種方式,我都想使用內部 gtag 邏輯來修飾 URL。

“Hacky”解決方案

gtag a自動修飾標簽(只要它們被點擊),導致在 GA4 數據 stream 設置中指定的跨域跟蹤域(例如“test.com”),但我特別需要手動修飾 URL(即而不會立即重定向到他們)。 我考慮過執行以下操作:

  1. 創建一個假人,隱藏a標簽 URL 來裝飾
  2. 使用onclick='event.preventDefault();'防止重定向
  3. 模擬點擊隱藏元素,讓gtag自動在href屬性中添加linker url參數
  4. 提取新的 href 屬性
  5. 刪除隱藏元素
function decorateUrlGtag(urlString) {
  var tempAnchorEl = document.createElement("a");
  tempAnchorEl.setAttribute("type", "hidden");
  tempAnchorEl.setAttribute("href", urlString);
  tempAnchorEl.setAttribute("onclick", "event.preventDefault(); return false");
  document.body.appendChild(tempAnchorEl);
  tempAnchorEl.click();
  var urlWithLinker = tempAnchorEl.href;
  tempAnchorEl.remove();
  return urlWithLinker;
}

這也不起作用,因為 gtag 似乎沒有注冊tempAnchorEl.click(); 稱呼。 如果我手動單擊該鏈接,則 URL 會按預期進行裝飾。

建議的解決方案

此處概述的解決方案( Google Analytics gtag.js Manually adding the linker cross-domain parameter to URLs )對我也不起作用:

  1. 回答:即使啟動 gtag 后,我也看不到全局 ga 元素
  2. 答:同樣的問題(沒有定義ga

您是否 (1) 知道是否有一種方法可以使用我忽略的 gtag 手動生成 linker 參數,(2) 知道如何使我的“hacky”解決方案起作用或 (3) 有其他可能的解決方案?

我沒有摸索過這個解決方案,我不確定它是否直接回答了您的問題,但 Simo 確實在此處概述了如何配置 GA4 跨域跟蹤:

https://www.simoahava.com/gtm-tips/cross-domain-tracking-google-analytics-4/#how-to-configure-cross-domain-tracking-manually

他將問題分解為多個步驟,但沒有 go 非常詳細。 他提供了一個代碼片段:

“...您還可以將 URL 參數值直接加載到 GA4 配置中,例如:

gtag('config', 'G-12345', {
  // Namespace roll-up trackers
  cookie_prefix: 'roll-up',
  // Pull in the Client ID from the URL
  client_id: (new URLSearchParams(document.location.search)).get('client_id'),
  // Pull in the Session ID from the URL
  session_id: (new URLSearchParams(document.location.search)).get('session_id')  
});

希望有幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM