미디어위키:Common.js: 두 판 사이의 차이

편집 요약 없음
편집 요약 없음
32번째 줄: 32번째 줄:
if (!wcs_add) var wcs_add = {};
if (!wcs_add) var wcs_add = {};
wcs_add['wa'] = 'ab0e0ecee3c040';
wcs_add['wa'] = 'ab0e0ecee3c040';
//Google Analytics
var GoogleCdn = document.createElement('script');
GoogleCdn.src = 'https://www.googletagmanager.com/gtag/js?id=G-YGT3D2Q9QW';
document.body.appendChild(GoogleCdn);
window.dataLayer = window.dataLayer || [];
function gtag() {
    dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'G-YGT3D2Q9QW');


/* TOP 버튼 */
/* TOP 버튼 */
339번째 줄: 328번째 줄:
langDiv.insertAdjacentHTML('afterbegin', navHTML);
langDiv.insertAdjacentHTML('afterbegin', navHTML);
}
}
/* GA4: single ID + language tagging (MediaWiki 1.42.3) */
(function () {
// 중복 로드 방지
if (window.__GA4_LOADED__) return;
window.__GA4_LOADED__ = true;
var GA_ID = 'G-YGT3D2Q9QW';
// 언어 결정: 가장 신뢰도 높은 wgContentLanguage, 없으면 경로 프리픽스로 보완
var pathLang = (location.pathname.split('/')[1] || '').toLowerCase();
var lang = (mw.config && mw.config.get('wgContentLanguage'))
        || (['en','es','ko'].includes(pathLang) ? pathLang : 'ko');
console.log('GA4', lang);
// <head>에 gtag 로더 삽입
var s = document.createElement('script');
s.async = true;
s.src = 'https://www.googletagmanager.com/gtag/js?id=' + encodeURIComponent(GA_ID);
document.head.appendChild(s);
window.dataLayer = window.dataLayer || [];
function gtag(){ dataLayer.push(arguments); }
window.gtag = gtag;
gtag('js', new Date());
// page_view 설정: 언어 서브디렉터리 포함 경로를 명시
gtag('config', GA_ID, {
page_path: location.pathname + location.search
});
// 언어를 사용자 속성으로 항상 전송(보고서에서 맞춤차원으로 필터)
gtag('set', 'user_properties', { site_language: lang });
// (선택) 콘텐츠 그룹도 언어로 고정해두면 탐색에서 편함
// gtag('event', 'page_view', { content_group: lang }); // 필요 시 사용
})();