כחלק מהעבודה השוטפת שלי מול חברות דיגיטל, הרבה פעמים עולה הדרישה להטמיע את סיפרייה eCommerce של Google Analytics על מנת לעקוב אחרי הכנסות האתר ממכירות ישירות ב-Google Analytics.
Google Analytics נותנת לנו כוח ע״י זיהוי אירועי משתמש וכעת גם ע״י מעקב אחרי ביצועי החנות האינטרנטית שלנו.
מה זה eCommerce Analytics?
גוגל מאפשרת לנו לעקוב ולנתח את ההזמנות שבוצעו באתר שלנו ע״י הצגת סטטיסטיקות ותובנות לפי מוצר וקטגוריה, מה שמאפשר לנו לדעת מהם המוצרים הנמכרים ביותר בחנות שלנו, איך החנות מתפקדת ומה ניתן לעשות על מנת להגדיל מכירות והיכן להשקיע את מרבית תקציב הפרסום שלנו.
מעקב אחרי מכירות ב-Google Analytics בשילוב עם כלים נוספים של גוגל, מאפשרים לחברות הדיגיטל להסיק מסקנות רבות אודות איכות החנות ונפח התעבורה שהאתר מקבל ביחס לכמות ההכנסות של האתר.
הפעלת סיפריית eCommerce Analytics
הצעד הראשון שעלינו לעשות הוא להפעיל את האפשרות למעקב אחר eCommerce, נעשה זאת ע״י התחברות לחשבון שלנו ב-Google Analytics, ננווט ל-Admin ומשם לנכס הרלוונטי ולבסוף נלחץ על Ecommerce Tracking.
בחלונית שנפתחה לנו נפעיל את Enable Ecommerce ולבסוף נלחץ על Save.
טעינת סיפריית eCommerce Analytics
כעת לאחר שהפעלנו את הסיפרייה נצטרך לטעון אותה בקוד שלנו על מנת שהקוד של Google Analytics יטען את הקוד האחראי על שליחת הנתונים ל-Google Analytics.
במידה והטמעתם את קוד המעקב של Google Analytics ע״י הטמעה ישירה שלו בתבנית או ע״י תוסף הזרקה של קוד כמו Insert Headers and Footers, כל שעליכם לעשות הוא להוסיף את שורת הקוד הבאה לפני תגית </script>
:
ga('require', 'ecommerce');
חיבור ל-WooCommerce
השלב הבא הוא להוסיף את הקוד שאחראי על שליחת נתוני ה-eCommerce ל-Google Analytics, נעשה זאת ע״י פתיחת קובץ functions.php
של התבנית שלנו, ונדביק את הקוד הבא בסופו:
/**
* Google eCommerce Analytics integration for WooCommerce.
*
* @param int $order_id current order id.
*
* @return bool
*/
function dorzki_google_analytics_ecommerce( $order_id ) {
// Exit if already submitted the data to google.
if ( get_post_meta( $order_id, '_ga_ec_tracked', true ) ) {
return false;
}
// Get current order by id.
$order = wc_get_order( $order_id );
// If order has failed for some reason, don't send the data.
if ( $order->has_status( 'failed' ) ) {
return false;
}
// Build transaction object.
$ga_code = "<script>" . PHP_EOL;
$ga_code .= " ga( 'ecommerce:addTransaction', {
'id': '{$order_id}',
'affiliation': '" . esc_js( get_bloginfo( 'name' ) ) . "',
'revenue': '" . esc_js( $order->get_total() ) . "',
'shipping': '" . esc_js( $order->get_shipping_total() ) . "',
'tax': '" . esc_js( $order->get_total_tax() ) . "',
'currency': '" . esc_js( $order->get_currency() ) . "'
} );" . PHP_EOL . PHP_EOL;
// Build items object.
foreach ( $order->get_items() as $item ) {
$_product = $item->get_product();
$product_cat = '';
// Get product category.
$variation_data = $_product->is_type( 'variation' ) ? wc_get_product_variation_attributes( $_product->get_id() ) : '';
$categories = get_the_terms( $_product->get_id(), 'product_cat' );
// If the current product is a variation, retrieve the parent product.
if ( is_array( $variation_data ) && ! empty( $variation_data ) ) {
$product_id = version_compare( WC_VERSION, '3.0', '<' ) ? $_product->parent->id : $_product->get_parent_id();
$parent_product = wc_get_product( $product_id );
$categories = get_the_terms( $parent_product->get_id(), 'product_cat' );
}
if ( ! empty( $categories ) ) {
$product_cat = $categories[0]->name;
}
$ga_code .= " ga( 'ecommerce:addItem', {
'id': '{$order_id}',
'name': '" . esc_js( $item['name'] ) . "',
'sku': '" . esc_js( $_product->get_sku() ? $_product->get_sku() : $_product->get_id() ) . "',
'category': '" . esc_js( $product_cat ) . "',
'price': '" . esc_js( $order->get_item_total( $item ) ) . "',
'quantity': '" . esc_js( $item['qty'] ) . "'
} );" . PHP_EOL . PHP_EOL;
}
$ga_code .= " ga( 'ecommerce:send' );" . PHP_EOL;
$ga_code .= "</script>";
// Mark that the data was sent.
update_post_meta( $order_id, '_ga_ec_tracked', true );
echo $ga_code;
}
add_action( 'woocommerce_thankyou', 'dorzki_google_analytics_ecommerce' );
שלב ראשון – אחזור ובדיקת הזמנה
בתחילת הקוד (שורות 11-21), אנחנו בודקים קודם כל האם כבר שלחנו את המידע הזה, על מנת למנוע מצב שהמידע נשלח יותר מפעם אחת ומדווח על אותה ההזמנה פעמיים אנחנו בודקים האם הקוד כבר נשלח. לאחר מכן אנו מבקשים לקבל את ההזמנה ע״ כך שאנחנו מעבירים את מזהה ההזמנה לפונקציה wc_get_order
אשר אחראית על אחזור אובייקט ההזמנה.
לבסוף אנחנו בודקים האם ההזמנה לא נכשלה והתשלום התקבל והכל בסדר, אם כן אנחנו ממשיכים בקוד.
שלב שני – יצירת טרנזקציה
כעת לאחר שבדקנו שהכל בסדר עם ההזמנה, עלינו ליצור טרנזקציה חדשה (שורות 26-33), הטרנזקציה היא בעצם הדרך של Google Analytics לזהות הזמנה במערכת.
אנחנו עושים זאת ע״י קריאה לפונקציית ga
ומעבירים לה שני פרמטרים, הראשון הוא סוג הפעולה, במקרה שלנו זה הפעולה של רישום טרנזקציה addTransaction
וכפרמטר שני אנחנו מעבירים את המידע אודות הטרנזקציה:
שדה | הסבר |
---|---|
id | מספר ההזמנה או מזהה ההזמנה |
affiliation | שם החנות |
revenue | סכום המכירה הכולל |
shipping | עלות המשלוח |
tax | מיסים |
currency | מטבע תשלום |
שלב שלישי – שליחת נתוני המוצרים
כעת אחרי שיצרנו את הטרנזקציה, נרצה להעביר נתונים נוספים אודות ההזמנה, את פרטי המוצרים שנרכשו.
נתחיל בלרוץ על כל המוצרים שיש בהזמנה (שורה 36) ועבור כל אחד מהם נאחזר את האובייקט של המוצר (שורה 38) על מנת לקבל את נתונים המוצר.
לאחר מכן אנו נבדוק האם המוצר הנוכחי הוא מוצר מסוג וריאציה (שורה 42), במידה וכן נבקש לקבל את מוצר האב (שורות 42-54) בשביל שנוכל לקבל את הקטגוריות של המוצר.
לבסוף נשלח את הנתונים של המוצר (שורות 62-69) ע״י שימוש בפונקציה ga
בשנית כאשר הפרמטר הראשון הוא הוספת מוצר addItem
והפרמטר השני יכיל את נתונים המוצר:
שדה | הסבר |
---|---|
id | מספר ההזמנה או מזהה ההזמנה |
name | שם המוצר |
sku | מק״ט המוצר או מזהה המוצר |
category | קטגוריית המוצר הראשית |
price | עלות המוצר |
quantity | כמות שנרכשה |
שלב רביעי – שיגור המידע ל-Google Analytics
השלב האחרון הוא שליחת המידע על מנת שהוא יתועד ב-Google Analytics, נעשה זאת ע״י שליחת הפקודה send
לפונקציית ga
.
לאחר מכן נשמור במסד נתונים ערך חדש אשר אומר שהקוד שוגר, ככה שבמידה וירעננו את הקוד, ההזמנה לא תשלח בשנית ותגרום לבעיות או לדו״חות לא מדוייקים.
סיכום
Google Analytics הינו כלי חזק בדיוק אשר מאפשר לנו לקבל המון נתונים אודות הגולשים ופעילות האתר שלנו וע״י הטמעת הקוד הנ״ל נוכל לקבל נתונים נוספים וסטטיסטיקות מורכבות יותר אודות החנות שלנו.
מאמר מעולה, תודה רבה! ?
היי מתן,
שמח לשמוע! מזמין אותך להירשם לעדכונים במייל או בטלגרם 🙂
מעולה.
שאלה, האנליטיקס עובד דרך התג מנג'ר, במידה ואני אטמיע את הקוד ב- functions.php האם זה יסתנכרן כשורה?
היי עידן,
אם הגדרת את הקוד דרך Google Tag Manager זה אמור לעבוד לך.
אשמח אם תוכל לבדוק ולעדכן אותי אם עבד לך או לא 🙂
אין דרך לעבוד עם פלאגאין למי שלא מתכנת אתרים?
איפה מוסיפים את הקוד?
שלום שיאון,
יש המון תוספים שעושים את זה אני בטוח שאם תחפש בגוגל תמצא 🙂
בכל מקרה, רשום לך במאמר שפשוט צריך להטמיע את הקוד בקובץ
functions.php
.