New Account Monitoring

Boxalino provides a standardize Monitoring view which catches all the typical set-up issues so it is easy to monitor what has been done (and should work) from the to do / to fix.

category

label

signal.description

last check

state

category

label

signal.description

last check

state

1

products

total products

the total number of distinct product (sku) ids ever imported

26 Feb 2023, 17:57:40

normal

2

orders

last transaction

the timestamp of the last transaction imported

26 Feb 2023, 17:57:40

normal

3

orders

new customer rate

the percentage of transactions which are the first order of a customer in the last week

26 Feb 2023, 17:57:40

abnormal

4

orders

order margin rate

the percentage of order margin in the last week

26 Feb 2023, 17:57:40

normal

5

orders

order revenue versus product revenue

the percentage of products product revenue should be 90% similar to the order revenue

26 Feb 2023, 17:57:40

normal

6

orders

product id match rate

the percentage of products from the orders that are found in the products data

26 Feb 2023, 17:57:40

normal

7

orders

total transactions

the total number of distinct transaction identifiers ever imported

26 Feb 2023, 17:57:40

normal

8

google analytics

last Google Analytics event

the timestamp of the last Google Analytics event

26 Feb 2023, 17:57:40

normal

9

google analytics

total Google Analytics events

the total number of Google Analytics events ever

26 Feb 2023, 17:57:40

normal

10

google analytics

untracked percentage

the percentage of untracked transactions in the ECM type in the last week

26 Feb 2023, 17:57:40

unmatched

11

google ads

has conversions

the number of conversions for the last week > 10

26 Feb 2023, 17:57:40

abnormal

12

google ads

last Google Ads Campaign entry

the timestamp of the last Google Ads Campaign table entries

26 Feb 2023, 17:57:40

normal

13

google ads

shopping conversions percentage

the percentage of the google shopping conversions versus all gads conversions

26 Feb 2023, 17:57:40

abnormal

14

google ads

shopping attribution percentage

the percentage of the google shopping conversions versus attributed purchases

26 Feb 2023, 17:57:40

abnormal

15

google ads

total Google Ads Campaign entries

the total number of Google Ads Campaign table entries ever

26 Feb 2023, 17:57:40

normal

16

customers

total customers

the total number of distinct customer identifiers ever imported

26 Feb 2023, 17:57:40

normal

17

Online Marketing Report

Paid Search Unique Purchase

the total unique purchases (products) attributed to Paid Search during the last month with session source

26 Feb 2023, 17:57:40

normal

18

Online Marketing Report

Paid Search purchases

the total purchases attributed to Paid Search during the last month with session source

26 Feb 2023, 17:57:40

normal

19

Google Shopping Feed

Google Shopping Feed

there is at least 1 google shopping feed active

26 Feb 2023, 17:57:40

normal

20

Boxalino js tracking

last Boxalino JS tracking event

the timestamp of the last Boxalino javascript tracking event

26 Feb 2023, 17:57:40

missing

21

Boxalino js tracking

total Boxalino JS tracking events

the total number of boxalino javascript tracking events ever

26 Feb 2023, 17:57:40

missing

22

Boxalino API requests

last Boxalino API request

the timestamp of the last Boxalino API request

26 Feb 2023, 17:57:40

missing

23

Boxalino API requests

total Boxalino API requests

the total number of Boxalino API requests ever

26 Feb 2023, 17:57:40

missing

 

3. orders - new customer rate

the percentage of transactions which are the first order of a customer in the last week

What does it mean?

Either there are less then 10 customers or the percentage of new customers is higher(>90%) or lower(<10%) then expected.

What is the typical cause?

Orders are completely/partially missing in the core.

How to solve it?

Check why Orders are not updated.

4. orders - order margin rate

the percentage of order margin in the last week

What does it mean?

Either there are less then 10 orders or the margin rate is higher(>90%) or lower(<10%) then expected.

What is the typical cause?

  1. Orders are completely/partially missing in the core.

  2. Missing Margin Data.

