Event Schema Reference
This page lists each event Appier logs or defines, with its event-specific properties.
- Events: Events that are currently in use, with their labels and event-specific properties.
- Deprecated events: Events that are no longer in use but may still appear in your data from older SDK versions.
- AIRIS system event properties: Properties that AIRIS adds automatically to every event it tracks. They aren't repeated on each event card.
How to read this page
Event labels
This reference uses labels to tell you who sends the event and whether it affects billing.
| Label | Meaning |
|---|---|
| Default | Appier's SDKs or backend log this event automatically. You don't need to add any code. |
| System-defined | Appier defines the event name and its properties, and you send the event. Send the event name and its properties exactly as defined so Appier features can use the data. The data logging guidelines apply. |
| Billable | The event counts toward your monthly event quota. |
| MAU billable | The event counts the user toward your monthly active user (MAU) quota. |
Event property labels
Include properties labeled Required every time you log the event. Some Appier features need them to work. For system-defined events, all other properties are recommended, as they can enable more use cases and improve how Appier features perform.
Events
accept_NTN
accept_NTNGenerated by BotBonnie when the user agrees to receive recurring notification messages. The permission details are also saved to the ntn user property.
tokentopicexpiredfrequencyaccept_OTN
accept_OTNGenerated by BotBonnie when the user agrees to receive a one-time notification message.
tokentopicexpiredfrequencyaccount_link
account_linkGenerated by BotBonnie when the user links their BotBonnie identity to an external member account. The linked account ID is also saved to the account_linked user property.
account_linkedaccount_unlink
account_unlinkGenerated by BotBonnie when the user unlinks their BotBonnie identity from an external member account.
account_linkedactionclicked
actionclickedLogged when the user taps an action button on a push notification, including the copy-code button.
notificationidactionidadd_tag
add_tagGenerated by BotBonnie when a tag is added to the user. The user's full tag list is also saved to the bb_tag_ids and bb_tag_names user properties.
bb_tag_idsbb_tag_namesaiq_cg_received
aiq_cg_receivedLogged when an in-app or in-web campaign is triggered for a user in the experiment's control group. The message is not shown, and this event is logged instead of qg_inapp_displayed or qg_inweb_displayed.
notificationidtypeaiq_deep_link_redirected
aiq_deep_link_redirectedLogged when the app is opened through a deep link or universal link, with the original URL, its UTM and attribution parameters, and the time of the last app launch.
urlasitimestamplast_app_launched_timeutm_sourceutm_mediumutm_campaignutm_termutm_contentutm_idutm_source_platformutm_creative_formatutm_marketing_tacticaiq_geofence
aiq_geofenceLogged when the Android SDK sends a batch of geofence transitions together. Each transition is included as a record in the transitions property. Only logged when geofencing is enabled for your account.
transitionslatitude, longitude, timestamp (epoch seconds), provider, geofence_id, geofence_name, geofence_latitude, geofence_longitude, geofence_radius, transition (1 = enter, 2 = exit), and isMock; altitude, accuracy, speed, bearing, bearingAccuracyDegrees, verticalAccuracy, speedAccuracy, and isComplete are added when the device reports them.
aiq_kakao_pending
aiq_kakao_pendingLogged when Infobip reports that a Kakao campaign message is not yet delivered (pending).
notificationidmsgidtsvendorerrorinfobip_status_nameinfobip_error_nameinfobip_mccmncaiq_kakao_rejected
aiq_kakao_rejectedLogged when Infobip reports that a Kakao campaign message could not be delivered.
notificationidmsgidtsvendorerrorinfobip_status_nameinfobip_error_nameinfobip_mccmncaiq_mms_operation_failed
aiq_mms_operation_failedLogged when an MMS send request fails as a whole, because Mitake returned an error for the request or AIQUA could not complete it, so no message was accepted.
notificationidtsvendererror_codeerror_descriptionaiq_mms_rejected
aiq_mms_rejectedLogged when Mitake reports that an MMS campaign message could not be delivered.
notificationidmsgidtsvenderstatus_codestatus_descaiq_mms_sending_failed
aiq_mms_sending_failedLogged when Mitake accepts an MMS send request but rejects an individual message in it.
notificationidtsvendervendortrackiderror_codeerror_descriptionaiq_notification_blocked
aiq_notification_blockedLogged when a push notification is received but not shown, because it arrived during the configured blackout window or after it expired. Android only.
notificationidaiq_onsite_experience_clicked
aiq_onsite_experience_clickedLogged when the user clicks a link in content added by an onsite experience campaign.
experience_idcreative_idaiq_onsite_experience_displayed
aiq_onsite_experience_displayedLogged when an onsite experience campaign changes the website content for the user.
experience_idcreative_idaiq_sms_pending
aiq_sms_pendingLogged when the SMS vendor reports that an SMS campaign message is accepted but not yet delivered (pending or buffered).
notificationidmsgidtsmsgcountvonage_statusvonage_err_codevonage_network_codeerrorinfobip_status_nameinfobip_error_nameinfobip_mccmncaiq_sms_rejected
aiq_sms_rejectedLogged when the SMS vendor reports that an SMS campaign message could not be delivered.
notificationidmsgidtserrormsgcountvonage_statusvonage_err_codevonage_network_codeinfobip_status_nameinfobip_error_nameinfobip_mccmncvenderstatus_codestatus_flagstatus_flag_meaningstatus_stringaiq_switch_app_id
aiq_switch_app_idLogged when the app switches the SDK to a different Appier app ID, with the previous and new IDs.
fromtoapp_launched
app_launchedLogged each time the app is launched or brought to the foreground. Not logged when the app starts in the background (for example, woken by a silent push).
appier_property_update
appier_property_updateLogged each time a user property changes value, with the property's new and previous value. Only visible in AIRIS.
propertyvaluelastbeacon
beaconGenerated by BotBonnie when the user enters the range of a LINE Beacon.
hwidbutton click
button clickGenerated by AIRIS when the user clicks a link, button, or submit input on your website. Click tracking is on by default. AIRIS also adds the AIRIS system event properties.
texturlpage_urlpage_titletag_nametagname instead.
classnametypetitlepointer_typedom_pathcancel_NTN
cancel_NTNGenerated by BotBonnie when the user stops receiving recurring notification messages.
tokentopicexpiredfrequencycategory_viewed
category_viewedLog when the user views a product category page.
category_nameuser_idEvent logging sample
appier('event', 'category_viewed', {
category_name: 'Shoes,Running',
user_id: 'member_10023'
});var properties: [String: Any] = [:]
properties["category_name"] = "Shoes,Running"
properties["user_id"] = "member_10023"
QGSdk.getSharedInstance().logEvent("category_viewed",
withParameters: properties)try {
val properties = JSONObject()
properties.put("category_name", "Shoes,Running")
properties.put("user_id", "member_10023")
QG.getInstance(context).logEvent("category_viewed", properties)
} catch (e: JSONException) {
// Handle the exception
}checkout_completed
checkout_completedLog once per order when the user completes checkout. Use it as the conversion event, and log a product_purchased event for each product in the order. Include the order's total value as valueToSum.
order_idRequiredorder_quantityorder_amountuser_idcurrencyEvent logging sample
appier('event', 'checkout_completed', {
order_id: 'ORD-20240930-001',
order_quantity: 2,
order_amount: 1599.98,
user_id: 'member_10023',
currency: 'TWD'
}, 1599.98);var properties: [String: Any] = [:]
properties["order_id"] = "ORD-20240930-001"
properties["order_quantity"] = 2
properties["order_amount"] = 1599.98
properties["user_id"] = "member_10023"
properties["currency"] = "TWD"
QGSdk.getSharedInstance().logEvent("checkout_completed",
withParameters: properties,
withValueToSum: 1599.98)try {
val properties = JSONObject()
properties.put("order_id", "ORD-20240930-001")
properties.put("order_quantity", 2)
properties.put("order_amount", 1599.98)
properties.put("user_id", "member_10023")
properties.put("currency", "TWD")
QG.getInstance(context).logEvent("checkout_completed", properties, 1599.98)
} catch (e: JSONException) {
// Handle the exception
}checkout_initiated
checkout_initiatedLog when the user starts the checkout process.
user_idcurrencyEvent logging sample
appier('event', 'checkout_initiated', {
user_id: 'member_10023',
currency: 'TWD'
});var properties: [String: Any] = [:]
properties["user_id"] = "member_10023"
properties["currency"] = "TWD"
QGSdk.getSharedInstance().logEvent("checkout_initiated",
withParameters: properties)try {
val properties = JSONObject()
properties.put("user_id", "member_10023")
properties.put("currency", "TWD")
QG.getInstance(context).logEvent("checkout_initiated", properties)
} catch (e: JSONException) {
// Handle the exception
}click
clickGenerated by BotBonnie when the user clicks a button or postback action in a bot message.
valuecontent_detail_viewed
content_detail_viewedLog when a key detail page is displayed, such as a service, program, plan, property, or consultation detail. Log it only after the page is successfully displayed. Website only.
content_idRequiredcontent_namecontent_typecontent_categorycontent_linkEvent logging sample
appier('event', 'content_detail_viewed', {
content_id: 'SERVICE-123',
content_name: 'Financial Planning Consultation',
content_type: 'service',
content_category: 'financial_planning',
content_link: 'https://example.com/services/financial-planning'
});delete_params
delete_paramsGenerated by BotBonnie when the user's custom fields or basic profile data are deleted. Only the deleted fields are sent.
bb_params_<encoded field name>value) and field name (name). The property name ends with the encoded field name.
download
downloadGenerated by AIRIS when the user clicks a link on your website to a downloadable file, such as a PDF, ZIP, Office document, or video. Download tracking is on by default. The UTM and campaign properties describe the visit, not the file. AIRIS also adds the AIRIS system event properties.
utm_sourceutm_mediumutm_campaignutm_termutm_contentutm_idutm_aa_crtv_idcampaign_sourcecampaign_mediumcampaign_namecampaign_termcampaign_contentcampaign_idcampaign_aa_crtv_idec_account_link
ec_account_linkGenerated by BotBonnie when the user links their e-commerce or CRM member account. The member's details, such as name, email address, phone number, and membership tier, are also saved to the user's profile.
ec_account_linkedec_coupon_received
ec_coupon_receivedGenerated by BotBonnie when the user receives a coupon.
coupon_titlecoupon_codepromotion_idpromotion_typeuser_idexpired_dateec_credit_received
ec_credit_receivedGenerated by BotBonnie when the user receives store credit.
valuecredit_earnedremainingreasonexpired_dateuser_idec_credit_used
ec_credit_usedGenerated by BotBonnie when the user uses store credit.
valuecredit_earnedremainingreasonexpired_dateuser_idec_membership_tier_updated
ec_membership_tier_updatedGenerated by BotBonnie when the user's membership tier changes. The new tier, with its ID, name, and expiration date, is saved to the ec_membership_tier user property.
ec_order_placed
ec_order_placedGenerated by BotBonnie when the user places an order.
order_idorder_numberorder_paymentamountcurrencypayment_typedeliverypurchased_productsproduct_id) and quantity (quantity).
user_idec_order_refunded
ec_order_refundedGenerated by BotBonnie when an order is refunded.
order_idorder_numberrefund_amountamountcurrencypayment_typecancel_reasonec_order_status_changed
ec_order_status_changedGenerated by BotBonnie when the status of an order changes.
order_idcurrent_statusstatus_changed_atec_point_received
ec_point_receivedGenerated by BotBonnie when the user earns loyalty points.
valuepoint_earnedremainingreasonexpired_dateuser_idec_point_used
ec_point_usedGenerated by BotBonnie when the user uses loyalty points.
valuepoint_earnedremainingreasonexpired_dateuser_idec_shipment_updated
ec_shipment_updatedGenerated by BotBonnie when an order is shipped or delivered.
statusorder_idorder_numberorder_paymentpayment_typedeliverytracking_numberdelivery_datestatus is "delivered".
first_app_launched
first_app_launchedLogged once, the first time the app is launched after the SDK is installed.
follow
followGenerated by BotBonnie when the user follows your official account.
geofence_enter
geofence_enterLogged when the device enters an Appier geofence (a configured location area). Only logged when geofencing is enabled for your account.
geofence_idgeofence_namegeofence_latitudegeofence_longitudegeofence_radiusgeofence_configlatitudelongitudealtitudeaccuracyspeedprovidertimestampgeofence_exit
geofence_exitLogged when the device leaves an Appier geofence. Only logged when geofencing is enabled for your account.
geofence_idgeofence_namegeofence_latitudegeofence_longitudegeofence_radiusgeofence_configlatitudelongitudealtitudeaccuracyspeedprovidertimestampgeofence_register_failed
geofence_register_failedLogged when the SDK fails to register a geofence for monitoring. Only logged when geofencing is enabled for your account.
geofence_idgeofence_nameerrorgeofence_latitudegeofence_longitudegeofence_radiusgeofence_configtimestampgeofence_updated
geofence_updatedLogged when the SDK has finished registering or updating the geofences to monitor on the device. Only logged when geofencing is enabled for your account.
incognito_browsing
incognito_browsingLogged when the SDK detects that the user is browsing in a private or incognito window.
interest_tagging
interest_taggingGenerated by AIRIS when it tags the user with an interest keyword. AIRIS also adds the AIRIS system event properties.
keywordjourney_map_entry
journey_map_entryLogged when a user enters a journey map.
timestampjourney_map_idjourney_node_idjourney_map_versionjourney_map_exit
journey_map_exitLogged when a user exits a journey map, with the node they left from and, when it applies, the path they took out of that node.
timestampjourney_map_idjourney_node_idjourney_map_versionjourney_map_split_path_typejourney_map_split_path_idlead_initiated
lead_initiatedLog when the user first interacts meaningfully with a lead or consultation form. Don't log it on page load. Website only.
form_idform_nameservice_idservice_nameEvent logging sample
appier('event', 'lead_initiated', {
form_id: 'CONSULTATION-FORM',
form_name: 'Book a Consultation',
service_id: 'SERVICE-123',
service_name: 'Financial Planning Consultation'
});lead_submitted
lead_submittedLog when the website confirms that a lead or inquiry was submitted. Use it as the primary lead conversion. Website only.
lead_idform_idform_nameservice_idservice_namelead_sourceuser_idemailphone_noEvent logging sample
appier('event', 'lead_submitted', {
lead_id: 'LEAD-123',
form_id: 'CONSULTATION-FORM',
form_name: 'Book a Consultation',
service_id: 'SERVICE-123',
service_name: 'Financial Planning Consultation',
lead_source: 'website_consultation_form',
user_id: 'member_10023',
email: '[email protected]',
phone_no: '+886912345678'
});login
loginLog after your website or app confirms the user's sign-in, not when the login page loads or the login button is clicked.
Event logging sample
// Call after your website's own sign-in succeeds.
// Saves user_id to the user's profile, then sends the login event.
appier('login', 'user_id', 'member_10023');QGSdk.getSharedInstance().logEvent("login")QG.getInstance(context).logEvent("login")mobile_screen_viewed
mobile_screen_viewedLog when your app shows a screen, by calling AiDeal's startLogging method with the screen's page types. The SDK logs this event with the page types you pass.
screen_typesEvent logging sample
// In the screen's view controller
let attributes = AIDPageAttributes.Builder()
.pageType(.item)
.build()
AppierSDK.AiDeal.startLogging(self, attributes: attributes)// In the screen's Activity
val attributes = Attributes.Builder()
.pageType(PageType.ITEM)
.build()
Appier.AiDeal.startLogging(this, attributes)notification_browsed
notification_browsedLogged when the user browses the items of a carousel or slider push, by tapping next or previous or by swiping.
notificationidnotification_clicked
notification_clickedLogged when the user clicks a campaign message, taps an app or web push notification, opens a tracked link in an email, or lands on the website or app from a LINE or ATM campaign link. Not logged for in-app, in-web, and MMS campaigns.
notificationidactionidqgtagproduct_linetsurlnotification_delivered
notification_deliveredLogged when the sending vendor reports that a campaign message was delivered to the user. Covers SMS, MMS, Kakao, email, and LINE. For LINE, logged as soon as the message is sent.
notificationidtsmsgidvendervendormsgcountipnotification_displayed
notification_displayedLogged when a push notification is shown on the device. On iOS it is logged by the Notification Service Extension.
notificationidnotification_error
notification_errorLogged when a campaign message sent through ESS Sender fails to reach the user, currently for Kakao Moment campaigns. The event carries no error details.
notificationidtsnotification_received
notification_receivedLogged when a campaign message reaches the user: an app or web push arrives on the device, or the email service provider reports the email as sent or delivered.
notificationiddevice_timein_blackout_windowexpiredmsgidtsnotification_sent
notification_sentLogged when a campaign message is accepted by the sending vendor for a user. Covers app push (FCM, APNs), web push, SMS, MMS, Kakao, email, and LINE. Not logged for in-app and in-web campaigns.
notificationidtsvendervendortrackidmsgcountnotification_targeted
notification_targetedLogged when a user is selected as a recipient of an A/B experiment campaign, including users in the control group, who are not sent the message.
notificationidtsoutgoing
outgoingGenerated by AIRIS when the user clicks a link from your website to another website. Outgoing link tracking is on by default. AIRIS also adds the AIRIS system event properties.
page_viewed
page_viewedLogged on every page load of the website, with the page URL, the referrer, and any UTM parameters from the URL.
urlreferrerdocument.referrer). Sent only when the browser provides one.
qg_segqg_seg query parameter in the page URL. Sent only when present.
utm_sourceutm_mediumutm_campaignutm_termutm_contentutm_idutm_aa_crtv_idutm_aa_crtv_id) from the URL of the viewed page.
Event logging sample
// Single-page applications only: the SDK logs page_viewed automatically on other websites.
// Log it manually each time the page's URL changes.
appier('event', 'page_viewed', { url: window.location.href });payment_info_added
payment_info_addedLog when the user adds payment information, such as a credit card or PayPal account, to their account.
user_idEvent logging sample
appier('event', 'payment_info_added', {
user_id: 'member_10023'
});var properties: [String: Any] = [:]
properties["user_id"] = "member_10023"
QGSdk.getSharedInstance().logEvent("payment_info_added",
withParameters: properties)try {
val properties = JSONObject()
properties.put("user_id", "member_10023")
QG.getInstance(context).logEvent("payment_info_added", properties)
} catch (e: JSONException) {
// Handle the exception
}prediction_score_update
prediction_score_updateLogged when AiDeal updates its prediction scores for the user, such as conversion, price sensitivity, and uplift scores. Used in journey map conditions.
conversion_scoreprice_sensitivity_scoreuplift_scoreproduct_added_to_cart
product_added_to_cartLog when the user adds a product to their shopping cart. Log one event per product.
product_idproduct_priceproduct_nameproduct_image_urluser_idproduct_categorycurrencyEvent logging sample
appier('event', 'product_added_to_cart', {
product_id: 'SKU-10023',
product_price: 799.99,
product_name: 'Running Shoes X1',
product_image_url: 'https://cdn.example.com/img/sku-10023.jpg',
product_url: 'https://www.example.com/products/sku-10023',
user_id: 'member_10023',
product_category: 'Shoes,Running',
currency: 'TWD'
});var properties: [String: Any] = [:]
properties["product_id"] = "SKU-10023"
properties["product_price"] = 799.99
properties["product_name"] = "Running Shoes X1"
properties["product_image_url"] = "https://cdn.example.com/img/sku-10023.jpg"
properties["product_url"] = "https://www.example.com/products/sku-10023"
properties["user_id"] = "member_10023"
properties["product_category"] = "Shoes,Running"
properties["currency"] = "TWD"
QGSdk.getSharedInstance().logEvent("product_added_to_cart",
withParameters: properties)try {
val properties = JSONObject()
properties.put("product_id", "SKU-10023")
properties.put("product_price", 799.99)
properties.put("product_name", "Running Shoes X1")
properties.put("product_image_url", "https://cdn.example.com/img/sku-10023.jpg")
properties.put("product_url", "https://www.example.com/products/sku-10023")
properties.put("user_id", "member_10023")
properties.put("product_category", "Shoes,Running")
properties.put("currency", "TWD")
QG.getInstance(context).logEvent("product_added_to_cart", properties)
} catch (e: JSONException) {
// Handle the exception
}product_added_to_wishlist
product_added_to_wishlistLog when the user adds a product to their wishlist or favorites.
product_idproduct_priceproduct_nameproduct_image_urluser_idproduct_categoryEvent logging sample
appier('event', 'product_added_to_wishlist', {
product_id: 'SKU-10023',
product_price: 799.99,
product_name: 'Running Shoes X1',
product_image_url: 'https://cdn.example.com/img/sku-10023.jpg',
product_url: 'https://www.example.com/products/sku-10023',
user_id: 'member_10023',
product_category: 'Shoes,Running'
});var properties: [String: Any] = [:]
properties["product_id"] = "SKU-10023"
properties["product_price"] = 799.99
properties["product_name"] = "Running Shoes X1"
properties["product_image_url"] = "https://cdn.example.com/img/sku-10023.jpg"
properties["product_url"] = "https://www.example.com/products/sku-10023"
properties["user_id"] = "member_10023"
properties["product_category"] = "Shoes,Running"
QGSdk.getSharedInstance().logEvent("product_added_to_wishlist",
withParameters: properties)try {
val properties = JSONObject()
properties.put("product_id", "SKU-10023")
properties.put("product_price", 799.99)
properties.put("product_name", "Running Shoes X1")
properties.put("product_image_url", "https://cdn.example.com/img/sku-10023.jpg")
properties.put("product_url", "https://www.example.com/products/sku-10023")
properties.put("user_id", "member_10023")
properties.put("product_category", "Shoes,Running")
QG.getInstance(context).logEvent("product_added_to_wishlist", properties)
} catch (e: JSONException) {
// Handle the exception
}product_purchased
product_purchasedLog once for each product in a completed order, along with one checkout_completed event for the order. Include the product's value as valueToSum. Don't use it as the primary order conversion event, since one order can produce several of these events. Use checkout_completed instead.
order_idRequiredproduct_idRequiredproduct_priceproduct_nameproduct_image_urlproduct_categoryproduct_quantitytotal_priceuser_idcurrencyEvent logging sample
appier('event', 'product_purchased', {
order_id: 'ORD-20240930-001',
product_id: 'SKU-10023',
product_price: 799.99,
product_name: 'Running Shoes X1',
product_image_url: 'https://cdn.example.com/img/sku-10023.jpg',
product_url: 'https://www.example.com/products/sku-10023',
product_category: 'Shoes,Running',
product_quantity: 2,
total_price: 1599.98,
user_id: 'member_10023',
currency: 'TWD'
}, 1599.98);var properties: [String: Any] = [:]
properties["order_id"] = "ORD-20240930-001"
properties["product_id"] = "SKU-10023"
properties["product_price"] = 799.99
properties["product_name"] = "Running Shoes X1"
properties["product_image_url"] = "https://cdn.example.com/img/sku-10023.jpg"
properties["product_url"] = "https://www.example.com/products/sku-10023"
properties["product_category"] = "Shoes,Running"
properties["product_quantity"] = 2.0
properties["total_price"] = 1599.98
properties["user_id"] = "member_10023"
properties["currency"] = "TWD"
QGSdk.getSharedInstance().logEvent("product_purchased",
withParameters: properties,
withValueToSum: 1599.98)try {
val properties = JSONObject()
properties.put("order_id", "ORD-20240930-001")
properties.put("product_id", "SKU-10023")
properties.put("product_price", 799.99)
properties.put("product_name", "Running Shoes X1")
properties.put("product_image_url", "https://cdn.example.com/img/sku-10023.jpg")
properties.put("product_url", "https://www.example.com/products/sku-10023")
properties.put("product_category", "Shoes,Running")
properties.put("product_quantity", 2.0)
properties.put("total_price", 1599.98)
properties.put("user_id", "member_10023")
properties.put("currency", "TWD")
QG.getInstance(context).logEvent("product_purchased", properties, 1599.98)
} catch (e: JSONException) {
// Handle the exception
}product_removed_from_cart
product_removed_from_cartLog when the user removes a product from their shopping cart. Log one event per product.
product_idproduct_priceproduct_nameproduct_image_urluser_idEvent logging sample
appier('event', 'product_removed_from_cart', {
product_id: 'SKU-10023',
product_price: 799.99,
product_name: 'Running Shoes X1',
product_image_url: 'https://cdn.example.com/img/sku-10023.jpg',
product_url: 'https://www.example.com/products/sku-10023',
user_id: 'member_10023'
});var properties: [String: Any] = [:]
properties["product_id"] = "SKU-10023"
properties["product_price"] = 799.99
properties["product_name"] = "Running Shoes X1"
properties["product_image_url"] = "https://cdn.example.com/img/sku-10023.jpg"
properties["product_url"] = "https://www.example.com/products/sku-10023"
properties["user_id"] = "member_10023"
QGSdk.getSharedInstance().logEvent("product_removed_from_cart",
withParameters: properties)try {
val properties = JSONObject()
properties.put("product_id", "SKU-10023")
properties.put("product_price", 799.99)
properties.put("product_name", "Running Shoes X1")
properties.put("product_image_url", "https://cdn.example.com/img/sku-10023.jpg")
properties.put("product_url", "https://www.example.com/products/sku-10023")
properties.put("user_id", "member_10023")
QG.getInstance(context).logEvent("product_removed_from_cart", properties)
} catch (e: JSONException) {
// Handle the exception
}product_removed_from_wishlist
product_removed_from_wishlistLog when the user removes a product from their wishlist or favorites.
product_idproduct_priceproduct_nameproduct_image_urluser_idEvent logging sample
appier('event', 'product_removed_from_wishlist', {
product_id: 'SKU-10023',
product_price: 799.99,
product_name: 'Running Shoes X1',
product_image_url: 'https://cdn.example.com/img/sku-10023.jpg',
product_url: 'https://www.example.com/products/sku-10023',
user_id: 'member_10023'
});var properties: [String: Any] = [:]
properties["product_id"] = "SKU-10023"
properties["product_price"] = 799.99
properties["product_name"] = "Running Shoes X1"
properties["product_image_url"] = "https://cdn.example.com/img/sku-10023.jpg"
properties["product_url"] = "https://www.example.com/products/sku-10023"
properties["user_id"] = "member_10023"
QGSdk.getSharedInstance().logEvent("product_removed_from_wishlist",
withParameters: properties)try {
val properties = JSONObject()
properties.put("product_id", "SKU-10023")
properties.put("product_price", 799.99)
properties.put("product_name", "Running Shoes X1")
properties.put("product_image_url", "https://cdn.example.com/img/sku-10023.jpg")
properties.put("product_url", "https://www.example.com/products/sku-10023")
properties.put("user_id", "member_10023")
QG.getInstance(context).logEvent("product_removed_from_wishlist", properties)
} catch (e: JSONException) {
// Handle the exception
}product_viewed
product_viewedLog when the user views a product page or product details. On product pages it can replace page_viewed.
product_idproduct_priceproduct_nameproduct_image_urluser_idproduct_categorycurrencyEvent logging sample
appier('event', 'product_viewed', {
product_id: 'SKU-10023',
product_price: 799.99,
product_name: 'Running Shoes X1',
product_image_url: 'https://cdn.example.com/img/sku-10023.jpg',
product_url: 'https://www.example.com/products/sku-10023',
user_id: 'member_10023',
product_category: 'Shoes,Running',
currency: 'TWD'
});var properties: [String: Any] = [:]
properties["product_id"] = "SKU-10023"
properties["product_price"] = 799.99
properties["product_name"] = "Running Shoes X1"
properties["product_image_url"] = "https://cdn.example.com/img/sku-10023.jpg"
properties["product_url"] = "https://www.example.com/products/sku-10023"
properties["user_id"] = "member_10023"
properties["product_category"] = "Shoes,Running"
properties["currency"] = "TWD"
QGSdk.getSharedInstance().logEvent("product_viewed",
withParameters: properties)try {
val properties = JSONObject()
properties.put("product_id", "SKU-10023")
properties.put("product_price", 799.99)
properties.put("product_name", "Running Shoes X1")
properties.put("product_image_url", "https://cdn.example.com/img/sku-10023.jpg")
properties.put("product_url", "https://www.example.com/products/sku-10023")
properties.put("user_id", "member_10023")
properties.put("product_category", "Shoes,Running")
properties.put("currency", "TWD")
QG.getInstance(context).logEvent("product_viewed", properties)
} catch (e: JSONException) {
// Handle the exception
}pv
pvGenerated by AIRIS when the user loads a page on your website. AIRIS also adds the AIRIS system event properties.
urititlereturningscroll_depthqg_carousel_clicked
qg_carousel_clickedLogged when the user taps an item in a carousel or slider push. The clicked item's content is sent with the event.
notificationidtitlemessageimageimageurlbodydeeplinkqg_carousel_dismissed
qg_carousel_dismissedLogged when the user dismisses a carousel or slider push with its dismiss action. iOS only.
notificationidqg_email_deferral
qg_email_deferralLogged when an email campaign message temporarily cannot be delivered and will be retried. Same meaning as qg_email_deferred, for emails sent through Mandrill.
notificationidmsgidtsqg_email_deferred
qg_email_deferredLogged when an email campaign message temporarily cannot be delivered. The email service provider keeps retrying delivery for up to 72 hours.
notificationidmsgidtsqg_email_group_resubed
qg_email_group_resubedLogged when the user resubscribes to an email subscription group they had left.
notificationidmsgidtsqg_email_group_unsubed
qg_email_group_unsubedLogged when the user unsubscribes from an email subscription group.
notificationidmsgidtsqg_email_hard_bounced
qg_email_hard_bouncedLogged when an email campaign message hard-bounces, meaning delivery failed for a permanent reason such as the email address not existing. The user's email is also marked as hard-bounced in their profile.
notificationidmsgidtsqg_email_opened
qg_email_openedLogged when the user opens an email campaign message, as reported by the email service provider or by AIQUA's open-tracking pixel.
notificationidmsgidtsqg_email_processed
qg_email_processedLogged when the email service provider accepts an email campaign message and prepares to deliver it.
notificationidmsgidtsqg_email_rejected
qg_email_rejectedLogged when the email service provider rejects an email campaign message and does not send it, for example because the address is on its blocklist.
notificationidmsgidtsqg_email_soft_bounced
qg_email_soft_bouncedLogged when an email campaign message soft-bounces, meaning delivery failed for a temporary reason such as a full mailbox. Emails dropped by Sendgrid are also logged as soft bounces.
notificationidmsgidtsqg_email_spammed
qg_email_spammedLogged when the user reports an email campaign message as spam.
notificationidmsgidtsqg_email_unsubed
qg_email_unsubedLogged when the user unsubscribes from email campaigns, through AIQUA's unsubscribe link or the email service provider's unsubscribe function.
notificationidmsgidtsqg_inapp_clicked
qg_inapp_clickedLogged when the user taps a button or link in an in-app message, or a URL action in a Creative Studio in-app message.
notificationidactionidqgtagcalltoactiontextqg_inapp_closed
qg_inapp_closedLogged when the user closes an in-app message, or the message is closed by its own action (for example after a deep link opens).
notificationidqg_inapp_displayed
qg_inapp_displayedLogged when an in-app message is shown on the app screen. For Creative Studio in-app messages, it is logged when the content has finished loading.
notificationidtypeqg_inapp_failed
qg_inapp_failedLogged when an in-app message cannot be shown, for example because its payload is invalid, its image or icon fails to download, or a Creative Studio message fails to load.
notificationidreasonmsgcausenetworktypegiosgjsurlqg_inapp_lead_gen
qg_inapp_lead_genLogged when the user submits the form in a Creative Studio in-app message. The submission time and campaign ID are also saved to the user's profile.
notificationidleadtypeqg_inapp_toggled
qg_inapp_toggledLogged when the user expands or collapses a floating or badge in-app message. Not supported for Creative Studio in-app messages.
notificationidstateqg_inweb_clicked
qg_inweb_clickedLogged when the user clicks a call-to-action in an in-web message.
notificationidcalltoactiontextqg_inweb_closed
qg_inweb_closedLogged when the user closes an in-web message.
notificationidqg_inweb_displayed
qg_inweb_displayedLogged when an in-web message (a pop-up or banner on the website) is shown to the user.
notificationidqg_inweb_lead_gen
qg_inweb_lead_genLogged when the user submits the form in an in-web lead-generation or Creative Studio message. The submitted fields and submission details are also saved to the user's profile.
notificationidleadtypeleadsubmitidleadkeysqg_line_click
qg_line_clickLogged when the user opens the website or app from a link in a LINE campaign message, identified by the _lnchid and _lnuid parameters in the link. A notification_clicked event is also logged for the campaign, and the user's LINE channel ID and LINE UID are saved to their profile.
urlutm_sourceutm_mediumutm_campaignutm_termutm_contentutm_idutm_aa_crtv_idqg_notification_dismissed
qg_notification_dismissedLogged when the user taps the dismiss button on a carousel or slider push. Android only.
notificationidactionidqg_rich_push_opened
qg_rich_push_openedLogged when the user expands a rich push notification (carousel or slider) to view its content. iOS only.
notificationidrecommendation_clicked
recommendation_clickedLog when the user clicks a product recommended by an Appier recommendation scenario in your app, by calling the SDK's logRecommendationClicked method. On websites, and for recommendations in Creative Studio in-app messages, the SDK logs it automatically. Not attributed to campaigns.
scenario_idRequiredmodel_idRequiredrecommendation_idRequiredproduct_idRequiredEvent logging sample
QGSdk.getSharedInstance().logRecommendationClicked(withScenarioId: "SCENARIO-ID-123",
withModelId: "12345",
withProductId: "SKU-10023",
withRecommendationId: "73c01528-8a61-4181-a185-974d8e19286f")QG.getInstance(context).logRecommendationClicked(
"SCENARIO-ID-123",
"12345",
"SKU-10023",
"73c01528-8a61-4181-a185-974d8e19286f"
)recommendation_impression
recommendation_impressionLogged when an Appier recommendation scenario returns products to show the user, or returns no products for a no-recommendation experiment group. Not attributed to campaigns.
scenario_idmodel_idrecommendation_idregistration_completed
registration_completedLog when the user finishes registering an account.
user_idEvent logging sample
appier('event', 'registration_completed', {
user_id: 'member_10023'
});var properties: [String: Any] = [:]
properties["user_id"] = "member_10023"
QGSdk.getSharedInstance().logEvent("registration_completed",
withParameters: properties)try {
val properties = JSONObject()
properties.put("user_id", "member_10023")
QG.getInstance(context).logEvent("registration_completed", properties)
} catch (e: JSONException) {
// Handle the exception
}registration_initiated
registration_initiatedLog when the user starts registering an account.
Event logging sample
appier('event', 'registration_initiated');QGSdk.getSharedInstance().logEvent("registration_initiated")QG.getInstance(context).logEvent("registration_initiated")remove_tag
remove_tagGenerated by BotBonnie when a tag is removed from the user. The user's remaining tags are also saved to the bb_tag_ids and bb_tag_names user properties.
bb_tag_idsbb_tag_namessearched
searchedLog when the user searches the website or app.
searched_keywordsearched_keywordsuser_idEvent logging sample
appier('event', 'searched', {
searched_keyword: 'running shoes',
searched_keywords: 'running shoes,socks',
user_id: 'member_10023'
});var properties: [String: Any] = [:]
properties["searched_keyword"] = "running shoes"
properties["searched_keywords"] = "running shoes,socks"
properties["user_id"] = "member_10023"
QGSdk.getSharedInstance().logEvent("searched",
withParameters: properties)try {
val properties = JSONObject()
properties.put("searched_keyword", "running shoes")
properties.put("searched_keywords", "running shoes,socks")
properties.put("user_id", "member_10023")
QG.getInstance(context).logEvent("searched", properties)
} catch (e: JSONException) {
// Handle the exception
}send
sendGenerated by BotBonnie when the user sends a message to the bot, such as text, an image, or a sticker.
typestory_mention
story_mentionGenerated by BotBonnie when the user mentions your account in a social media story, such as an Instagram story.
storysource) and ID (id).
subscribed_to_webpush
subscribed_to_webpushLogged when the website's web push notification permission changes to "granted", for example when the user clicks Allow in the browser prompt. The Web SDK checks the permission when the prompt is answered and on each page load, so a change made in browser settings is logged on the user's next visit.
urlreferrerdocument.referrer) when the permission change was detected. Sent only when the browser provides one.
unfollow
unfollowGenerated by BotBonnie when the user unfollows your official account.
unsubscribed_to_webpush
unsubscribed_to_webpushLogged when the website's web push notification permission changes to "denied", for example when the user clicks Block in the browser prompt or blocks notifications in browser settings. A permission reset to the default state (ask again) is not logged.
urlreferrerdocument.referrer) when the permission change was detected. Sent only when the browser provides one.
url_click
url_clickGenerated by BotBonnie when the user clicks a link in a bot message.
valuevisited
visitedLogged on the user's first page load of the day on the website; at most once per day.
urlutm_sourceutm_mediumutm_campaignutm_termutm_contentutm_idutm_aa_crtv_idutm_aa_crtv_id) from the URL of the page the user landed on.
Deprecated events
These events are no longer in use. They may still appear in your data when users have apps or websites with older SDK versions, but Appier features don't use them.
aiq_cs_load_started
aiq_cs_load_startedLogged when a Creative Studio in-app message starts loading its content. iOS only.
notificationidgiosg_interaction_idtypeaiq_web_personalization_impression
aiq_web_personalization_impressionLogged when a web personalization campaign replaces content on the website with personalized content.
campaign_idurlreferrerdocument.referrer).
drip_notification_shown
drip_notification_shownLogged when a queued drip push is shown after the user deletes the previous notification of a drip campaign. Android only.
inapp_param_missing
inapp_param_missingLogged when an in-app campaign's trigger has parameter conditions but the triggering event has no parameters, so the campaign cannot be matched. Android only.
missing_endpoint
missing_endpointLogged when the app calls the recommendation API but no recommendation endpoint is configured for the app. iOS only.
endpointapiqg_exception
qg_exceptionLogged when the Android SDK hits an internal error, for example a notification job fails to start, a notification sound fails to download, or campaign resources fail to load.
msgcausenetworktypefilenamedensityAIRIS system event properties
AIRIS adds these properties automatically to every event it tracks. They aren't repeated on each event card. Data types are shown as they appear in AIRIS.
~d~i~ois_first~c~n~a~p~q~r~s~z~u@time~tcampaign_nameutm_campaign.campaign_sourceutm_source.campaign_mediumutm_medium.campaign_contentutm_content.campaign_termutm_term.campaign_idutm_id.Updated about 17 hours ago
