E-ticaret verilerinin iletimi
Önemli
JavaScript API'siyle çalışmak için HTML ve JavaScript'le çalışma tecrübesine sahip olmak gerekir. Bu konuda tecrübeniz yoksa sitenizin geliştiricisine veya yöneticisine başvurmanızı öneririz.
Veri taşıyıcısı ve Metrica'ya aktarımı hakkında
E-ticaret ortamında her bir ürün, üzerinde belirli işlemlerin yapıldığı birer objedir. Ürünün detaylı açıklamasının görüntülenmesi veya sepete koyulması bu eylemlere örnektir. Bu veriler eylemin kimlik belirleyicisini ve eylemin yapıldığı ürünlerin açıklamalarının listesini içeren JavaScript objeleri olarak aktarılır. JavaScript API'siyle bağlantılı olarak bu tür objelere E-ticaret objeleri diyelim.
Ecommerce nesneleri olarak Yandex Metrica’ya veri iletmek için, bunları JavaScript dizisi window.dataLayer
içinde küresel ad alanında (window) push yöntemiyle eklemeniz gerekir. Bu diziye veri taşıyıcısı diyelim.
Dikkat
Ziyaretçinin web sitesinin başka bir sayfasına geçmesi anından itibaren verileri aktarmayın. Örneğin, onclick
eyleminin kullanılırken “Sipariş ver” butonunda. Bu durumda sonraki sayfa, sayaç kodu verileri Yandex Metrica’ya iletmeden daha önce yüklenebilir. Sonuç olarak, eylem bilgileri kaybolacaktır.
Veri taşıyıcı, global ad alanında bulunmalıdır ve adı sayaç ayarlama veya başlatma işlemi sırasında belirtilen ad ile aynı olmalıdır. Veri taşıyıcısının adı dataLayer
ise ya da çalıştırılan Yandex Metrica sayacının ecommerce parametresinin değeri true
ise veri taşıyıcılığının, window.dataLayer
dizisi tarafından üstlenildiği varsayılır.
<script type="text/javascript">
// Code snippet initializing
ym(XXXXXX, 'init', {
...
// If ecommerce setting is enabled during initialization, data container will always be window.dataLayer
// If the setting is enabled via interface, name can be changed in tag settings
ecommerce: true
...
});
// Data container (JavaScript array) in global namespace (window)
window.dataLayer = window.dataLayer || [];
</script>
...
<script type="text/javascript">
// We use push method to add an Ecommerce object
window.dataLayer.push(
// Ecommerce object
{
"ecommerce": {
...
"currencyCode": "RUB",
"<actionType>": {
"actionField": <actionField>,
"products" : [<productFieldObject>, <productFieldObject>, ...]
}
...
}
}
);
</script>
Veri taşıyıcısının ismi ve buna yerleştirilen E-Ticaret objelerinin yapısı, Google Analytics Enhanced Ecommerce'teki benzer varlıklara denk gelir. Böylece Global Site Tag üzerinden de dahil olmak üzere Google Analytics Enhanced Ecommerce'a veri gönderimi ayarlamanın yanı sıra ayrıca Yandex Metrica'da E-Ticaret özelliğini de çalıştırdıysanız Yandex Metrica da ilgili veriler toplanmaya başlar. Ayrıca Metrica, E-ticaret (GA4)'ü destekler ve ek bir ayar yapmaya gerek olmadan verileri toplar.
Dikkat
Veri taşıyıcı maksimum 8192 karakter içerebilir.
Konteynerde daha fazla veri aktarıyorsanız, siparişi alt numaralarla parçalara ayırmanızı öneririz (örneğin, order1-1
, order1-2
, order1-3
). Bu şekilde Yandex Metrica’da hem siparişler hem de alt siparişler görüntülenecektir.
Gerçek sipariş sayısını değerlendirmek için bir JS hedefi belirleyin ve bunu alt siparişlerden biriyle Yandex Metrica’ya gönderin. Bir siparişin alt siparişlere bölünmüş birden fazla konteyneri aktarıldığında, toplam sipariş sayısını hesaplamak için bir hedefe ulaşılacaktır.
E-Ticaret objesinin şekli şöyle görünür:
window.dataLayer.push({
"ecommerce": {
"currencyCode": "RUB",
"<actionType>" : {
"actionField" : <actionField>,
"products" : [<productFieldObject>, <productFieldObject>, ...]
}
}
});
Alan |
Türü |
Açıklama |
|
Object |
Zorunlu taşıyıcı alan |
|
String |
ISO 4217'ye göre para birimi kodu (3 harf). Başka bir para birimi transfer edilirse, ilgili para birimi ve tutar değerleri 0 olarak gönderilecektir |
|
— |
Olası değerler:
Ürünün sepetten çıkarılması hakkında bilginin Yandex Metrica'ya gönderilmesi raporda ürün sayısının negatif bir sayıyla ifade edilmesine neden olabilir (hesaplamalar sırasında sepetten çıkarılan ürünlerin sayısı eklenen ürünlerin toplam sayısından çıkarılır). Eğer bununla bereaber ürünün fiyatı da aktarılmışsa, bu durumda raporda aynı şekilde negatif bir sayıyla yansıtılır |
|
Object |
actionField şeklindeki obje. Yapılan eylemi açıklayan ek veriler. Eylem sadece — satın alma ( |
|
Array |
Belirtilen eylemin yapıldığı ürünlerin açıklama listesi. Ürün açıklamaları, productFieldObject şeklindeki objelerdir
|
|
Array |
Belirtilen eylemin gerçekleştirildiği reklam kampanyası açıklamalarının listesi. Reklam kampanyalarının açıklamaları promoFieldObject türünde nesneler olarak sunulmaktadır. |
* Bu parametre zorunludur
** Satın alma ile ilgili bilgileri iletmek için zorunlu parametre.
Ürün hakkındaki veriler
Belirli bir ürünün özelliklerini açıklayan obje.
Ürünü açıklayan objenin yapısı productFieldObject olarak adlandırılır.
Alan |
Türü |
Açıklama |
|
String |
Ürün tanımlayıcısı. Örnek: SKU. "id" veya "name" belirtilmesi zorunludur |
|
String |
Ürün adı. Örnek: "Tişört" Belirtilmesi zorunlu olan öğe: name veya id |
|
String |
Ürünle ilgili bir ticari marka Örnek: Yandex |
|
String |
Ürünün ait olduğu kategori Desteklenen kategoriler hiyerarşisi 5 yuvalanma seviyesine kadardır. Seviye ayırıcısı olarak kullanılan simge: / Örneğin, "Giyim / Erkek giyim / Tişörtler" |
|
String |
Ürünle ilgili promosyon kodu. Örnek: "PARTNER_SITE_15" |
|
Number |
Ürünün indirim oranı (sayı olarak belirtilir). |
|
String |
Ürünün ait olduğu liste. Kullanıcının ürünle etkileşiminin farklı aşamalarında listenin etkinliğini değerlendirmek için, ürün listesini görüntülemeden sonraki tüm olaylarda ürün listesini belirtmenizi öneririz. |
|
Integer |
Ürünün listedeki konumu. Örnek: 2 |
|
Number |
Ürünün birim fiyatı |
|
Integer |
Ürünün birim sayısı |
|
String |
Ürün çeşidi. Örnek: "Kırmızı" |
Eylem verileri
Ürünle veya ürün setiyle yapılan eylemler hakkında veriler içeren obje.
Eylem sadece satın alma ise (<actionType>
— purchase
) desteklenir.
Eylemi açıklayan objenin yapısı actionField olarak adlandırılır.
Eylemle ilgili veriler aktarıldığında Yandex Metrica bir hedef oluşturur. Bu hedef, Yandex Direct reklam kampanyasından elde edilen gelir hakkında bilgi almayı sağlar. Yandex Direct'teki hedef listesinde böyle bir hedef şu şekilde görünür: “eCommerce: Alım işlemi (Sayaç No.: <Sayaç ID'si>)”. goal_id alanını aktarmak suretiyle hedefe ulaşmayı kendiniz de takip edebilirsiniz.
Alan |
Türü |
Açıklama |
|
String |
Satın alma işlemi tanımlayıcısı. Alanın doldurulması zorunludur. Örnek: TRX#54321 |
|
String |
Bir bütün olarak satın alma işlemiyle (alınan ürünlerle) ilgili promosyon kodu |
|
Integer |
Hedef numarasıdır. Söz konusu eylem hedeflenen bir eylem olduğu takdirde belirtilir. Hedefin numarasına Yandex Metrica arayüzünde Ayarlar bölümündeki Hedefler sekmesi üzerinden ulaşabilirsiniz. |
|
Number |
Elde edilen gelir. Özel olarak belirtilmediği durumlarda işlem çerçevesinde satın alınan tüm ürünlerin fiyat toplamı olarak otomatik hesaplanır. |
Promosyon kampanyaları hakkında veriler
Promosyon kampanyalarını tanımlayan nesne.
Konteyner aynı fakat productFieldObject yerine promoFieldObject yazılır.
Alan |
Türü |
Açıklama |
|
String |
Promosyon kampanyasının kimliği. Alanın doldurulması zorunludur |
|
String |
Promosyon kampanyasının adı |
|
String |
Reklam bannerinin adı |
|
String |
Reklam bannerinin slotu |
|
String |
Reklam banneri pozisyonu |
Örnekler
Bilgileri iletmek için yukarıda açıklanan biçimde sitede belirli bir eylemden (örneğin, sipariş oluşturma) sorumlu olacak bir komut dosyası oluşturmanız gerekir. Aşağıda Metrica destekli eylemler için örnek komut dosyaları bulunmaktadır.
Örneklerde sayacın e-ticaret bağlantısı ile başlatıldığı ve veri aktarımının window.dataLayer taşıyıcısı üzerinden yapıldığı varsayılır.
Ürün listesini görüntüleme
Veriler, ürün listesinin açılması anında gönderilmelidir.
dataLayer.push({
"ecommerce": {
"currencyCode": "RUB",
"impressions": [
{
"id": "P15432",
"name" : "Tişört",
"price": 477.60,
"brand": "Yandex / Яndex",
"category": "Giyim / Erkek giyim / Tişörtler",
"variant" : "Kırmızı renk",
"list": "Search",
"position": 1
},
{
"id": "P15435",
"name" : "Tişört",
"price": 500.60,
"brand": "Yandex/ Яndex",
"category": "Giyim / Erkek giyim / Tişörtler",
"variant" : "Lacivert renk",
"list": "Search",
"position": 2
}
]
}
});
Listeden ürüne tıklama
Veriler, kullanıcı ürün bağlantısına tıkladığında iletilmelidir.
dataLayer.push({
"ecommerce": {
"currencyCode": "RUB",
"click": {
"products": [
{
"id": "39084",
"name": "Yandex termos bardak",
"price": 1089.69,
"brand": "Yandex / Яndex",
"category": "Ev ürünleri /Züccaciye / Termoslar ve termos bardaklar",
"variant": "Kırmızı renk",
"list": "Search",
"position": 1
}
]
}
}
});
Ürün görüntüleme
Veriler, ürün kartı sayfası açıldığı anda gönderilmelidir.
dataLayer.push({
"ecommerce": {
"currencyCode": "RUB",
"detail": {
"products": [
{
"id": "P15432",
"name" : "Tişört",
"price": 477.60,
"brand": "Yandex / Яndex",
"category": "Giyim / Erkek giyim / Tişörtler",
"variant" : "Kırmızı renk",
"list": "Arama sonuçları",
"position": 1
}
]
}
}
});
Ürünü sepete koyma
Sipariş sepete eklendiğinde veriler gönderilmelidir. Örneğin, “Sepete ekle” butonuna tıklandığında.
dataLayer.push({
"ecommerce": {
"currencyCode": "RUB",
"add": {
"products": [
{
"id": "43521",
"name": "Yandex çanta",
"price": 654.32,
"brand": "Yandex / Яndex",
"category": "Aksesuarlar / Çantalar",
"quantity": 1,
"list": "Kategori sonuçları",
"position": 2
}
]
}
}
});
Ürünü sepetten çıkarma
Sipariş sepetten çıkarıldığı anda veriler gönderilmelidir.
dataLayer.push({
"ecommerce": {
"currencyCode": "RUB",
"remove": {
"products": [
{
"id": "15243",
"name": "Telefon ekran silme seti – Yandex",
"category": "Cep telefonu aksesuarları",
"quantity": 1,
"list": "Aksesuarlar",
"position": 3
}
]
}
}
});
Satın alma
Sipariş onaylandığı anda veriler gönderilmelidir.
dataLayer.push({
"ecommerce": {
"currencyCode": "RUB",
"purchase": {
"actionField": {
"id" : "TRX987"
},
"products": [
{
"id": "25341",
"name": "Yandex erkek sweatshirt",
"price": 1345.26,
"brand": "Yandex / Яndex",
"category": "Giyim / Erkek giyim / Sweatshirt'ler",
"variant": "Turuncu renk",
"quantity": 1,
"list": "Giyim",
"position": 1
},
{
"id": "25314",
"name": "Yandex kadın sweatshirt",
"price": 1543.62,
"brand": "Yandex / Яndex",
"category": "Giyim / Kadın giyim / Sweatshirt'ler",
"variant": "Beyaz renk",
"quantity": 3,
"list": "Sweatshirt'ler",
"position": 2
}
]
}
}
});
Dahili reklamı görüntüleme
Veriler, kullanıcı reklam materyallerini görüntülediğinde gönderilmelidir.
dataLayer.push({
"ecommerce": {
"promoView": {
"promotions": [
{
"id": "BF001",
"name": "Efsane Cuma",
"creative": "Banner_1",
"position": "Slot1"
},
{
"id": "SUMMER002",
"name": "Yaz indirimleri",
"creative": "Banner_3",
"position": "Slot2"
}
]
}
}
});
Dahili reklamlara tıklamalar
Veriler, kullanıcı reklam materyali ile tıklama veya başka bir hedef eylem gerçekleştirdiğinde gönderilmelidir.
dataLayer.push({
"ecommerce": {
"promoClick": {
"promotions": [
{
"id": "BF001",
"name": "Efsane Cuma",
"creative": "Banner_1",
"position": "Slot1"
}
]
}
}
});
Daha fazla bilgi edinin
Faydalı bağlantılar |
Çevrimiçi eğitim |
Bu parametre zorunludur.
Satın alma ile ilgili bilgileri iletmek için zorunlu parametre.
"id" veya "name" belirtilmesi zorunludur.
Alanın doldurulması zorunludur.