İçeriğe geç

Google Tag Manager (GTM) Container Notifications ile Bildirimleri Yönetme

GTM’nin “Container Notifications” özelliği, container’larda yapılan değişiklikler hakkında bildirim almanızı sağlar.

12 Tem 20241 dk okuma

Bu yazıda

Google Tag Manager (GTM), etiketleri (tags) yönetmek ve web sitenizin veya mobil uygulamanızın performansını izlemek için kullanılan güçlü bir araçtır. Özellikle çok sayıda GTM hesabı yönetenler için, her bir container’ın değişikliklerinden haberdar olmak önemlidir. GTM’nin “Container Notifications” özelliği, container’larda yapılan değişiklikler hakkında bildirim almanızı sağlar.

GTM Container Notifications Nedir?

GTM Container Notifications, belirli bir container’da yapılan değişiklikler hakkında e-posta yoluyla bildirim almanızı sağlar. Bu özellik, bir container’da yeni bir etiket, tetikleyici veya değişken eklendiğinde, mevcut bir öğe güncellendiğinde veya silindiğinde sizi bilgilendirir. Bu sayede, GTM hesaplarınızda yapılan değişiklikleri anında takip edebilir ve gerekli önlemleri alabilirsiniz.

GTM Container Notifications’ı Nasıl Etkinleştirirsiniz?

Container Notifications’ı etkinleştirmek için, her bir container’ın ayarlarına gidip bu özelliği “Always” konumuna getirmeniz gerekir. Ancak, birçok GTM hesabı ve container yönetenler için bu işlem oldukça zaman alıcı olabilir. Aşağıdaki JavaScript kodu, tüm container’lar için bu işlemi otomatikleştirir.

Kod: Tüm GTM Container’lar için Container Notifications’ı Etkinleştirme

Aşağıdaki kod, bir döngü içinde tüm GTM container’larını ziyaret eder, ilgili select box’ları seçer ve form submit butonuna tıklar. Bu işlem, her container’ın notifications özelliğini “Always” konumuna getirir ve değişiklikler hakkında e-posta bildirimi almanızı sağlar.

async function processPage(url) {
    return new Promise((resolve, reject) => {
        window.location.href = url;
        
        const observer = new MutationObserver(function(mutations) {
            mutations.forEach(function(mutation) {
                if (document.querySelector('.blg-form-input > select')) {
                    observer.disconnect(); // Select box bulunduğunda gözlemciyi durdur

                    setTimeout(function() {
                        document.querySelectorAll('.blg-form-input > select').forEach(function(s) {
                            s.value = 'number:1';
                            var event = new Event('change');
                            s.dispatchEvent(event);
                        });

                        setTimeout(function() {
                            var button = document.querySelector('.btn.btn-action');
                            if (button) {
                                button.click();
                                setTimeout(resolve, 5000); // İşlem tamamlandıktan sonra 5 saniye bekleme
                            } else {
                                console.error('Button not found');
                                reject('Button not found');
                            }
                        }, 5000);
                    }, 5000);
                }
            });
        });

        observer.observe(document.body, {
            childList: true,
            subtree: true
        });
    });
}

async function processAllPages() {
    const urls = Array.from(document.querySelectorAll('.fill-cell.wd-container-name.md-gtm-theme')).map(e => e.href.replace('/#/container/accounts/', '/#/admin/accounts/') + '/notifications');

    for (const url of urls) {
        try {
            await processPage(url);
        } catch (error) {
            console.error('Error processing page:', error);
        }
    }

    console.log('All pages processed');
}

processAllPages();
SC

Sinan CAN

iLab Ventures’ta Head of Analytics.

Hakkımda