How to solve it?

  1. Check why Orders are not updated.

  2. Check for standard margin fields in doc_order and doc_product. If none is available ask the client directly.

 

The configuration flow is the following:

  • views.product_margin defines what is the product margin ( (product_sales_price - product_purchase_price) / product_sales_price) which is by default set from the value of the doc_product grossMargin and, if none set with a fall-back to a fix value of 30%

  • reports.product_version is then set historically with the margin at the time of each processing (typically daily)

  • views.order_line_margin is by default using the margin of reports.product_version

  • version.order_margin is by default using the margin of views.order_line_margin

  • the views order_line_margin and order_margin are used in the order_primary and order_product reports tables

Each of the 3 views can be overwritten in case more precise information is available, but the only one which must be overwritten if the purchase sales price is available is the first view.

Here is an example of how to update the views.product_version with a field called 'purchasePrice':

SELECT product_id , exact_margin , round(exact_margin * 20) / 20 as rounded_margin from ( select p.product_id, least(case when any_value(dp.property_value) is null or safe_cast(any_value(dp.property_value) as float64) <= 0 or any_value(m.property_value) is null or safe_cast(any_value(m.property_value) as float64) = 0 then 0.3 else ( safe_cast(any_value(dp.property_value) as float64) - safe_cast(any_value(m.property_value) as float64)) / safe_cast(any_value(dp.property_value) as float64) end, 1) as exact_margin FROM `bx-bdp-53322.ACCOUNT_NAME_views.product` as p left join `bx-bdp-53322.ACCOUNT_NAME_views.product_property_optimized` as dp on dp.product_id = p.product_id and dp.property_name = 'discountedPrice' left join `bx-bdp-53322.ACCOUNT_NAME_views.product_property_optimized` as m on m.product_id = p.product_id and m.property_name = 'purchasePrice' group by p.product_id )

As the reports product_version keeps the historical data, you can then either truncate it or, if you don’t want to lose the changes in product prices, to update it with a query like follows:

update `bx-bdp-53322.ACCOUNT_NAME_reports.product_version` as p set p.margin = m.exact_margin from `bx-bdp-53322.ACCOUNT_NAME_views.product_margin` AS m where p.margin != m.exact_margin and p.product_id = m.product_id

5. orders - order revenue versus product revenue

the percentage of products product revenue should be 85% similar to the order revenue

What does it mean?

the product revenue is either below 85% or above 115% of the order revenue.

What is the typical cause?

  1. order revenue includes shipping cost

  2. order revenue includes additional service cost (custom packaging, greeting card)

  3. (issue in order_line so that order and product revenue are a complete mismatch)

How to solve it?

  1. ???

  2. ???

 

10. google analytics - untracked percentage

the percentage of untracked transactions in the ECM type in the last week

What does it mean?

Too many purchases cannot be mapped with the Google Analytics data.

What is the typical cause?

The order identifiers exported in doc_order do not match the ones in Google Analytics tracking

How to solve it?

Modify in BigQuery the view : views.order_external_id in way similar to these ones:

select internal_id as order_id, external_id from `bx-bdp-53322.ACCOUNT_NAME_core.doc_order`
select o.order_id, any_value(ifnull(olp.property_value, o.order_id)) as external_id from `bx-bdp-53322.ACCOUNT_NAME_core.order` as o left join `bx-bdp-53322.ACCOUNT_NAME_core.order_line_property` as olp on o.order_id = olp.order_id and olp.property_name = 'increment_id' group by order_id

Other causes

Returns are in our reports but not tracked by GA4.

How to fix them?

Do not include Returns in reports.

11. google ads - has conversions

the number of conversions for the last week > 10

What does it mean?

There is a problem with the AdsTransfer or its configuration.

What is the typical cause?

  1. AdsTransfer not set up

  2. Configuration script not executed

How to solve it?

  1. Ask Client to set up the Transfer (How to transfer your Google Ads Data to BigQuery )

  2. Check the views created in 'bx-bigquery-google-ads-analytics-views.sql'

 

