Missing a table for data modelling step

Missing ‘atomic.com_snowplowanalytics_snowplow_web_page_1’ in redshift after the storage step and can’t proceed forward with the data modelling without it as mentioned - github sql query

Even without contexts: { webPage: true, performanceTiming: true, }

empty tables should have been formed.

I’ve just started using Snowplow. I’m a beginner and facing this problem.

Hi @Manav_Veer_Gulati. The standard web model relies heavily on the webPage context being present, so if you have not turned it on, then the model would not work for you. (An empty table will not help.)

If you want to use the model as is, you’ll have to enable the webPage context.

You can deploy the table for it using this DDL:

Hope this is helpful.

1 Like

Hi @dilyan ,
Please can you point out exactly where I’m supposed to turn it on.
Because in GTM I am tracking the page view - window.snowplow('trackPageView');
Do I separately need to turn it on?

Thanks in advance.

@Manav_Veer_Gulati, the tables won’t be created for you automatically when the corresponding tracking features are enabled. You would have to add them manually. All the tables DDL are located in Iglu Central: https://github.com/snowplow/iglu-central/tree/master/sql.

The data model you use relies on webPage contexts to be enabled. It is a predefined context and as such is added to argmap during tracker initialization: https://github.com/snowplow/snowplow/wiki/1-General-parameters-for-the-Javascript-tracker#22-initialising-a-tracker.

1 Like

Sure @Manav_Veer_Gulati. You turn it on when initialising the tracker. You can find the documentation here:

You’ll need to set:

webPage: true

Hi @dilyan @ihor
how come all my tables are getting populated and not atomic.com_snowplowanalytics_snowplow_web_page_1?
Please can you tell me what can be the thing I’m missing?

@Manav_Veer_Gulati, could you share your tracker initialization code, please?

@Manav_Veer_Gulati, I don’t need the whole tracking code, only initialization of the tracker. Here’s your initialization as I can see

SNOWPLOW_NAME_HERE('newTracker', 'snplow1', 'd1qkeqs71ytz4c.cloudfront.net', {

There’s no argmap in it, no webPage context. To have the context enabled it should look like

SNOWPLOW_NAME_HERE('newTracker', 'snplow1', 'd1qkeqs71ytz4c.cloudfront.net', {
  contexts: {
    webPage: true

Have you looked at the wiki page we have already pointed you out to?

Hi @ihor @dilyan
I added the param webPage as suggested. Finally I got good enriched data.

But still the table atomic.com_snowplowanalytics_snowplow_web_page_1 is not getting populated.

One line record of the good enriched record ->
{"line":"2019-06-13\t17:47:58\tFRA2\t365\t2003:cd:f72d:d400:65a3:8b37:2c0d:3ff7\tGET\td1qkeqs71ytz4c.cloudfront.net\t/i\t200\thttps://www.grover.com/de-de/products/ipad-128gb-wifi-lte-2018\tMozilla/5.0%2520(iPhone;%2520CPU%2520iPhone%2520OS%252012_3_1%2520like%2520Mac%2520OS%2520X)%2520AppleWebKit/605.1.15%2520(KHTML,%2520like%2520Gecko)%2520Version/12.1.1%2520Mobile/15E148%2520Safari/604.1\tstm=1560448078254&e=ue&ue_px=eyJzY2hlbWEiOiJpZ2x1OmNvbS5zbm93cGxvd2FuYWx5dGljcy5zbm93cGxvdy91bnN0cnVjdF9ldmVudC9qc29uc2NoZW1hLzEtMC0wIiwiZGF0YSI6eyJzY2hlbWEiOiJpZ2x1OmNvbS5nb29nbGUuYW5hbHl0aWNzLmVuaGFuY2VkLWVjb21tZXJjZS9hY3Rpb24vanNvbnNjaGVtYS8xLTAtMCIsImRhdGEiOnsiYWN0aW9uIjoiZGV0YWlsIn19fQ&tv=js-2.6.1&tna=snplow1&p=web&tz=Europe%252FBerlin&lang=de-DE&cs=UTF-8&res=375x667&cd=32&cookie=1&eid=bd0317ce-8820-4868-bbab-35291199016d&dtm=1560448077713&vp=375x553&ds=375x5536&vid=2&sid=b62a70cc-e2ee-40fd-930e-1d78ab7b941f&duid=d68f0c7518051f3d&fp=366785814&refr=https%253A%252F%252Fwww.grover.com%252Fde-de&url=https%253A%252F%252Fwww.grover.com%252Fde-de%252Fproducts%252Fipad-128gb-wifi-lte-2018&cx=eyJzY2hlbWEiOiJpZ2x1OmNvbS5zbm93cGxvd2FuYWx5dGljcy5zbm93cGxvdy9jb250ZXh0cy9qc29uc2NoZW1hLzEtMC0wIiwiZGF0YSI6W3sic2NoZW1hIjoiaWdsdTpjb20uZ29vZ2xlLmFuYWx5dGljcy5lbmhhbmNlZC1lY29tbWVyY2UvcHJvZHVjdEZpZWxkT2JqZWN0L2pzb25zY2hlbWEvMS0wLTAiLCJkYXRhIjp7ImlkIjoxNzI1MiwibmFtZSI6IlRhYmxldCBBcHBsZSBpUGFkIFdpLUZpICsgQ2VsbHVsYXIgMTI4R0IgKDIwMTgpIiwiYnJhbmQiOiJhcHBsZSIsImNhdGVnb3J5IjoiUGhvbmVzICYgVGFibGV0cyIsInByaWNlIjozNTguOH19XX0\t-\tHit\t4Z4c5vMVr9j_asgtOCZ2hItIc3W8mvXaqNbq19EFPxAGbSIYJw2XDw==\td1qkeqs71ytz4c.cloudfront.net\thttps\t871\t0.000\t-\tTLSv1.2\tECDHE-RSA-AES128-GCM-SHA256\tHit\tHTTP/2.0\t-\t-","errors":[{"level":"error","message":"error: instance type (integer) does not match any allowed primitive type (allowed: [\"string\"])\n level: \"error\"\n schema: {\"loadingURI\":\"#\",\"pointer\":\"/properties/id\"}\n instance: {\"pointer\":\"/id\"}\n domain: \"validation\"\n keyword: \"type\"\n found: \"integer\"\n expected: [\"string\"]\n"}],"failure_tstamp":"2019-06-14T00:32:28.065Z"}

Please help me on how to get that table populated as without that I can’t start with the data modelling part.

And I also see that none of my data is going to ‘Shredded good folder’
What could be the reason for that?

id is being sent through as an integer where in the schema it has been defined as a string.

So your payload should ideally look like this:

{"schema":"iglu:com.snowplowanalytics.snowplow/contexts/jsonschema/1-0-0","data":[{"schema":"iglu:com.google.analytics.enhanced-ecommerce/productFieldObject/jsonschema/1-0-0","data":{"id":"17252","name":"Tablet Apple iPad Wi-Fi + Cellular 128GB (2018)","brand":"apple","category":"Phones & Tablets","price":358.8}}

@mike thanks for the quick response.
I set up the schema - using the iglu link -https://github.com/snowplow/iglu-central/blob/a65bd9574c3bb34f1699afda5a22c3e717df3f78/sql/com.google.analytics.enhanced-ecommerce/action_field_object_1.sql
It says make it a string (varchar) which makes sense.
How do I change the datatype of the id coming from GTM?

Where can see the schema info?

See link in mike’s comment @Manav_Veer_Gulati. You’ll find a lot of the information you need in the documentation that people have pointed you to across this and the other thread, do pay attention to them.

1 Like