Standard Ecommerce transactionCompleted Etkinliği

Data Layer 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.

AA

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. Genelde bu nesne yapısı hazır içerik yönetim ve e-ticaret sistemlerinde kullanılmaktadır. Ancak, eğer nesne içeriğini düzenleme yetkiniz var ise UA veya GA4 için geliştirilmiş e-ticaret yapısını kullanmanızı öneririm.

Google Analytics Transaction

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:

transactionCompleted

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 atabilirsiniz1.