Events
Authentication
Load User Data
dataLayer.push({
__USER_DATA__,
});
User Login
dataLayer.push({
event: "user_login",
});
User Logout
dataLayer.push({
event: "user_logout",
});
Navigation
Add New Listing
This should be fired when the user click on the “Add Listing” button.
dataLayer.push({
event: "add_new_listing_click",
source: "header" | "user_side_bar" | "footer" | "profile",
});
Open Services Popup
dataLayer.push({
event: "show_services_popup",
});
Close Services Popup
dataLayer.push({
event: "close_services_popup",
});
Open User Side Bar
dataLayer.push({
event: "show_user_menu",
loggedIn: true | false,
hasNotifs: true | false, // whether the user has unread notifs or not
});
Close User Side Bar
dataLayer.push({
event: "close_user_menu",
});
Open Notifs
dataLayer.push({
event: "open_notifs",
hasNotifs: true | false, // whether the user has unread notifs or not
});
Open User Profile
dataLayer.push({
event: "open_user_profile",
source: "user_side_bar" | "listing" | "chat" | "search" | "footer", // listing source is WiP
});
Open Requests
dataLayer.push({
event: "open_requests",
});
Open Faved Listings
dataLayer.push({
event: "open_faivorate_listings",
});
Toggle between Faved/Called Listings
dataLayer.push({
event: "toggle_fav_listings",
type: "fav" | "called",
});
Open Contact us
dataLayer.push({
event: "open_contact_us",
source: "user_side_bar" | "footer",
});
Toggle Between Contact us/ Support
dataLayer.push({
event: "toggle_contact_us",
source: "contact" | "support",
});
Submit Contact Us form
dataLayer.push({
event: "submit_contact_us",
p_id,
content,
payload,
listing_id,
});
Open Building Calculator
dataLayer.push({
event: "open_building_calculator",
});
Open Add Featured Ad
dataLayer.push({
event: "open_add_featured",
});
Open Services
dataLayer.push({
event: "open_services",
});
Open Rent Contracts
dataLayer.push({
event: "open_rent_contracts",
});
Open Stats Page
dataLayer.push({
event: "open_stats",
});
Open Construction
dataLayer.push({
event: "open_construction",
});
Open Report Listing Modal
dataLayer.push({
event: "open_report_listing_modal",
});
Submit Listing Report
dataLayer.push({
event: "submit_listing_report",
listing_id,
content,
reason:
"wrong_price" |
"wrong_location" |
"expired_listing" |
"rega_noncompliance" |
"impolite_response" |
"other",
});
Open Property Registration
dataLayer.push({
event: "open_property_registration",
});
Open Surveying Property
dataLayer.push({
event: "open_surveying_property",
});
Open Alahli
This event is triggered when users open AlAhli (SNB) screen
dataLayer.push({
event: "open_alahli",
});
Open Alinma
This event is triggered when users open Alinma screen
dataLayer.push({
event: "open_alinma",
});
Open today's listings
This event is triggered when users click today's listing on services popup
dataLayer.push({
event: "open_today_listings",
});
Open listing fee
This event is triggered when users click listing fee on services popup
dataLayer.push({
event: "open_listing_fee",
});
Open chat
This event is triggered when users click chat on footer view
dataLayer.push({
event: "open_chat",
});
Open agent agreement
This event is triggered when users click agent agreement on services popup
dataLayer.push({
event: "open_agent_agreement",
});
Open land area calculator
This event is triggered when users click land area calculator
dataLayer.push({
event: "open_land_area_calc",
});
Add new private listing
This event is triggered when users click 'Add private property'
dataLayer.push({
event: "add_new_private_listing",
});
Open private listing
This event is triggered when users click private listing icon on the map
dataLayer.push({
event: "open_private_listing",
});
Open my clients
This event is triggered when users open my clients screen
dataLayer.push({
event: "open_my_clients",
});
Add new client
This event is triggered when users click add client from client page / listing detail page
dataLayer.push({
event: "add_new_client",
});
Open my tasks
This event is triggered when users open my tasks screen
dataLayer.push({
event: "open_my_tasks",
});
Add new task
This event is triggered when users click 'Add new update' in task detail screen
dataLayer.push({
event: "add_new_task",
});
Show province
This event is triggered when users navigate to province level
dataLayer.push({
event: "show_province",
});
Open listing nearby service
This event is triggered when users click nearby service map in listing detail screen
dataLayer.push({
event: "open_nearby_service",
});
Go to current location
This event is triggered when users click current location on map
dataLayer.push({
event: "go_to_current_location",
});
Click similar listing
This event is triggered when users click similar listing
dataLayer.push({
event: "open_similar_listing",
...__LISTING_DATA__,
});
Add new request
This event is triggered when users create request successfully
dataLayer.push({
event: "add_new_request",
});
Discovery
View Listing List
dataLayer.push({
event: "view_listing_list",
...__LISTING_LIST_PARAMS__,
});
Listing Impression
dataLayer.push({
event: "listing_list_impression",
...__LISTING_DATA__,
});
Listing Map Impression
This event is triggered when the user clicks on a pin in the map search screen.
dataLayer.push({
event: "listing_map_impression",
...__LISTING_DATA__,
});
Listing Pin Impression
This should be triggered when a map pin is shown to the user.
dataLayer.push({
event: "listing_map_pin_impression",
type: "default" | "golden" | "execulsive" | "daily_rental",
...__LISTING_DATA__,
});
Change Listing Category
dataLayer.push({
event: "change_listing_list_category",
...__LISTING_LIST_PARAMS__,
listing_list_previous_category: 4,
listing_list_current_category: 1,
});
Change Listing View (to list or to map)
This should be triggered when the user click the button to switch the view type.
dataLayer.push({
event: 'change_listing_list_view',
...__LISTING_LIST_PARAMS__,
listing_list_view: 'list' | 'map',
}
Open Search Filters Pan
dataLayer.push({
event: "open_listing_list_filters",
...__LISTING_LIST_PARAMS__,
});
Update Search Filters
dataLayer.push({
event: "change_listing_list_filters",
...__LISTING_LIST_PARAMS__,
});
City Pin Impression
This event is triggered when the user is on the map page and clicks on the city marker.
dataLayer.push({
event: "city_map_pin_click",
city_name: "cityName",
city_lat: "cityLat",
city_lng: "cityLang",
});
Toggle View Mode on map
This event is triggered when the user changes the listings view mode on the map screen.
dataLayer.push({
event: "change_map_view",
map_view_mode: "list" | "pins",
});
Start Draw
This event is triggered when the user starts drawing search boundaries on the map
dataLayer.push({
event: "start_draw_on_map",
});
Cancel Draw
This event is triggered when the user cancels drawing search boundaries on the map
dataLayer.push({
event: "cancel_draw_on_map",
});
Change Map Type
This event is triggered when the user changes the map type.
dataLayer.push({
event: "change_map_type",
map_type: "satellite" | "roadmap",
});
Service pin click
This event is triggered when the user clicks on a service pin on the map.
dataLayer.push({
event: "service_pin_click",
name: "<value>",
});
View Listing
View Listing
dataLayer.push({
event: "view_listing",
...__LISTING_DATA__,
});
View Listing Image
dataLayer.push({
event: "view_listing_image",
...__LISTING_DATA__,
});
View Listing Video
dataLayer.push({
event: "view_listing_video",
...__LISTING_DATA__,
});
Get Listing Phone
dataLayer.push({
event: "get_listing_phone",
...__LISTING_DATA__,
});
Add Listing To Favorites
dataLayer.push({
event: "add_listing_to_favorites",
...__LISTING_DATA__,
});
Share Listing Popup
dataLayer.push({
event: "open_share_listing_popup",
...__LISTING_DATA__,
});
Share Listing
dataLayer.push({
event: "share_listing",
share_method: "twitter" | "whatsapp" | "link" | "other",
...__LISTING_DATA__,
});
App Review / Feedback
This event is triggered when user choose stars rating on the app
dataLayer.push({
event: "review_app"
rating: number;
feedback?: string; (optional)
})
Daily rent
Reserve listing
This event is triggered when users click 'reserve' button in listing detail screen
dataLayer.push({
event: "daily_rental_reserve_button",
...__BOOKING_DATA__,
});
Confirm reservation
This event is triggered when users click 'Confirm' button in summary screen
dataLayer.push({
event: "daily_rental_payment_button",
...__BOOKING_DATA__,
});
Switch to daily rent mode
This event is triggered when users switch to daily rental mode
dataLayer.push({
event: "daily_rental_mode",
});
Update daily rent search filters
This event is triggered when users change date range on map, or confirming filter change on search panel
dataLayer.push({
event: "daily_rental_change_filter",
});
Show calendar on map
This event is triggered when users click on button to show calendar modal on map
dataLayer.push({
event: "daily_rental_change_date",
});
Chat host
This event is triggered when users click on chat button on daily rent listing
dataLayer.push({
event: "daily_rental_chat_button",
...__LISTING_DATA__,
});
Daily rental search listing
This event is triggered when users click on search button on search menu while on daily rental mode
dataLayer.push({
event: "daily_rental_search",
});
STC
Show STC coverage on the map
This event is triggered everytime the app get STC coverage response from server ( for display on the map )
dataLayer.push({
event: "stc_home_screen_shown",
});
Open STC screen
This event is triggered when users click STC button while STC screen is enabled ( Info.configurations.stc_screen = true )
dataLayer.push({
event: "stc_detail_screen_shown",
});
Open external link
This event is triggered when users click STC button in listing detail screen while STC screen is disabled ( Info.configurations.stc_screen = false )
dataLayer.push({
event: "stc_external_link_clicked",
});
Click STC banner
This event is triggered when users click banner in STC screen
dataLayer.push({
event: "stc_banner",
link: "<value>",
});
Click STC services
This event is triggered when users click services in STC screen
dataLayer.push({
event: "stc_services",
name: "<value>",
});
AQAR+
Use quarterly statistics
This event is triggered when AQAR+ users click 'Quarterly stats' tab
dataLayer.push({
event: "aqar_plus_quarterly_stats",
});
Show favorite listings on the map
This event is triggered when AQAR+ users show fav listing on map
dataLayer.push({
event: "aqar_plus_fav_listings",
});
Show full listing statistic
This event is triggered when AQAR+ users click 'Full listing stat' button
dataLayer.push({
event: "aqar_plus_full_listing_stats",
});
Use AQAR+ filters
This event is triggered when AQAR+ users click 'Search' in search screen
dataLayer.push({
event: "aqar_plus_filters",
source: "all" | "owner" | "direct" | "unique" | "unverified_owner",
use_text_search: true | false,
});
Payment
Pay with Payfort started
This event is triggered when Payfort payment started (with new/used card)
dataLayer.push({
event: "payfort_start",
use_promo_code: true | false,
});
Pay with Payfort completed
This event is triggered when Payfort payment completed successfully
dataLayer.push({
event: "payfort_success",
use_promo_code: true | false,
});
Pay with ApplePay started
This event is triggered when users click ApplePay button
dataLayer.push({
event: "applepay_start",
use_promo_code: true | false,
});
Pay with ApplePay completed
This event is triggered when ApplePay payment completed successfully
dataLayer.push({
event: "applepay_success",
use_promo_code: true | false,
});
Apply promo coupon started
This event is triggered when users click 'Do you have a promo code button?'
dataLayer.push({
event: "promocode_start",
});
Apply promo coupon completed
This event is triggered when users apply promo code successfully ( discount returned != 0 )
dataLayer.push({
event: "promocode_success",
promo_code: "<value>",
});
Purchase listing boost IAP started
This event is triggered when users start listing boost IAP purchase
dataLayer.push({
event: "listing_boost_iap_start",
});
Purchase listing boost IAP completed
This event is triggered when listing boost IAP purchase completed successfully
dataLayer.push({
event: "listing_boost_iap_success",
});
Start Payment from Web View
This event is triggered when user open web payment screen (for credit card 3d secure security input)
dataLayer.push({
event: "web_payment_view",
});
Web View Payment Success
This event is triggered when user completed a 3d secure security input
dataLayer.push({
event: "web_payment_success",
});
Web View Payment Failed
This event is triggered when user failed a 3d secure security input
dataLayer.push({
event: "web_payment_failed",
});
Deals / MOJ
Open deals info
This event is triggered when users click deals info tab in district review screen
dataLayer.push({
event: "deals_info_tab",
});
Change deals category
This event is triggered when users click deals info category tab
dataLayer.push({
event: "deals_info_category",
name: "<value>",
});
Open MOJ statistic screen
This event is triggered when users click 'Advance search' in deals info screen
dataLayer.push({
event: "deals_info_advance",
});
Change quarter period in MOJ screen
This event is triggered when users change quarter info in MOJ screen
dataLayer.push({
event: "deals_info_quarter",
name: "<value>",
});
Change district in MOJ screen
This event is triggered when users change district in MOJ screen
dataLayer.push({
event: "deals_info_district",
name: "<value>",
});
Click parcel info in MOJ screen
This event is triggered when users click parcel in MOJ screen
dataLayer.push({
event: "deals_info_parcel",
});
Real estate project
Enter Real Estate project mode
This event is triggered when users press real estate project mode button
dataLayer.push({
event: "real_estate_projects_mode",
});
Click project pin
This event is triggered when users click project pin on map
dataLayer.push({
event: "project_pin_click",
project_id: "<value>",
});
Click project card
This event is triggered when users click project card on listing list
dataLayer.push({
event: "project_card_click",
project_id: "<value>",
});
Other events
SMS bank number
This event is triggered when user click 'SMS bank info' in after payment form
dataLayer.push({
event: "sms_bank_info",
account_no: "585608010000076" | "26972341000104",
});
Allow / not allow GPS
This event is triggered when GPS permission popup shown (after installation)
dataLayer.push({
event: "allow_gps",
allowed: true | false,
});
Touch ID authentication started
This event is triggered when users start TouchId
dataLayer.push({
event: "touch_id_start",
});
Touch ID authentication completed
This event is triggered when TouchId verification completed successfully
dataLayer.push({
event: "touch_id_success",
});
Face ID authentication started
This event is triggered when users start FaceId
dataLayer.push({
event: "face_id_start",
});
Face ID authentication completed
This event is triggered when FaceId verification completed successfully
dataLayer.push({
event: "face_id_success",
});
Change language
This event is triggered when users change language
dataLayer.push({
event: "change_language",
to: "ar" | "en",
});
Dial listing owner
This event is triggered after users make phone call to listing owner
dataLayer.push({
event: "dial_owner",
answered: true | false,
..__LISTING_DATA__,
})
Whatsapp listing owner
This event is triggered after users click whatsappp to listing owner
dataLayer.push({
event: "whatsapp_owner",
..__LISTING_DATA__,
})
Chat listing owner
This event is triggered when users click chat owner button ( except daily rent listing. It uses 'daily_rental_chat_button' event )
dataLayer.push({
event: "listing_chat_button",
..__LISTING_DATA__,
})
Chat message sent
This event is triggered after users send chat message successfully (through API or socket)
dataLayer.push({
event: "message_sent",
type: "text" | "voice" | "image",
});
Reset search filter
This event is triggered when users click reset filter in search screen
dataLayer.push({
event: "reset_filter",
});
Open search by QR code
This event is triggered when users users click search by QR code in search screen
dataLayer.push({
event: "search_qr",
});
Search listing by Filters
This event is triggered when users click on search button on search screen
dataLayer.push({
event: "search_by_filters",
});
Add Self CRM
This event is triggered when a calling user is added to ad owner CRM from addSelfCRM request
dataLayer.push({
event: "add_self_crm",
});
Promote Listing Intent
This event is triggered when user open a boost listing screen
dataLayer.push({
event: "promote_listing_intent",
});
Promote Listing Confirm
This event is triggered when user open payment screen after boost listing screen
dataLayer.push({
event: "promote_listing_confirm",
});
User Registration
Forgot Password Request Sent
This event is triggered when users sent a forgot password request
dataLayer.push({
event: "forgot_password_request_sent",
});
Forgot Password Request Done
This event is triggered when users got response from server for a forgot password request
dataLayer.push({
event: "forgot_password_request_done",
});
Forgot Password Verify Sent
This event is triggered when users sent a forgot password verification request
dataLayer.push({
event: "forgot_password_verify_sent",
});
Forgot Password Verify Done
This event is triggered when users got response from server for a forgot password verification request
dataLayer.push({
event: "forgot_password_verify_done",
});
Registration Request Sent
This event is triggered when users sent a new registration request
dataLayer.push({
event: "registration_request_sent",
});
Registration Request Done
This event is triggered when users got response from server for a new regisration request
dataLayer.push({
event: "registration_request_done",
});
Registration Verification Sent
This event is triggered when users sent a registration verification request
dataLayer.push({
event: "registration_verify_sent",
});
Register / create new account
This event is triggered when users create new account successfully
dataLayer.push({
event: "registration_success",
});
Change Mobile Request Sent
This event is triggered when users sent a change mobile request
dataLayer.push({
event: "change_mobile_request_sent",
});
Change Mobile Request Done
This event is triggered when users got response from server for a change mobile request
dataLayer.push({
event: "change_mobile_request_done",
});
Change Mobile Verify Sent
This event is triggered when users sent a change mobile verification request
dataLayer.push({
event: "change_mobile_verify_sent",
});
Change Mobile Verify Done
This event is triggered when users got response from server for a change mobile verification request
dataLayer.push({
event: "change_mobile_verify_done",
});
Add / Edit Listing
See Listing Fees
This event is triggered when user sees listing fee agreement on adding listing flow
dataLayer.push({
event: "add_listing_fees",
});
Add Listing Category
This event is triggered when user see category selection screen when adding listing
dataLayer.push({
event: "add_listing_category",
});
Edit Listing Category
This event is triggered when user see category selection screen when editing listing
dataLayer.push({
event: "edit_listing_category",
});
Add Listing First Entry
This event is triggered when user see first entry screen when adding listing
dataLayer.push({
event: "add_listing_first_entry",
});
Edit Listing First Entry
This event is triggered when user see first entry screen when editing listing
dataLayer.push({
event: "edit_listing_first_entry",
});
Add Listing Second Entry
This event is triggered when user see second entry screen when adding listing
dataLayer.push({
event: "add_listing_second_entry",
});
Edit Listing Second Entry
This event is triggered when user see second entry screen when editing listing
dataLayer.push({
event: "edit_listing_second_entry",
});
Add Listing Map
This event is triggered when user see location selection screen when adding listing
dataLayer.push({
event: "add_listing_map",
});
Edit Listing Map
This event is triggered when user see location selection screen when editing listing
dataLayer.push({
event: "edit_listing_map",
});
Add Listing Gallery
This event is triggered when user see media upload screen when adding listing
dataLayer.push({
event: "add_listing_gallery",
});
Edit Listing Gallery
This event is triggered when user see media upload screen when editing listing
dataLayer.push({
event: "edit_listing_gallery",
});
Cancel Add Listing
This event is triggered when user cancel add listing process
dataLayer.push({
event: "add_listing_canceled",
});
New Listing Review
This event is triggered when user see new listing preview screen
dataLayer.push({
event: "listing_review",
});
Add Listing Success
This event is triggered when user published new listing
dataLayer.push({
event: "add_listing_success",
...__LISTING_DATA__,
});
Add new licensed listing
This event is triggered when user click 'Add licensed listing'
dataLayer.push({
event: "add_new_licensed_listing_click",
});
Add new listing ( with issuing license )
This event is triggered when user click 'Add listing ( with issuing license)'
dataLayer.push({
event: "add_licensing_request_by_aqar",
});
Add new marketing request
This event is triggered when user click 'Add marketing request'
dataLayer.push({
event: "add_marketing_request",
});
Things to Do
Confirm if setting _clear: **true**
is needed in Next.js.