رویدادهای تجارت الکترونیک
ادپیکس همان مجموعه رویدادهای تجاری GA4 را میپذیرد و آرایه اقلام هر رویداد را به سطرهای جداگانه باز میکند. قیف پیش از خرید کار مرورگر است؛ خریدی که درگاه پرداخت تایید کرده باید از سرور بیاید.
دو مسیر جمعآوری، یک گزارش#
تجارت الکترونیک در ادپیکس از دو جا تغذیه میشود و هر دو در یک گزارش میریزند:
| موضوع | مرورگر | سرور |
|---|---|---|
| دیدن محصول، افزودن به سبد، شروع تسویه | بله | لازم نیست |
| خریدی که درگاه پرداخت تایید کرده | ناقص و شکننده | بله |
| تمدید خودکار، فاکتور دورهای، بازپرداخت | خیر | بله |
| سفارشی که اپراتور دستی ثبت میکند | خیر | بله |
دلیل این تقسیم کار ساده است: تا پیش از پرداخت، رویداد در همان صفحهای میافتد که کاربر باز کرده و مرورگر بهترین جای دیدنش است. لحظه پرداخت اما بیرون از صفحه اتفاق میافتد — کاربر به درگاه میرود، ممکن است هرگز برنگردد، ممکن است مسدودکننده تبلیغات بیکن را بگیرد. حقیقت خرید در سرور شماست، پس از همانجا بفرستیدش.
شکل فرمان در مرورگر#
آرگومان دوم نام رویداد است و آرگومان سوم شیء تجارت الکترونیک. فرمان دو کار جدا میکند:
- یک رویداد کامل با همان نام میسازد و
value،currencyوtransaction_idرا در پارامترهای آن میگذارد — پس گزارش رویدادها و درآمد رویدادهای کلیدی همان لحظه آن را میبینند. - آرایه
itemsرا در یک بافتار جداگانه کنار رویداد میفرستد. گیرنده آن بافتار را باز میکند و برای هر قلم یک سطر جدا مینویسد. گزارش محصولات و میانگین ارزش سفارش از همان سطرها ساخته میشوند.
ecommerce هم مثل page و track به رضایت دسته «آماری» گره خورده است: تا وقتی بازدیدکننده این دسته را نپذیرفته، فرمان چیزی نمیفرستد و بیصدا برمیگردد.
نامهای رویداد#
همان مجموعهای که GA4 به کار میبرد پذیرفته میشود. نام را دقیقا با همین املا بفرستید؛ Purchase و purchase دو رویداد جدا شمرده میشوند.
| نام رویداد | چه چیزی آن را میخواند |
|---|---|
view_item |
گام اول «قیف تجارت» |
add_to_cart |
گام دوم قیف |
begin_checkout |
گام سوم قیف |
purchase |
درآمد، سفارشها، میانگین ارزش سفارش، واحدها، محصولات برتر، گام چهارم قیف |
refund |
بازپرداختها و درآمد خالص |
view_item_list |
فقط گزارش رویدادها و کاوش |
remove_from_cart |
فقط گزارش رویدادها و کاوش |
add_payment_info |
فقط گزارش رویدادها و کاوش |
چهار گام قیف بر پایه کاربران یکتا شمرده میشوند، نه رویدادها. پول و محصول فقط از purchase و refund خوانده میشوند؛ بقیه نامها سطر قلم میسازند ولی هیچ گزارش پولی سراغشان نمیرود.
فیلدهای هر قلم#
| فیلد | نوع | نکته |
|---|---|---|
item_id |
رشته | کلید محصول در گزارش محصولات برتر. سطرها با همین گروه میشوند. |
item_name |
رشته | نام نمایشی. اگر خالی باشد، جدول item_id را نشان میدهد. |
price |
عدد | قیمت واحد، در ارز همان رویداد. |
quantity |
عدد | اگر نفرستید یا صفر باشد، ۱ در نظر گرفته میشود. |
category |
رشته | ستون «دسته» در جدول محصولات. |
brand |
رشته | ذخیره میشود. |
variant |
رشته | ذخیره میشود. |
discount |
عدد | از درآمد همان قلم کم میشود. |
درآمد هر قلم برابر است با price × quantity − discount، و همین عدد است که در ستون درآمد جدول محصولات جمع میشود. حداکثر ۲۰۰ قلم در یک رویداد پذیرفته میشود.
فیلدهای coupon، shipping، tax و affiliation در سطح سفارش و coupon و index در سطح قلم پذیرفته میشوند و رویداد را رد نمیکنند، ولی امروز هیچ گزارشی آنها را نمیخواند. اگر به یکی از آنها در گزارش نیاز دارید، به جای اتکا به این فیلدها آن را به عنوان یک پارامتر معمولی رویداد بفرستید و از آن یک بُعد سفارشی بسازید.
سه چیزی که بدون آنها گزارش خالی میماند#
شمارش سفارشها، میانگین ارزش سفارش و اقلام به ازای سفارش همگی با گروهبندی روی transaction_id محاسبه میشوند. اگر این فیلد را نفرستید، همه خریدهای بازه در یک گروه با شناسه خالی میافتند: تعداد سفارش ۱ میشود و میانگین ارزش سفارش برابر کل درآمد. عدد اشتباه نیست — بیمعناست. در مسیر سرور همین نقش را order_id بازی میکند.
- بدون
itemsهیچ سطری نوشته نمیشود. رویداد خریدی که آرایه اقلام ندارد در گزارش رویدادها و در درآمد رویدادهای کلیدی دیده میشود، ولی برای گزارش تجارت الکترونیک اصلا وجود ندارد. اگر ریز اقلام را ندارید، دستکم یک قلم باitem_idسفارش و مبلغ کل بفرستید. - بدون
transaction_idسفارش شمرده نمیشود — بالا توضیح داده شد. - بدون
currencyمبلغها زیر ارز «نامشخص» جمع میشوند. کد ارز را با سه حرف بزرگ لاتین بفرستید، مثلIRRیاUSD. مسیر سرور کد نامعتبر را با خطای422رد میکند.
خرید را از سرور بفرستید#
مسیر سرور به سرور همان آرایه items را میپذیرد و order_id را به عنوان شناسه تراکنش به کار میبرد:
سه چیز را این مسیر به شما میدهد که مرورگر نمیدهد:
- ارسال دوباره سفارش تازه نمیسازد.
event_idرا خودتان انتخاب میکنید و باید همیشه همان سفارش را نشان دهد. ارسال دوم با همان شناسه و همان بدنه، پاسخ اول را برمیگرداند و رویداد جدیدی نمینویسد. - انتساب سفارش منجمد میشود. کانال و کمپینی که خرید را ساخته یک بار روی سفارش نوشته میشود و رفتار بعدی مشتری آن را بازنویسی نمیکند.
- مسدودکننده تبلیغات و ترک صفحه بیاثرند.
جزئیات کلید سرور، سرصفحهها و خطاها در ردیابی سمت سرور آمده است.
اگر همان خرید هم از مرورگر و هم از سرور برود، دو سطر مستقل ثبت میشود و درآمد دو برابر میشود. این دو مسیر شناسههای متفاوتی دارند و ادپیکس عمدا آنها را روی هم نمیاندازد. یکی را انتخاب کنید — و اگر سرور را انتخاب کردید، مطمئن شوید قاعده «ساخت رویداد» روی صفحه پرداخت موفق هم همزمان یک خرید دیگر نمیسازد.
تکرار خرید در مرورگر#
اگر ناچارید خرید را از مرورگر بفرستید، transaction_id را حتما بگذارید. رویدادی که نامش دقیقا purchase است و شناسه تراکنش دارد، شناسهای ثابت و برگرفته از همان تراکنش میگیرد؛ پس بارگذاری دوباره صفحه «پرداخت موفق»، بازگشت به عقب و ارسال دوباره تراکر همگی روی هم میافتند و یک خرید شمرده میشوند.
این حفاظ فقط برای نام purchase کار میکند. اگر رویداد خریدتان نام دیگری دارد — چون قاعده رویداد آن را ساخته یا نامش را عوض کرده — روش دیگری لازم است که در قواعد ایجاد و اصلاح رویداد توضیح داده شده.
ارز#
مبلغها در همان ارزی که فرستادهاید ذخیره میشوند و هیچ تبدیلی انجام نمیشود. گزارش تجارت الکترونیک هم مبلغها را با علامت $ نمایش میدهد؛ آن علامت واحد پول شما را عوض نمیکند و عدد کنارش همان مقدار در ارز خودتان است.
نتیجه عملی: یک دارایی که همزمان با دو ارز میفروشد، جمع درآمدش ریال و دلار را روی هم میریزد. برای هر ارز یک دارایی جدا بسازید.
چه چیزی کجا دیده میشود#
| جا | از کجا میآید |
|---|---|
| درآمد، سفارشها، میانگین ارزش سفارش، واحدها | سطرهای قلم رویدادهای purchase، گروهشده بر transaction_id |
| بازپرداختها و درآمد خالص | همان، برای refund |
| محصولات برتر | جمع درآمد قلم به تفکیک item_id |
| قیف تجارت | کاربران یکتای چهار رویداد قیف در events_local |
| درآمد رویدادهای کلیدی | پارامتر value روی خود رویداد، نه سطرهای قلم |
این دو منبع آخر عمدا از هم جدا ماندهاند: درآمد رویداد کلیدی از پارامتر value میآید و به آرایه اقلام کاری ندارد، پس اگر خرید بدون اقلام بفرستید فقط گزارش تجارت الکترونیک را از دست میدهید، نه درآمد را.
خواندن خود گزارش در گزارش تجارت الکترونیک توضیح داده شده است.
پرسشهای پرتکرار#
خرید را از مرورگر بفرستم یا از سرور؟
قیف پیش از خرید را از مرورگر و خود خرید را از سرور. خرید در مرورگر به مسدودکننده تبلیغات، بسته شدن مرورگر پیش از بازگشت از درگاه و شبکه ضعیف حساس است؛ همان خرید وقتی از سرور میآید یک شناسه پایدار دارد و ارسال دوبارهاش سفارش تازه نمیسازد.
چرا گزارش تجارت الکترونیک خالی است در حالی که رویداد purchase در گزارش رویدادها دیده میشود؟
چون گزارش تجارت الکترونیک روی سطرهای اقلام ساخته شده است. رویداد خریدی که آرایه items ندارد هیچ سطر قلمی نمیسازد، پس درآمد و سفارش و محصولات برتر آن را نمیبینند. مقدار value همان رویداد همچنان در درآمد رویدادهای کلیدی شمرده میشود.
چرا همه خریدها یک سفارش شمرده میشوند؟
چون transaction_id خالی مانده است. شمارش سفارش با گروهبندی روی همین فیلد انجام میشود، پس اگر همه خریدها شناسه خالی داشته باشند همه در یک گروه میافتند و میانگین ارزش سفارش بیمعنا میشود. در مسیر سرور، order_id همین نقش را دارد.
ادپیکس ارزها را به هم تبدیل میکند؟
خیر. مبلغ در همان ارزی که فرستادهاید ذخیره میشود و هیچ نرخی اعمال نمیشود. اگر یک دارایی همزمان با دو ارز فروش داشته باشد، جمع درآمدش عدد بیمعنایی است؛ برای هر ارز یک دارایی جدا بسازید.
ممنون — بازخورد شما به بهتر شدن مستندات کمک میکند.