13. google ads - shopping conversions percentage

the percentage of the google shopping conversions versus all gads conversions

What does it mean?

The google shopping data do not represent a relevant percentage of the overall google ads conversions, which is most likely because it is not properly detected.

What is the typical cause?

First, it can be that the table reports.gads_campaign_offer_analytics is completely empty, which might be because the view views.ShoppingPerformance was not configured at all.

How to solve it?

Update the views.ShoppingPerformance as follows:

SELECT * FROM `bx-bdp-53322.boxalino_core.ShoppingPerformance` union all select 'OPTIMIZE' as serving_status , segments_product_channel as advertising_channel_type , 'UNSPECIFIED' as advertising_channel_sub_type , c.c.campaign_name as campaign , cast(s.campaign_id as int64) as campaign_id , campaign_status as status , segments_product_channel as product_channel , segments_product_channel_exclusivity as product_channel_exclusivity , segments_product_condition as product_condition , 'CHF' as currency , customer_id , '' as customer_name , date(_PARTITIONTIME) as day , segments_device as device , segments_product_item_id as item_id , segments_ad_network_type as ad_network_type , 'UNKNOWN' as click_type , metrics_all_conversions as all_conversions , metrics_all_conversions_value as all_conversions_value , metrics_average_cpc as average_cpc , metrics_ctr as ctr , metrics_clicks as clicks , case when metrics_clicks> 0 then metrics_all_conversions / metrics_clicks else 0 end as conversion_rate , metrics_conversions as conversions , metrics_cost_micros/1000000 as cost , cast(metrics_cross_device_conversions as string) as crossdevice_conversions , metrics_impressions as impressions , metrics_all_conversions_value as total_conversion_value from `GOOGLE_ADS_PROJECT.GOOGLE_ADS_DATASET.p_ads_ShoppingProductStats_GOOGLE_ADS_ACCOUNT_ID` as s join ( select campaign_id, date(_PARTITIONTIME) as day, any_value(c) as c from `GOOGLE_ADS_PROJECT.GOOGLE_ADS_DATASET.p_ads_Campaign_GOOGLE_ADS_ACCOUNT_ID` as c group by campaign_id, day ) as c on s.campaign_id = c.campaign_id and date(s._PARTITIONTIME) = c.day

Other causes

There is an issue with the transfer where the shopping tables are not filled properly.

How to fix them?

PMax not enabled in the transfer.

14. google ads - shopping conversions attribution

the percentage of the google shopping conversions versus attributed purchases

What does it mean?

The google shopping data have conversions, but these conversions are not attributed to specific product sales (or not enough: < 80%)

What is the typical cause?

It might be that the product identifier from ShoppingPerformance (google shopping offerid) doesn’t match with the product identifier of the order product data.

How to solve it?

Then, if you have Google Shopping Ads Data but no Attributed (Shopping) Metrics, it is probably because the SKU mapping doesn’t work and should be revealed by this SQL query:

select item_id , sum(clicks) as clicks FROM `bx-bdp-53322.ACCOUNT_NAME_views.ShoppingPerformance` as t left join `bx-bdp-53322.ACCOUNT_NAME_views.products_top_parent_sku` as pp on lower(pp.sku) = lower(item_id) where pp.sku is null group by item_id order by cl

in general, we try to extend the views.products_top_parent_sku to detect new cases automatically in a generic way. so we don’t have to implement a view every time. Therefore, the recommended resolution is a generic extension of that view.

Other causes

There is an issue with the transfer where the shopping tables are not filled properly.

How to fix them?

PMax not enabled in the transfer.

16. customers - total customers

the total number of distinct customer identifiers ever imported

What does it mean?

if “missing” no customer identifiers are exported to bx-bdp-53322.ACCOUNT_NAME_core.doc_customer.

if “low“ less then 100.

What is the typical cause?

Customer Data not available

How to solve it?

Wait for Client to provide Customer Data