Data Layer Nedir? başlıklı yazımda standard ecommerce başlığı altında tablo olarak da ilettiğim ve örnekle açıkladığım transaction işlemine yani transactionCompleted olayını biraz daha detaylandırmak istiyorum. Standard ecommerce yerine enhanced ecommerce kullanımları içerisinde de elbette transaction konusuna değindim, dilerseniz o yazıya da geçiş yapabilirsiniz.

Standart E-Ticaret İşlemi (transactionCompleted)

Bir standard ecommerce olayı / etkinliği olan transactionCompleted ödeme adımlarının sonunda ödeme işleminin başarılı bir şekilde gerçekleşmesi durumunda tetiklenen, ödemesi yapılan ürünler ve ödeme detaylarının Google Analytics E-Ticaret raporları çerçevesinde değerlendirilebilmesini sağlayan veri katmanıdır.

Katman dahilinde zorunlu alanlardan biri olan benzersiz işlem değeri (transactionId) siparişin diğer siparişlerden ayrılmasını sağlar. Siparişin toplam tutarı (transactionTotal) yine bir diğer zorunlu alanımızdır. Bu iki değerin yanı sıra ürün listesi içerisinde (transactionProducts) de benzersiz ürün stok kodu (sku), ürün adı (name), ürün fiyatı (price) ve ürün adedi (quantity) zorunlu alanladır. Ürün listesi içerisinde dizi olarak 1 veya daha fazla ürün listelenebilir. Örnek kullanımı şu şekildedir:

window.dataLayer = window.dataLayer || [];
 
window.dataLayer.push({
        'transactionId': '[benzersiz-islem-id]', // Transaction ID - Tip: String - Gerekli
        'transactionAffiliation': '[magaza-ya-da-satis-kanali]', // Mağaza ya da Satış Kanalı Bilgisi / Adı - Tip: String - Opsiyonel
        'transactionTotal': [toplam-tutar], // Toplam İşlem Tutarı - Tip: Numeric - Gerekli
        'transactionTax': 2, // Vergi Tutarı - Tip: Numeric - Opsiyonel
        'transactionShipping': 2, // Kargo Tutarı - Tip: Numeric - Opsiyonel
        'transactionProducts': [{
            'sku': '[urun-stok-kodu]', // Ürün SKU - Tip: String - Gerekli
            'name': '[urun-adi]', // Ürün Adı - Tip: String - Gerekli
            'category': '[urun-kategorisi]', // Ürün Kategorisi - Tip: String - Opsiyonel
            'price': [urun-fiyati], // [urun-fiyati] - Tip: Numeric - Gerekli
            'quantity': [urun-adedi] // Ürün Adedi - Tip: Numeric - Gerekli
        },{
            'sku': '[urun-stok-kodu]', // Ürün SKU - Tip: String - Gerekli
            'name': '[urun-adi]', // Ürün Adı - Tip: String - Gerekli
            'category': '[urun-kategorisi]', // Ürün Kategorisi - Tip: String - Opsiyonel
            'price': [urun-fiyati], // [urun-fiyati] - Tip: Numeric - Gerekli
            'quantity': [urun-adedi] // Ürün Adedi - Tip: Numeric - Gerekli
        },{
            // diğer ürün bilgileri...
        }]
});

Standard ecommerce üzerinden işlem yürütmek istediğinizde Google Tag Manager taşıyıcınızda yeni bir Google Analytics tag kurulumu yapmanız ve İzleme Türü (TRACK_TRANSACTION) olarak İşlem (Transaction) seçeneğini seçmeniz gerekmektedir.

Aksi durumda olay Google Analytics’e iletilmeyecektir. Örnek olarak aşağıdaki kodu inceleyebilirsiniz. Elbette ilgili data layer işlemlerinin GTM snippet öncesinde gerçekleştirilmesi gerektiğini unutmamalıyız.

dataLayer.push({
        'transactionId': 123,
        'transactionAffiliation': 'Amazon',
        'transactionTotal': 21,
        'transactionTax': 2,
        'transactionShipping': 2,
        'transactionProducts': [{
            'sku': 456,
            'name': 'Ürün 1',
            'category': 'Clothes/T-Shirts/Men/Sleeveless/Used',
            'price': 3,
            'quantity': 1
        },{
            'sku': 789,
            'name': 'Ürün 2',
            'category': 178,
            'price': 7,
            'quantity': 2
        }]
});

Örnek kod uygulandığı ve sayfa görüntülendiği (PageView / gtm.js) anda bilgiler Google Analytics’e iletilecektir. Elbette Firing Triggers olarak PageView (örneğin Page URL > /tesekkur/ ya da /checkout/success/ vb.) seçimini yaptığınızı varsayıyorum. Ardından, iletilen bilgileri Google Analytics > Hesap > Mülk > Görünüm > Dönüşümler > E-ticaret > Genel Bakış, Ürün Performansı ve Satış Performansı raporları sayesinde görüntüleyebilirsiniz.

Ek bir detaydan daha bahsetmek istiyorum. İlgili veri katmanlarını etkinliklerle de ilişkilendirebilirsiniz. Yani, yukarıdaki örneği ele alalım ve bu bilgileri gtm etkinlikleri (gtm.js, gtm.load veya gtm.dom) ile değil de transactionCompleted ile ilişkilendirelim.

dataLayer.push({
        'transactionId': 123,
        'transactionAffiliation': 'Amazon',
        'transactionTotal': 21,
        'transactionTax': 2,
        'transactionShipping': 2,
        'transactionProducts': [{
            'sku': 456,
            'name': 'Ürün 1',
            'category': 'Clothes/T-Shirts/Men/Sleeveless/Used',
            'price': 3,
            'quantity': 1
        },{
            'sku': 789,
            'name': 'Ürün 2',
            'category': 178,
            'price': 7,
            'quantity': 2
        }],
        "event": "transactionCompleted"
});

Bu sayede veri katmanımız yüklenmiş olsa dahi ilgili etkinlik yakalanmadığı sürece İzleme Türü (TRACK_TRANSACTION) olarak İşlem (Transaction) belirlemiş olsanız ve bu etiket çalışmış olsa dahi içeriğimiz Google Analytics’e iletilmez. Örnek kodu "event": "transactionCompleted" birlikte güncelleyecek olursak:

Evet, kodumuzu yine GTM snippet öncesine yerleştirelim ve sayfamızı yenileyelim. Google Analytics raporlarında bir değişiklik olmadığını görebilirsiniz. Ardından GTM taşıyıcınızda ilgili etkinliği yakalamak için Firing Triggers altında Özel Etkinlik olarak bu etkinliği tanımlayın ve sayfayı tekrar yenileyin. Etkinliğin yakalanmasıyla birlikte bilgilerin raporlara yansıdığını göreceksiniz.

Standard ecommerce ile ilgili alanlar ve rapor içeriklerine dair daha detaylı bilgi almak için Analytics Help > About Ecommerce sayfasına göz atabilirsiniz.

One reply on “Standard Ecommerce transactionCompleted Etkinliği

Leave a Reply