[{"data":1,"prerenderedAt":2646},["ShallowReactive",2],{"blog-en-google-analytics-4-ultimate-testing-and-comparison-report":3,"related-en-google-analytics-4-ultimate-testing-and-comparison-report":1449},{"id":4,"title":5,"author":6,"body":7,"category":1426,"description":13,"extension":1427,"image":1428,"isToc":1429,"langAlt":6,"meta":1430,"metaDescription":6,"navigation":1429,"path":1438,"published":1429,"publishedAt":1439,"readingTimeMinutes":1440,"readingTimeText":1441,"relatedArticles":1442,"seo":1445,"stem":1446,"teaser":1447,"updatedAtCustom":6,"__hash__":1448},"blog_en\u002Fen\u002Fblog\u002Fgoogle-analytics-4-ultimate-testing-and-comparison-report.md","Google Analytics 4 – Ultimate Testing and Comparison Report",null,{"type":8,"value":9,"toc":1398},"minimark",[10,14,26,29,35,38,106,114,156,161,167,171,178,182,185,193,196,250,257,260,337,344,348,354,360,419,426,433,436,456,461,464,474,478,496,500,503,507,510,516,519,565,571,577,580,583,643,647,653,660,714,721,724,776,782,785,788,880,886,889,927,933,940,994,998,1001,1008,1014,1068,1072,1079,1082,1099,1149,1155,1161,1220,1226,1233,1301,1308,1311,1314,1319,1322,1326,1329,1333,1341,1345,1348,1352,1355,1358,1362,1368,1371,1374,1378,1381,1385,1389,1392],[11,12,13],"p",{},"In this article, we do not provide any recommendations or conclusions only merely compare the various modules and functionality of the old Universal Analytics (UA) and the new Google Analytics 4 (GA4).",[15,16,20,21,25],"external-link",{"title":17,"link":18,"button":19},"Google analytics 4 introduction and vision","https:\u002F\u002Fcrossmasters.com\u002Fen\u002Fblog\u002Fgoogle-analytics-4-brief-introduction-and-vision\u002F","Read more","\nThis article is an extension of our previous article \n",[22,23,24],"em",{},"Google Analytics 4 - Brief Introduction And Vision.","\n If you haven't read it, we recommend you read it before reading our comparison below.\n",[11,27,28],{},"As Google Analytics 4 is still under development the content of this section is continually evolving and should not be considered final.",[30,31,34],"icon-heading",{"icon":32,"tooltip":33},"indif","Neutral change","\nCustom reporting\n",[11,36,37],{},"In UA, it is possible to create custom reports or dashboards. Dashboards do contain various elements like charts, tables, etc. Custom reports allow you to choose from three different kinds: a table with a time-series graph (Explorer), just a table (Flat Table), and a map (Map Overlay). The approach to customizations is different in GA4. It is not possible to build custom reports based on existing reports, which is very limiting and might certainly change in the future. It is not possible to add custom reports to already existing default reports. Dashboard functionality is missing in GA4 as well. The new option is to create analyses in Analysis Hub, which are suitable for power users. It is unclear to us why it is not possible to create reports from analyses, and we hope this will be added in the future.",[39,40,41],"figure",{},[42,43,46,47,46,52,46,70,46],"table",{"className":44},[45],"two-columns"," ",[48,49,51],"caption",{"style":50},"caption-side:bottom","Table 1 - Comparison of custom reporting",[53,54,46,55],"thead",{},[56,57,58,65],"tr",{},[59,60,61],"th",{},[62,63,64],"strong",{},"Universal  Analytics",[59,66,67],{},[62,68,69],{},"GA4",[71,72,73,82,90,98],"tbody",{},[56,74,75,79],{},[76,77,78],"td",{},"Dashboards are available.",[76,80,81],{},"Dashboards do not exist, and we do not miss them.",[56,83,84,87],{},[76,85,86],{},"Dashboard gallery.",[76,88,89],{},"Custom Reports do not exist, although this functionality can be mimicked to a certain degree with Analysis Hub.",[56,91,92,95],{},[76,93,94],{},"Custom Reports are available; can be easily created from existing reports.",[76,96,97],{},"Exploratory Analysis in GA4 is amazing and can be accomplished in a new tool called Analyses Hub.",[56,99,100,103],{},[76,101,102],{},"Exploratory Analysis reports are doable from BigQuery or API Query tools only - Data Studio, Power Bi or [Waaila](www.waaila.com).",[76,104,105],{},"Analysis Hub reports can be shared with all users within the property you have access to; reports can be shared with external users, although it is unclear why since there is no possibility to customize them.",[107,108,110],"h2",{"id":109},"views-and-filters",[30,111,113],{"icon":32,"tooltip":112},"Negative change","Views and filters",[39,115,116],{},[42,117,46,119,46,122,46,134,46],{"className":118},[45],[48,120,121],{"style":50},"Table 2 - Comparison of view\u002Ffilters functionalities",[53,123,46,124],{},[56,125,126,130],{},[59,127,128],{},[62,129,64],{},[59,131,132],{},[62,133,69],{},[71,135,136,144],{},[56,137,138,141],{},[76,139,140],{},"Everyone that uses Universal Analytics probably knows that the best practice is to have at least two views on each property: \"Raw\" without any filters and the \"Master\" or “Main” view used for business users. Additionally, we often use a “Test” view to assure changes are okay before doing them on the “Master” view.",[76,142,143],{},"In GA4 there are no views.",[56,145,146,149],{},[76,147,148],{},"Collected hits can be removed or modified with complex filtering functionality.",[76,150,151,152,155],{},"A very limited filtering functionality is available. We believe this is not the final set of filters and that it will be enriched in the future. At this moment it is only possible to remove internal or developer traffic. It is ",[62,153,154],{},"not possible to filter based on dimensions",".",[157,158],"image-with-caption",{"source":159,"caption":160},"\u002Fupload\u002Fga4-choose-filter-type.webp","Picture 1 - Choosing filter type",[11,162,163,166],{},[62,164,165],{},"Filters are no longer used to modify collected data."," A new approach to modify collected events has been introduced, and we believe this tool will have much greater potential in the future. At this moment it is only possible to replace some data with a constant value and not allowing any data-driven transformations.",[157,168],{"source":169,"caption":170},"\u002Fupload\u002Fga4-modify-existing-events.webp","Picture 2 - Modifying existing events Google Analytics 4",[11,172,173,174,177],{},"New event creation functionality allows deriving events from already collected events. This is a desired functionality, which is available in any professional Web Analytics tools, that allows event enrichment configuration in the user interface. If this functionality will be further enriched it will not be necessary to ",[62,175,176],{},"modify the web measurement"," or modify events in BigQuery.",[157,179],{"source":180,"caption":181},"\u002Fupload\u002Fga4-create-new-events.webp","Picture 3 - Creating new events in Google Analytics 4",[11,183,184],{},"Removing views that were used for testing filters before applying them to the production view is not possible. It is uncertain how Google is planning to do Quality Assurance without damaging production data. One approach might be to send data in parallel to another property, which could be accomplished by Connected Site Tags when using gtag. For another kind of implementation, it would be more complicated than before.",[107,186,188],{"id":187},"session",[30,189,192],{"icon":190,"tooltip":191},"up","Positive change","Session",[11,194,195],{},"The Session is so special that each Web Analytics tool treats it differently. The basic rule is that it expires after 30 minutes of inactivity (it can be configured). However, it can expire in some other situations as well and this where most of the differences pop up. We can assure you that sessions between GA4 and your existing GA implementation will differ, and it makes no sense to align them. You will need to invest a lot into educating others about what has changed, especially to those who consider Universal Analytics as the golden standard for acquisition analysis.",[39,197,198],{},[42,199,46,201,46,204,46,216,46],{"className":200},[45],[48,202,203],{"style":50},"Table 3 - Comparison of session definition",[53,205,46,206],{},[56,207,208,212],{},[59,209,210],{},[62,211,64],{},[59,213,214],{},[62,215,69],{},[71,217,218,226,234,242],{},[56,219,220,223],{},[76,221,222],{},"A Session is interrupted at midnight, so the maximum session length might be 24 hours.",[76,224,225],{},"A session is not interrupted at midnight, and it has no time limit, e.g., someone who interacts with the web every 5 minutes might have a year-long session and still be in their first session.",[56,227,228,231],{},[76,229,230],{},"A Session is interrupted after a defined time of inactivity (session timeout) and is configurable (between 30 minutes and 4.5 hours is the default).",[76,232,233],{},"Session timeout is set for 30 minutes (timeout is configurable only for an app).",[56,235,236,239],{},[76,237,238],{},"A session is interrupted when the source changes.",[76,240,241],{},"A session is not interrupted when new source changes.",[56,243,244,247],{},[76,245,246],{},"-",[76,248,249],{},"The Engaged Session is introduced.",[107,251,253],{"id":252},"traffic-attribution",[30,254,256],{"icon":255,"tooltip":112},"down","Traffic attribution",[11,258,259],{},"Traffic detections in both versions are based on UTM parameters or GCLID (Google Click Identifier or known as Google Ads ID) in the URL.",[39,261,262],{},[42,263,46,265,46,268,46,280],{"className":264},[45],[48,266,267],{"style":50},"Table 4 - Comparison of traffic attribution",[53,269,46,270],{},[56,271,272,276],{},[59,273,274],{},[62,275,64],{},[59,277,278],{},[62,279,69],{},[71,281,282,290,298,306,314,322,330],{},[56,283,284,287],{},[76,285,286],{},"UA has 5 default dimensions: Source (utm_source), Medium (utm_medium), Campaign (utm_campaign), Content (utm_content), and Term (utm_term).",[76,288,289],{},"With GA4, Content (utm_content) and Term (utm_term) are missing. It might be that these will be added in the future, as the tracking script is parsing them. Now it is possible to read them from event parameters and map them into custom dimensions. Interestingly, the term parameter is already available in the BigQuery export for organic traffic. ",[56,291,292,295],{},[76,293,294],{},"Campaign Code (utm_id) and campaign imports are possible.",[76,296,297],{},"Campaign Code (utm_id) is missing and campaign imports are not possible.",[56,299,300,303],{},[76,301,302],{},"Campaign attributes are stored on the sessions level only.",[76,304,305],{},"Events are enriched by calculated acquisition attributes, which are taken from source parameters. The Campaign, Source, and Medium parameters have a value for each model - For example: Event Campaign {model}.",[56,307,308,311],{},[76,309,310],{},"It has default and custom channel grouping.",[76,312,313],{},"Only Default channel grouping is available, whereas custom channel grouping cannot be set.",[56,315,316,319],{},[76,317,318],{},"It has campaign timeout, which is the time that the campaign could be attributed to the user's subsequent sessions from the time that the user comes from this campaign (by default, it is 6 months, and_it is customizable).",[76,320,321],{},"Campaign timeout does not exist.",[56,323,324,327],{},[76,325,326],{},"UA has a default attribution called Last click (non-direct) and selection of several basic attribution models.",[76,328,329],{},"The default attribution is the Last click (non-direct), and there are three other models (biased towards google).",[56,331,332,334],{},[76,333,246],{},[76,335,336],{},"New calculated user-level acquisition dimensions are available. For instance, User Campaign (the first campaign of the first session), though of course it is calculated with Google’s “attribution” model.",[11,338,339,340,343],{},"Although it looks like the reporting sources settings are similar, the results will be very different. It is mostly due to the ",[62,341,342],{},"different session definitions"," and missing campaign timeout.",[157,345],{"source":346,"caption":347},"\u002Fupload\u002Ftrafficattribution.webp","Picture 4 - Comparison of Traffic Attribution",[107,349,351],{"id":350},"custom-dimensions-and-metrics",[30,352,353],{"icon":190,"tooltip":191},"Custom dimensions and metrics",[11,355,356,357],{},"As you probably know, there is a big difference in the number of custom dimensions available in the free version of Universal Analytics and in its paid version (GA 360). GA4 has added more dimensions than to the previous version. In addition to this, GA4 has separated the collection logic (event parameters) from reporting logic (dimensions\u002Fmetrics). ",[62,358,359],{},"Event parameters can be mapped to dimensions or metrics.",[39,361,362],{},[42,363,46,365,46,368,380],{"className":364},[45],[48,366,367],{"style":50},"Table 5 - Comparison of custom dimensions and metrics",[53,369,46,370],{},[56,371,372,376],{},[59,373,374],{},[62,375,64],{},[59,377,378],{},[62,379,69],{},[71,381,382,396,404,411],{},[56,383,384,387],{},[76,385,386],{},"20 custom dimensions available over 4 scopes: Hit (event), Session, User, Product",[76,388,389,390,393,395],{},"50 event scoped dimensions and 50 event scoped metrics, comparable to dimensions and metrics in UA at hit scope",[391,392],"br",{},[391,394],{},"25 user scope dimensions comparable to dimensions in UA at user scope",[56,397,398,401],{},[76,399,400],{},"20 custom metrics",[76,402,403],{},"Metrics can have assigned units",[56,405,406,409],{},[76,407,408],{},"5 custom content groups per view",[76,410,246],{},[56,412,413,416],{},[76,414,415],{},"3 default dimensions for an event (Event Category, Event Action, Event Label)",[76,417,418],{},"500 unique events (Event name) excluding default events – we no longer use the classic classification of 3 dimensions (Event Category, Event Action, and Event Label) for events. However, nothing prevents us from creating a similar structure using event scope dimensions. Thanks to customization, you can significantly adapt it to your needs.",[107,420,422],{"id":421},"segmentation",[30,423,425],{"icon":32,"tooltip":424},"Some good and some bad changes","Segmentation",[427,428,430],"h4",{"id":429},"universal-analytics",[62,431,432],{},"Universal Analytics",[11,434,435],{},"Universal Analytics used Segments as the default segmentation logic across all reports and even in the API.",[437,438,439,448],"ul",{},[440,441,442,445,447],"li",{},[62,443,444],{},"By Segments",[391,446],{},"Anyone who uses Universal Analytics more intensively for exploratory analysis gets the benefit of segments (unless you have a lot of data where sampling makes this feature useless). Segments can be used in UA in any report, whether it is a default report or a custom report. The Segment must be created and saved before being used. The Segment may be applied to historical data. Segments might be shared across properties.",[440,449,450,453,455],{},[62,451,452],{},"By Audiences",[391,454],{},"Audiences are similar to segments with one important addition, in that they can be distributed to other systems (Google Ads) and are linked to the current property. It has a membership duration, the time for which users in the given audience are kept.",[427,457,459],{"id":458},"ga4",[62,460,69],{},[11,462,463],{},"GA4 has introduced various segmentation approaches and has simplified certain features for daily reporting tasks.",[437,465,466],{},[440,467,468,471,473],{},[62,469,470],{},"By Comparison",[391,472],{},"\nIt might be that we stick to the previous approach of Segments from UA a bit too much and expected the same functionality from comparisons. This is not the case. You can, in comparison, do very simple segmentation based on dimensions. There is no option to do sequences, etc. If you would like to do it, you have to first define the audience and then use it in there. This is a bit more complicated and is limiting as well because the audience does not look backward. If you used segments a lot, you might not like it.",[157,475],{"source":476,"caption":477},"\u002Fupload\u002Fga4-build-comparison.webp","Picture 5 - Building comparions in Google Analytics 4",[437,479,480,488],{},[440,481,482,485,487],{},[62,483,484],{},"Segments in Analysis Hub",[391,486],{},"\nIn case you would like to compare the behavior of two segments in the past, the only option is to use the Analysis Hub. You can create a custom segment within the custom reports, which can be saved. Unfortunately, any segment that is created is just saved in the analysis and cannot be shared or reused, unless you create an audience from it. We believe this is just a bug and will be fixed later.",[440,489,490,493,495],{},[62,491,492],{},"Audiences",[391,494],{},"Audiences have the same meaning, usage, and a similar creation interface as Segments in UA. It looks like they are meant to be used as Segments. So be careful! They start collecting data from the moment you create them. Audiences can be shared with Google Ads.",[157,497],{"source":498,"caption":499},"\u002Fupload\u002Fga4-organic-users.webp","Picture 6 - Organic users in Google Analytics 4",[11,501,502],{},"You can easily use predefined audiences for segmentation in any reports using the Comparisons functionality mentioned above.",[157,504],{"source":505,"caption":506},"\u002Fupload\u002Fga4-build-comparison-2.webp","Picture 7 - Building comparions 2 in Google Analytics 4",[11,508,509],{},"Because of the Audiences limitation for historical comparisons, we suggest creating them early on. Think carefully about what you will need because once created, an Audience cannot be updated. Since Audiences are always calculated after they are created, we believe the sampling issues will go away.",[107,511,513],{"id":512},"sampling",[30,514,515],{"icon":190,"tooltip":191},"Sampling",[11,517,518],{},"Sampling means that your metrics are estimated based on a sample (random subset) of your data. For anyone who analyzed bigger accounts, this causes a constant headache. Combining more dimensions with segments often resulted in making completely wrong decisions. Even the paid version is not much better at avoiding sampling issues and the option to export data to BigQuery saves it. GA4 offers to export to BigQuery by default, so we expect that any sampling issue will be addressed by the export as well. Actually, that opens an interesting question of what would be the real benefit of a paid version if such exports are now possible in the free version. It might be that the revenue stream generated by the Google Cloud consumption from GA users will surpass the revenue from the GA 360 version.",[39,520,521],{},[42,522,46,524,46,527,46,539,46],{"className":523},[45],[48,525,526],{"style":50},"Table 6 - Comparison of sampling",[53,528,46,529],{},[56,530,531,535],{},[59,532,533],{},[62,534,64],{},[59,536,537],{},[62,538,69],{},[71,540,541,549,557],{},[56,542,543,546],{},[76,544,545],{},"The interface and simple reports are okay, but using customized reports, adding custom dimensions, or segmentation by segments has resulted in terrifying sampling errors.",[76,547,548],{},"The interface, simpler standard reports, and inability to use calculated Segments will most likely not cause sampling issues. As for Analysis Hub, we expect it to be better tuned for processing complex queries and avoiding sampling issues.",[56,550,551,554],{},[76,552,553],{},"With the API, even on very large data sets, it is possible to retrieve unsampled data.",[76,555,556],{},"With the API, we do not expect much change here compared to the UA API. The cost of queries, however, is calculated differently and other limits are applicable. There is no longer the need to use API to export all data.",[56,558,559,562],{},[76,560,561],{},"Exporting data view API querying, and cross-dimension combination, mostly by third-party tools, allowed for the export of unsampled data.",[76,563,564],{},"The Data Exports Option to export unsampled data to BigQuery is for free. This is a killer feature.",[11,566,567,568],{},"It is very difficult to compare sampling as data are queried differently. In general, we expect the GA4 sampling issues will be less frequent. ",[62,569,570],{},"The possibility to export data to BigQuery is an amazing feature that makes GA4 very actionable and opens wider customizations in Data Studio or other visualization tools.",[107,572,574],{"id":573},"goals-transactions-conversions",[30,575,576],{"icon":190,"tooltip":191},"Goals \u002F Transactions \u002F Conversions",[11,578,579],{},"Conversions in Universal Analytics are either Goals or Transactions. In GA4 the approach is similar, as conversions are just special events (like a purchase) or any other event you say is a conversion (checkbox in the menu). In Universal Analytics, conversions are created after you configure them and enable recording, which is similar to the GA4 interface.",[157,581],{"source":169,"caption":582},"Picture 8 - Existing events in Google Analytics 4",[39,584,585],{},[42,586,46,588,46,591,603],{"className":587},[45],[48,589,590],{"style":50},"Table 7 - Comparison of conversions",[53,592,46,593],{},[56,594,595,599],{},[59,596,597],{},[62,598,64],{},[59,600,601],{},[62,602,69],{},[71,604,605,613,621,629,636],{},[56,606,607,610],{},[76,608,609],{},"UA has 20 custom-based goals.",[76,611,612],{},"GA4 has 30 custom conversion events, and any event can be marked as a conversion.",[56,614,615,618],{},[76,616,617],{},"Goals can be based on a destination (URL), Duration, Pages per session, and Smart goals.",[76,619,620],{},"You cannot set goals based on Duration, Session Aggregates, or Smart goals, but you can create a conversion based on any event parameter, dimension, or metric.",[56,622,623,626],{},[76,624,625],{},"Funnels are part of standardized reporting.",[76,627,628],{},"Funnels are created in the Analysis Hub only and have amazing reporting possibilities for someone more skilled as it is not that simple to create them. These analyses can be shared.",[56,630,631,634],{},[76,632,633],{},"Each goal can have a single value, which then acts as a metric for that goal.",[76,635,246],{},[56,637,638,640],{},[76,639,246],{},[76,641,642],{},"When using Audience, conversions can be created as a sequence of events.",[157,644],{"source":645,"caption":646},"\u002Fupload\u002Fga4-funnel-analysis.webp","Picture 9 - Example of fully customized funnel",[11,648,649,650],{},"Events that are suitable for conversions can be created in the data collection JavaScript. You can derive them from existing events (after filtering) or create them from Audience membership creation. ",[62,651,652],{},"Conversion events based on Audiences can be even sequence-based.",[107,654,656],{"id":655},"date-time-dimensions",[30,657,659],{"icon":255,"tooltip":658},"Negative changes","Date & Time dimensions",[39,661,662],{},[42,663,46,665,46,668,680],{"className":664},[45],[48,666,667],{"style":50},"Table 8 - Comparison of date & time dimensions",[53,669,46,670],{},[56,671,672,676],{},[59,673,674],{},[62,675,64],{},[59,677,678],{},[62,679,69],{},[71,681,682,690,698,706],{},[56,683,684,687],{},[76,685,686],{},"Year, Week, Day, Hour, Minute, Hour of Day Dimension, and more are available.",[76,688,689],{},"Many Date\u002FTime dimensions are missing and you are not able to go on granularity under YYYYMMDD.",[56,691,692,695],{},[76,693,694],{},"If you need more precise collection time, you can set a custom dimension to hold the value up to the second. With only 50k unique values per day, it is not suitable for a high volume of events.",[76,696,697],{},"Until event collection date is available in API, you have to use custom dimension or Big Query Export.",[56,699,700,703],{},[76,701,702],{},"You can retrieve dateHourMinute from the API.",[76,704,705],{},"The most granular time dimension you can retrieve from API is dateHour.",[56,707,708,711],{},[76,709,710],{},"The hit collection time is up to the minute in BigQuery export (paid version only).",[76,712,713],{},"The event collection time event_timestamp is up to the millisecond in BigQuery exports (be careful with derived or audience-based events, where time is date of calculation).",[107,715,717],{"id":716},"subject-identifiers",[30,718,720],{"icon":32,"tooltip":719},"Some cool description","Subject identifiers",[11,722,723],{},"Subject IDs are unavailable in the interface for both versions, unless you duplicate them into a custom dimension. However, you can retrieve them from API or BigQuery.",[39,725,726],{},[42,727,46,729,46,732,46,744,46],{"className":728},[45],[48,730,731],{"style":50},"Table 9 - Comparison of subject identifiers",[53,733,46,734],{},[56,735,736,740],{},[59,737,738],{},[62,739,64],{},[59,741,742],{},[62,743,69],{},[71,745,746,753,761,768],{},[56,747,748,751],{},[76,749,750],{},"Client ID - not available by default",[76,752,750],{},[56,754,755,758],{},[76,756,757],{},"Session ID - not available by default",[76,759,760],{},"Session ID - not relevant",[56,762,763,766],{},[76,764,765],{},"User ID - not available by default",[76,767,765],{},[56,769,770,773],{},[76,771,772],{},"Available in BigQuery export (paid version only)",[76,774,775],{},"Available in BigQuery export",[107,777,779],{"id":778},"data-api",[30,780,781],{"icon":190,"tooltip":719},"Data API",[11,783,784],{},"Universal Analytics’ latest API is V4, which often leads to confusion that the V4 is for GA4, and this is actually not correct. The latest version is Universal Analytics API V4 and GA4 API V1. Both APIs’ requests and responses are very similar.",[786,787],"external-links",{},[39,789,790],{},[42,791,46,793,46,796,46,808,46],{"className":792},[45],[48,794,795],{"style":50},"Table 10 - Comparison of data API",[53,797,46,798],{},[56,799,800,804],{},[59,801,802],{},[62,803,64],{},[59,805,806],{},[62,807,69],{},[71,809,810,817,825,833,841,849,857,865,873],{},[56,811,812,815],{},[76,813,814],{},"The API provides real-time and reporting functionalities.",[76,816,814],{},[56,818,819,822],{},[76,820,821],{},"The API provides management functionalities. Not everything is possible to configure - you still need to go to the UI to configure things.",[76,823,824],{},"The API provides management functionalities. As the GA4 is different and still evolving, it is hard to tell how much it fully covers.",[56,826,827,830],{},[76,828,829],{},"Quota management is based on the count of requests per time.",[76,831,832],{},"The Quota management to limit API queries is different. Instead of the count of requests, the complexity of the query is considered. The positive thing is that you can estimate the cost of a query before you execute it.",[56,834,835,838],{},[76,836,837],{},"The filtering functionality is basic. Though not very often, you might be limited by this.",[76,839,840],{},"The filtering functionality is more complex and suitable. It is possible to create various AND\u002FOR combinations.",[56,842,843,846],{},[76,844,845],{},"The API allows four various request kinds: cohort, pivot, histogram, and a regular table.",[76,847,848],{},"The API allows for four various request kinds: cohort, pivot, histogram, and a regular table. The regular request is similar, Cohort is slightly improved and Pivot is implemented differently.",[56,850,851,854],{},[76,852,853],{},"No new features are added.",[76,855,856],{},"New features are introduced quite regularly. ",[56,858,859,862],{},[76,860,861],{},"Sampling often affects the result, especially when there is too granular of a request.",[76,863,864],{},"Sampling is gone.",[56,866,867,870],{},[76,868,869],{},"Segments can be used in the API.",[76,871,872],{},"Audiences can be used in filters.",[56,874,875,878],{},[76,876,877],{},"There are 10,000 rows per request and pagination.",[76,879,877],{},[107,881,883],{"id":882},"e-commerce",[30,884,885],{"icon":255,"tooltip":658},"E-commerce",[11,887,888],{},"Both Google Analytics versions have a predefined set of e-commerce measurements. The huge difference is that in GA4 you are not able to visualize collected data in Default Reports. Luckily you can use Analysis Hub.",[39,890,891],{},[42,892,46,894,46,897,46,909,46],{"className":893},[45],[48,895,896],{"style":50},"Table 11 - Comparison of E-commerce",[53,898,46,899],{},[56,900,901,905],{},[59,902,903],{},[62,904,64],{},[59,906,907],{},[62,908,69],{},[71,910,911,919],{},[56,912,913,916],{},[76,914,915],{},"E-commerce events, Product Impressions, Product Clicks, Product Detail Impressions, Add\u002FRemove from Cart, Promotion Impressions, Promotion Clicks, Checkout, Purchases, Refunds",[76,917,918],{},"E-commerce events, Product\u002FItem List Views\u002FImpressions, Product\u002FItem List Clicks, Product\u002FItem Detail Views, Adds\u002FRemoves from Cart, Promotion Views\u002FImpressions, Promotion Clicks, Checkouts, Purchases, Refunds",[56,920,921,924],{},[76,922,923],{},"Default Reporting - several different reports in the e-commerce section of the interface",[76,925,926],{},"Default Reporting is not available",[107,928,930],{"id":929},"alerts-notifications-custom-insights",[30,931,932],{"icon":190},"Alerts \u002F Notifications \u002F Custom insights",[11,934,935,936,939],{},"From our perspective alerting is an underused functionality. We saw many problems that could have been avoided with property configured Alerts. In addition to custom alerts, ",[62,937,938],{},"Google generates Notifications and Insights."," As Notifications are mostly suggestions to upgrade to Premium versions and lack any practical use, insights are much more useful and do suggest some interesting facts. In GA4, alerts and insights merge into one feature and the tools assist a lot while creating alerts. Unfortunately, the UI is still limited in building more granular triggers. We also would expect more AI-driven functionalities and features, and Google-generated insights for our UA properties containing the same data, as we do send properties to GA4 that are not very useful. Maybe it is just a matter of where Google utilizes its computational resources, and GA4 still does not get enough.",[39,941,942],{},[42,943,46,945,46,948,46,960,46],{"className":944},[45],[48,946,947],{"style":50},"Table 12 - Comparison of Alerts\u002FNotifications\u002FCustom insights",[53,949,46,950],{},[56,951,952,956],{},[59,953,954],{},[62,955,64],{},[59,957,958],{},[62,959,69],{},[71,961,962,970,978,986],{},[56,963,964,967],{},[76,965,966],{},"Alerts - weak UI and configuration options, just rigid thresholds",[76,968,969],{},"Alerts are Custom insights, which provide much richer UI options, AI-supported alert creation, and anomaly detection. It is still not possible to have many granular triggers.",[56,971,972,975],{},[76,973,974],{},"Notifications - overloaded with impractical information; No alerting possible for some important notifications",[76,976,977],{},"Notifications are not available.",[56,979,980,983],{},[76,981,982],{},"Insights - interesting recommendations and quick UI navigations",[76,984,985],{},"Insights are Google calculated. For properties where we do collect identical data, GA4 insights are worse. Although the user interfaces in UA has the GA4 look and feel, it does not work that well in GA4. It is limited and does not provide such functionalities and AI-supported navigation.",[56,987,988,991],{},[76,989,990],{},"Not possible to create Alerts over API",[76,992,993],{},"It is not possible to create Alerts over API.",[157,995],{"source":996,"caption":997},"\u002Fupload\u002Fga4-create-custom-insights.webp","Picture 10 - Creating custom insights in Google Analytics 4",[11,999,1000],{},"If you miss a more robust feature for incident detection you can try this tool.",[107,1002,1004],{"id":1003},"predictive-analytics",[30,1005,1007],{"icon":190,"tooltip":1006},"Positive changes","Predictive analytics",[11,1009,1010,1011,155],{},"UA is very limited in terms of predictive reports. There are only a few metrics that are calculated and we are often skeptical about their results. On the contrary, GA4 is much more intelligent. It provides a large set of predictive metrics which are available in the Analysis Hub. Compared to UA, the results look much more trustworthy. Although we used to calculate these metrics on the BigQuery ML modules for UA, now these are part of GA4. If you would like to utilize them outside GA4, there is no API available and even the documentation is sporadic in terms of how these are calculated. ",[62,1012,1013],{},"The lack of such features in UA made it seem more like a toy than a serious Web Analytics tool, so we are happy it has gotten more serious again",[39,1015,1016],{},[42,1017,46,1019,46,1022,46,1034,46],{"className":1018},[45],[48,1020,1021],{"style":50},"Table 13 - Comparison of predictive analytics",[53,1023,46,1024],{},[56,1025,1026,1030],{},[59,1027,1028],{},[62,1029,64],{},[59,1031,1032],{},[62,1033,69],{},[71,1035,1036,1044,1052,1060],{},[56,1037,1038,1041],{},[76,1039,1040],{},"Session Quality report (only available in GA 360) – evaluates sessions based on how close it was to a transaction. This is a posterior calculation and on the sessions level, we do not see much benefit there.",[76,1042,1043],{},"The Session Quality report is not available. As GA4 is user-centric and the UA reports are technically useless, we hope this will not be even included. ",[56,1045,1046,1049],{},[76,1047,1048],{},"Conversion Probability report (only available in GA 360) – evaluates how close users are to transactions. As this is a posterior calculation, we do not see much benefit there. In many UA views where we evaluated these calculations, the results were often so skewed that we did not see any benefit there.",[76,1050,1051],{},"The Conversion Probability report is included in the predictive User Lifetime analysis.",[56,1053,1054,1057],{},[76,1055,1056],{},"External ML models - it is possible to easily calculate predictive metrics in BigQuery (360 version only) or external tools based on API extracted data.",[76,1058,1059],{},"Analysis Hub - the User Lifetime analysis technique provides a ton of various metrics, like churn prediction, Purchase probability, etc.",[56,1061,1062,1065],{},[76,1063,1064],{},"Anomaly detection is not possible.",[76,1066,1067],{},"Anomaly detection is possible.",[157,1069],{"source":1070,"caption":1071},"\u002Fupload\u002Fga4-anomaly-detection.webp","Picture 11 - Anomaly detection in Google Analytics 4",[107,1073,1075],{"id":1074},"google-cloud-integration",[30,1076,1078],{"icon":190,"tooltip":1077},"Very positive changes","Google Cloud integration",[11,1080,1081],{},"We are really excited about this feature. We even decided to rate this section with two thumbs up. The free version of UA is very limiting when you need to export the data for other processing. Even though there are external tools that you use to export UA data into other database solutions, having an option to turn it on in GA4 is a huge plus. Of course, you will have to pay for BigQuery, but the prices are decent, between 10 EUR and 100 EUR for most websites. If you do not need to keep data for more than 60 days you can even have a free sandbox environment.",[1083,1084,1085,1086,1092,1093,1098],"tip",{},"\nThe price for BigQuery can be estimated based on your data. You can use the BigQuery price calculator in Waaila to estimate it for you for \n",[1087,1088,432],"a",{"href":1089,"rel":1090},"https:\u002F\u002Fapp.waaila.com\u002F#\u002Ftemplate-gallery\u002Fwaaila-ga-bigquery-cost-calculator",[1091],"nofollow","\n and \n",[1087,1094,1097],{"href":1095,"rel":1096},"https:\u002F\u002Fapp.waaila.com\u002F#\u002Ftemplate-gallery\u002Fwaaila-ga4-bigquery-cost-calculator",[1091],"Google Analytics 4","\n.\n",[39,1100,1101],{},[42,1102,46,1105,46,1108,46,1126,46],{"className":1103},[1104],"three-columns",[48,1106,1107],{"style":50},"Table 14 - Comparison of Google Cloud integration",[53,1109,46,1110],{},[56,1111,1112,1117,1122],{},[59,1113,1114,1116],{},[62,1115,64],{}," (Free)",[59,1118,1119,1121],{},[62,1120,64],{}," 360",[59,1123,1124],{},[62,1125,69],{},[71,1127,1128,1139],{},[56,1129,1130,1133,1136],{},[76,1131,1132],{},"BigQuery is not available natively, which means third-party tools need to be used.",[76,1134,1135],{},"BigQuery is integrated natively and you can enable one export per view. Both real-time and daily data are exported.",[76,1137,1138],{},"BigQuery export is integrated natively and you can enable one export per property. Real-time data can be streamed to BigQuery when billing is enabled.",[56,1140,1141,1144,1146],{},[76,1142,1143],{},"Streaming events to another cloud consumer is not possible.",[76,1145,1143],{},[76,1147,1148],{},"Google Cloud Functions are integrated. Events collected can be in near real-time, streamed, and processed. This is an amazing functionality.",[107,1150,1152],{"id":1151},"other-google-products-integration",[30,1153,1154],{"icon":255,"tooltip":658},"Other Google products integration",[11,1156,1157,1158],{},"The marketing ecosystem for an individual company consists of dozens of tools that, when integrated, provide much greater potential. Of course, there is a constant rivalry between the major vendors and you cannot expect Google to provide integration of competing technologies. It would be sufficient to at least be able to integrate all of the products from one vendor and this is the situation where GA4 provides horrible support. With the exception of Google Ads and the previously mentioned BigQuery, it does not provide any other integration. You can ",[62,1159,1160],{},"forget Search Console, which is not a big deal anyway, however the inability to connect Google Optimize is a huge deficiency.",[39,1162,1163],{},[42,1164,46,1166,46,1169,1181],{"className":1165},[1104],[48,1167,1168],{"style":50},"Table 15 - Comparison of Google products integration",[53,1170,46,1171],{},[56,1172,1173,1177],{},[59,1174,1175,1121],{},[62,1176,64],{},[59,1178,1179],{},[62,1180,69],{},[71,1182,1183],{},[56,1184,1185,1215],{},[76,1186,1187,1188,1190,1191,1193,1194,1196,1197,1199,1200,1202,1203,1205,1206,1208,1209,1211,1212,1214],{},"•\tAdSense",[391,1189],{},"•\tAdExchange",[391,1192],{},"•\tBigQuery (paid version)",[391,1195],{},"•\tCampaign Manager 360",[391,1198],{},"•\tDisplay & Video 360",[391,1201],{},"•\tGoogle Ads",[391,1204],{},"•\tGoogle Optimize",[391,1207],{},"•\tPostbacks",[391,1210],{},"•\tSearch Ads 360",[391,1213],{},"•\tSearch Console",[76,1216,1217,1218,1202],{},"•\tBigQuery",[391,1219],{},[107,1221,1223],{"id":1222},"data-imports",[30,1224,1225],{"icon":255,"tooltip":658},"Data imports",[11,1227,1228,1229,1232],{},"Sometimes it makes sense to enhance or enrich Google Analytics data with data imports. For some clients who use an external database, or those who are cautious about providing sensitive data to Google, this has a little benefit. For those who use this feature a lot, ",[62,1230,1231],{},"GA4 provides very limited functionality",". Not all UA imports are available now and the worst thing is that only manual imports are possible. We believe that imports will be enriched in the future.",[39,1234,1235],{},[42,1236,46,1238,46,1241,1253],{"className":1237},[1104],[48,1239,1240],{"style":50},"Table 16 - Comparison of data imports",[53,1242,46,1243],{},[56,1244,1245,1249],{},[59,1246,1247],{},[62,1248,64],{},[59,1250,1251],{},[62,1252,69],{},[71,1254,1255,1287,1294],{},[56,1256,1257,1281],{},[76,1258,1259,1260,1262,1263,1265,1266,1268,1269,1271,1272,1274,1275,1277,1278,1280],{},"•\tRefund data",[391,1261],{},"•\tUser data",[391,1264],{},"•\tCampaign data",[391,1267],{},"•\tGeography data",[391,1270],{},"•\tContent data",[391,1273],{},"•\tProduct data",[391,1276],{},"•\tCustom data",[391,1279],{},"•\tCost data",[76,1282,1283,1284,1286],{},"•\tUser data import (by client ID or by user ID)",[391,1285],{},"•\tItem data import",[56,1288,1289,1292],{},[76,1290,1291],{},"Manual upload",[76,1293,1291],{},[56,1295,1296,1299],{},[76,1297,1298],{},"Automated upload",[76,1300,246],{},[107,1302,1304],{"id":1303},"implementation",[30,1305,1307],{"icon":190,"tooltip":1306},"Easy","Implementation",[11,1309,1310],{},"This section is special, and we decided not to make a comparison between UA and GA4. We assume that you are familiar with UA implementations so we just stressed the new approaches or areas where it is important to be careful.",[11,1312,1313],{},"There are 2 main options for how to implement GA4.",[1315,1316,1318],"h3",{"id":1317},"gtagjs","gtag.js",[11,1320,1321],{},"This approach has been available for more than a year and can be used for other Google products, like the previous version of Google Analytics UA, Google Ads, or Double Click. If you have gtag included in your application, you can start using it for GA4 as well. Of course, you have to identify all of the events you want to collect manually.",[427,1323,1325],{"id":1324},"connected-site-tags","Connected site tags",[11,1327,1328],{},"This method offers a very fast integration of existing measurements. GA4 can listen to your existing UA measurements implemented by gtag. You can start listening by providing the property ID into the connected tag configuration. This is also very handy when you would like to test your configuration first.",[157,1330],{"source":1331,"caption":1332},"\u002Fupload\u002Fga4-connected-site-tags.webp","Picture 16 - Connected site tags in Google Analytics 4",[1334,1335,1336,1337,1340],"note",{},"\nWe only recommend this solution if you want to test out the new GA4. \n",[62,1338,1339],{},"Please DO NOT consider Connected Site Tags to be a full implementation!","\n It does not take into account a new approach to event measurement and a new data model.\n",[1315,1342,1344],{"id":1343},"google-tag-manager","Google Tag Manager",[11,1346,1347],{},"Setting up GTM for GA4 is very simple unless you want to measure something extra. As the whole logic is hidden in the tag, you just use the Stream ID (Measurement ID) and configure the corresponding templates.",[1315,1349,1351],{"id":1350},"enhanced-measurement","Enhanced Measurement",[11,1353,1354],{},"An exciting part of GA4 is called Enhanced Measurement. In the settings of your GA4, you will find data streams which are measurement streams from several sources.",[11,1356,1357],{},"For the web stream, you will find the Enhanced measurement setting. You can set many commonly used measurements with this setting, such as scroll measurement, outbound clicks, and more. Also, the tracking script gets automatically updated.",[157,1359],{"source":1360,"caption":1361},"\u002Fupload\u002Fga4-enhanced-measurement.webp","Picture 17 - Enhanced measurement in Google Analytics 4",[107,1363,1365],{"id":1364},"debugging",[30,1366,1367],{"icon":190,"tooltip":1006},"Debugging",[11,1369,1370],{},"In UA, you could either check the measurements directly on the website using various browser extensions or in the real-time view. Validating measured results fully requires you to wait for a few hours or even a day. Any changes you wanted to verify were limited by these time delays.",[11,1372,1373],{},"GA4 is very advanced in this regard. You can do more on validation and assure higher quality data. Part of the GA4 is a tool called Debugger, which can be found directly in the main menu. To activate it you must visit your web page with ?gtm_debug=x parameter. This will render a dialog in the lower right corner that will tell you more.",[157,1375],{"source":1376,"caption":1377},"\u002Fupload\u002Fga4-not-connected.webp","Picture 19 - Error message in Google Analytics 4",[11,1379,1380],{},"After you start an activity, events will flow into your debug view in the GA4 interface.",[157,1382],{"source":1383,"caption":1384},"\u002Fupload\u002Fga4-debug-device.webp","Picture 19 - Google Analytics 4 Debug device",[107,1386,1388],{"id":1387},"summary","Summary",[11,1390,1391],{},"Although we have spent a huge number of hours on GA4 testing and consolidating our findings into this article, it is still not a full comparison list. Between the time we started writing it and now, many things have already changed. As the new Google Analytics version is continuously being updated, it might be that some missing features or functionalities were already introduced.",[1393,1394,1397],"action",{"link":1395,"button":1396},"\u002Fen\u002Fget-in-touch\u002F","Contact Us","\n We have successfully implemented digital measurement and Google Analytics for many of our clients. Contact us and we can ensure the smooth transition from Universal  Analytics to Google Analytics 4.\n",{"title":1399,"searchDepth":1400,"depth":1400,"links":1401},"",2,[1402,1403,1404,1405,1406,1407,1408,1409,1410,1411,1412,1413,1414,1415,1416,1417,1418,1424,1425],{"id":109,"depth":1400,"text":113},{"id":187,"depth":1400,"text":192},{"id":252,"depth":1400,"text":256},{"id":350,"depth":1400,"text":353},{"id":421,"depth":1400,"text":425},{"id":512,"depth":1400,"text":515},{"id":573,"depth":1400,"text":576},{"id":655,"depth":1400,"text":659},{"id":716,"depth":1400,"text":720},{"id":778,"depth":1400,"text":781},{"id":882,"depth":1400,"text":885},{"id":929,"depth":1400,"text":932},{"id":1003,"depth":1400,"text":1007},{"id":1074,"depth":1400,"text":1078},{"id":1151,"depth":1400,"text":1154},{"id":1222,"depth":1400,"text":1225},{"id":1303,"depth":1400,"text":1307,"children":1419},[1420,1422,1423],{"id":1317,"depth":1421,"text":1318},3,{"id":1343,"depth":1421,"text":1344},{"id":1350,"depth":1421,"text":1351},{"id":1364,"depth":1400,"text":1367},{"id":1387,"depth":1400,"text":1388},"Guides","md","\u002Fupload\u002Fga-4-compare.webp",true,{"externalLinks":1431},[1432,1435],{"url":1433,"name":1434},"https:\u002F\u002Fcrossmasters.com\u002Fen\u002Fblog\u002Fnew-data-api-for-google-analytics-4\u002F","New Data API for Google Analytics 4",{"url":1436,"name":1437},"https:\u002F\u002Fcrossmasters.com\u002Fen\u002Fblog\u002Fnotes-on-new-features-of-google-analytics-reporting-api-v4\u002F","Notes on new features of Google Analytics Reporting API V4","\u002Fen\u002Fblog\u002Fgoogle-analytics-4-ultimate-testing-and-comparison-report","2021-06-29T12:59:39+00:00",25.46,"26 min read",[1443,1444],"content\u002Fen\u002Fblog\u002Fzoom-in-on-measurement-hub.md","content\u002Fen\u002Fblog\u002Fdata-layer-validation-what-why-and-how.md",{"title":5,"description":13},"en\u002Fblog\u002Fgoogle-analytics-4-ultimate-testing-and-comparison-report","Are you wondering what new functionalities is Google Analytics 4 bringing and if your favorite feature from Universal Analytics is still there? We tested them for you.","VicXSPHx9wPycIyhExXDHqLQJvg1fJoNkoCxneJ75Jc",[1450,1648],{"id":1451,"title":1452,"author":6,"body":1453,"category":1634,"description":1457,"extension":1427,"image":1635,"isToc":1636,"langAlt":6,"meta":1637,"metaDescription":6,"navigation":1429,"path":1638,"published":1429,"publishedAt":1639,"readingTimeMinutes":1640,"readingTimeText":1641,"relatedArticles":1642,"seo":1644,"stem":1645,"teaser":1646,"updatedAtCustom":6,"__hash__":1647},"blog_en\u002Fen\u002Fblog\u002Fdata-layer-validation-what-why-and-how.md","Data layer Validation – what, why, and how",{"type":8,"value":1454,"toc":1621},[1455,1458,1462,1469,1472,1482,1485,1488,1494,1498,1501,1504,1508,1511,1515,1518,1522,1525,1529,1532,1540,1544,1547,1551,1562,1566,1583,1586,1590,1598,1607,1614],[11,1456,1457],{},"In the world of information, relevant and accurate data make the difference, especially in saturated markets. Understanding your customers and delivering the best digital experience helps to build lasting relationships and increasing customer lifetime value (CLV). In order to extract the required information on the customers from the website\u002F e-shop, and build new strategies of more effective communication, web tracking is indispensable. To set up well-working web tracking, you need to implement a data layer.",[107,1459,1461],{"id":1460},"what-is-a-data-layer","What is a data layer?",[11,1463,1464,1465,1468],{},"In case the term ",[22,1466,1467],{},"data layer"," is new to you or just not too familiar, explaining it as a JavaScript Object will not tell you much. However, do not be discouraged. Yes, you do need to go an extra mile to implement it, and some coding is needed (you may team up with developers or hire an agency), the long-term benefits are worth it all.",[11,1470,1471],{},"Here is a simple data layer in a raw view",[1473,1474,1479],"pre",{"className":1475,"code":1477,"language":1478},[1476],"language-text","{\n    \"page\": {\n        \"type\": \"list\",\n        \"trail\": \"marketing\u002Farticles\",\n        \"list\": {\n            \"pageNumber\": 2,\n            \"filters\": {\n                \"years\": [\n                    \"2020\",\n                    \"2019\"\n                ],\n                \"keywords\": [\n                    \"affilates\",\n                    \"seo\"\n                ]\n            }\n        },\n        \"locale\": \"cs-CZ\",\n        \"currencyCode\": \"CZK\",\n        \"countryCode\": \"CZ\"\n    },\n    \"session\": {\n        \"machine\": \"external\",\n        \"deviceType\": \"mobile\",\n        \"env\": \"prod\"\n    },\n    \"user\": {\n        \"username\": \"tester123\",\n        \"id\": \"66oc39119520732e1s1f23ead6c57\",\n        \"segment\": \"customer.premium\",\n        \"transactionCount\": 2,\n        \"transactionValue\": 799.99\n    },\n    \"event\": \"page\"\n}\n","text",[1480,1481,1477],"code",{"__ignoreMap":1399},[11,1483,1484],{},"Simply put, a data layer is a method of collecting and distributing data from your website. On the deeper and more technical level, a data layer is a complex structure behind the websites or mobile apps to extract timely and consistent visitor\u002Fuser information. It holds the data you need and sends it to other applications, preferably firstly to tag management system (TMS) and from there to other analytical and marketing platforms. This way, customer actions are translated into variables and dimensions. The type of data that is contained in the data layer depends on the business requirements, such as transaction, behavioral, demographic, device, and more. The more information and varieties you need, the more complex the data layer gets.",[11,1486,1487],{},"Dividing the process into layers:",[11,1489,1490],{},[1491,1492],"img",{"alt":1399,"src":1493},"\u002Fupload\u002Fdatalayerillustration.webp",[107,1495,1497],{"id":1496},"why-is-a-data-layer-a-must","Why is a data layer a must?",[11,1499,1500],{},"To maximize the potential of your website, get to know your audience, and provide more personalized content, you need relevancy, consistency, and accuracy of your data in all platforms. Starting from your web via a data layer. The benefits go way beyond just knowing how much. The quality of the data is what counts.",[11,1502,1503],{},"From the perspective of practically on the background, a data layer standardizes data across technologies (analytical and marketing) and the collection maintains consistency despite changes on the web. You may know that changes on any website can drastically throw off your tracking, and if you ever experienced a measurement problem you know that the impact is even more disastrous. The data layer helps to reduce development time and the number of iterations between the development and marketers when implementing new technologies.",[1315,1505,1507],{"id":1506},"sounds-great-but","Sounds great, but …",[11,1509,1510],{},"As previously said, the data layer reduces time. However, as the website is not a static but a very dynamic environment, and even a small change can cause many mistakes. To prevent mistakes, you need to check for mistakes, which can seem too complicated and time-consuming. Manual control is one way, yet not very effective.",[107,1512,1514],{"id":1513},"data-layer-validation","Data layer validation",[11,1516,1517],{},"Data layer validation should come in regularly to prevent errors and sustain web measurement the way you want it. But forget the traditional method. Some tools can help you validate easier, or at least look into your data layer, row by row.",[1315,1519,1521],{"id":1520},"experience-comes-in","Experience comes in",[11,1523,1524],{},"Validating one data layer of a smaller website takes time but it is manageable. Imagine validating 10 or 100 very complex e-shops. Then you start thinking of a better solution. First, research of available tools comes in. After some time, you realize it got you nowhere, or the options are just not sufficient. We went through all the steps and more deeply to figure out how to tackle this case.",[107,1526,1528],{"id":1527},"meet-waaila-tracking-validator","Meet Waaila Tracking Validator",[11,1530,1531],{},"After trials and failures, we decided to develop our own tool for data layer validation. We put our experience with writing data layer specifications, our clients’ needs, and user experience, and released a Chrome extension that can inspect and validate your data layer through particular events and pages, just like a customer would progress on the website, which makes it easier to spot errors and, not less important, easier for the developers to understand the data layer as well.",[11,1533,1534,1539],{},[1087,1535,1538],{"href":1536,"rel":1537},"https:\u002F\u002Fwaaila.com\u002Fen\u002Ftracking-validator",[1091],"Waaila Tracking Validator"," extension is using JSON Schema standard, checks if your data layer on the website corresponds with the structure of the data layer defined in your custom JSON schema, and looks for inconsistencies.",[1315,1541,1543],{"id":1542},"waaila-tracking-validator-in-action","Waaila Tracking Validator in action",[11,1545,1546],{},"The tool allows you to validate the data layer against custom JSON schema and it is pretty simple to use. You insert the JSON schema into the tool, confirm, and start validating.",[427,1548,1550],{"id":1549},"benefits","Benefits",[437,1552,1553,1556,1559],{},[440,1554,1555],{},"Developed for analysts who create data layer specifications",[440,1557,1558],{},"Benefits the developers who often get lost in the data layer",[440,1560,1561],{},"Lowers the number of iterations",[427,1563,1565],{"id":1564},"features","Features",[437,1567,1568,1571,1574,1577,1580],{},[440,1569,1570],{},"Automatically validate the syntax of your data layer to easily detect various typos, such as lower\u002Fupper key, spaces, etc. that are very easily overlooked.",[440,1572,1573],{},"Semi-automatic validation of semantic. You need to manually choose the context of the web page, however, the validator automatically checks the data layer against the schema.",[440,1575,1576],{},"The exact location of the error in the data layer. Being able to see where exactly the error occurs and what problems it causes helps to understand general issues of the data layer, when not implemented correctly, and speed the process of retrieval.",[440,1578,1579],{},"Error highlighting proved to be very effective in the process of implementing changes into the data layer, especially when the developers do not understand the requirements, consequently decreasing the number of discussions among teams.",[440,1581,1582],{},"The tool is quick and responsive, the validation takes only a few seconds compared to long manual crawling.",[1393,1584,1585],{"link":1395,"button":1396},"\nWe can help you specify your data layer and implement digital measurement.\n",[1315,1587,1589],{"id":1588},"got-you-hooked","Got you hooked?",[11,1591,1592,1593,155],{},"Try the tool for free on ",[1087,1594,1597],{"href":1595,"rel":1596},"https:\u002F\u002Fchrome.google.com\u002Fwebstore\u002Fdetail\u002Fwaaila-tracking-validator\u002Fjkmohgcefflkfjoemjnpigiokpjeohcl",[1091],"Google Chrome store",[11,1599,1600,1601,1606],{},"Build your own ",[1087,1602,1605],{"href":1603,"rel":1604},"https:\u002F\u002Fwaaila.com\u002Fen\u002Fdocs\u002Ftracking-validator\u002F",[1091],"Validation schema",", and start validating the data layer instantly!",[11,1608,1609,1610,155],{},"Find out more in-depth descriptions and the process in ",[1087,1611,1613],{"href":1603,"rel":1612},[1091],"the extensive documentation",[11,1615,1616,1620],{},[1087,1617,19],{"href":1618,"rel":1619},"https:\u002F\u002Fcrossmasters.com\u002Fen\u002Fblog\u002Fzoom-in-on-measurement-hub\u002F",[1091]," about the data layer implementation.",{"title":1399,"searchDepth":1400,"depth":1400,"links":1622},[1623,1624,1627,1630],{"id":1460,"depth":1400,"text":1461},{"id":1496,"depth":1400,"text":1497,"children":1625},[1626],{"id":1506,"depth":1421,"text":1507},{"id":1513,"depth":1400,"text":1514,"children":1628},[1629],{"id":1520,"depth":1421,"text":1521},{"id":1527,"depth":1400,"text":1528,"children":1631},[1632,1633],{"id":1542,"depth":1421,"text":1543},{"id":1588,"depth":1421,"text":1589},"Products","\u002Fupload\u002Fdata-strategy-article-cover.webp",false,{},"\u002Fen\u002Fblog\u002Fdata-layer-validation-what-why-and-how","2020-10-07T01:26:03.000+00:00",5.535,"6 min read",[1443,1643],"content\u002Fen\u002Fblog\u002Fstarting-with-waaila.md",{"title":1452,"description":1457},"en\u002Fblog\u002Fdata-layer-validation-what-why-and-how","Many websites, especially e-shops underestimate the power of well-implemented data layer. Here is why and how you should make sure it is done right.","7nW396Sw7ENACMxQjmoUxQrG9x3N1nAbt07oOefXhPM",{"id":1649,"title":1650,"author":6,"body":1651,"category":1634,"description":1399,"extension":1427,"image":2633,"isToc":1429,"langAlt":6,"meta":2634,"metaDescription":6,"navigation":1429,"path":2635,"published":1429,"publishedAt":2636,"readingTimeMinutes":2637,"readingTimeText":2638,"relatedArticles":2639,"seo":2642,"stem":2643,"teaser":2644,"updatedAtCustom":6,"__hash__":2645},"blog_en\u002Fen\u002Fblog\u002Fzoom-in-on-measurement-hub.md","Zoom in on Measurement Hub",{"type":8,"value":1652,"toc":2604},[1653,1657,1660,1663,1666,1670,1673,1676,1680,1684,1698,1702,1705,1709,1712,1716,1719,1723,1726,1729,1732,1735,1738,1742,1745,1749,1752,1756,1779,1783,1786,1790,1793,1797,1800,1804,1807,1811,1814,1818,1821,1825,1828,1832,1835,1855,1859,1862,1865,1868,1872,1875,1879,1882,1890,1893,1896,1931,2423,2443,2447,2450,2453,2456,2543,2547,2550,2554,2558,2561,2565,2568,2572,2575,2579,2582,2586,2589,2593,2596,2600],[107,1654,1656],{"id":1655},"introduction","Introduction",[11,1658,1659],{},"The process for better customer experience and personalization through improved segmentation starts with data collection of customers' journeys and interactions. In order to achieve the best possible outcomes, it is necessary to collect the data uniformly and set meaningful measurements across various platforms.",[11,1661,1662],{},"When all marketing and analytical platforms are dependent on the website data, the accuracy of data and its right integration are of the utmost importance. Leveraging the collected data is a competitive advantage that generates exponentially higher marketing investment returns.",[11,1664,1665],{},"In a perfect scenario, the company has reliable, responsive, and reasonably-priced development resources, the development team is highly skilled, continually cooperates with the SEO and marketing team, or there is an affordable third-party partner. But very frequently that is not the case. The task of high-quality data collected, analyzed, and measured can be vastly complex.",[107,1667,1669],{"id":1668},"what-is-measurement-hub","What is Measurement Hub",[11,1671,1672],{},"Measurement Hub is not just a box solution, rather a group of complex scripts, yet elevated, more powerful, and more robust deployed via Tag Management System (TMS), commonly used one is Google Tag Manager (GTM). The codes are verified and are standardly pre-defined, can be slightly adjusted, or in case of a complicated case, they can be deeply overhauled. In addition to the scripts, it includes definitions of events and entities for data layer specification. The specification of the data layer is customizable to fit every specific need of every company in order to reach desirable goals. Fully implemented with an omnichannel context, Measurement Hub is dynamic, happening on the user's browser. The data is flowing through; however, it can be stored with integrated data storage. Therefore, Measurement Hub's value is not embedded in the codes only, but also in the expertise of consultancy.",[11,1674,1675],{},"Simply, Measurement Hub consists of a data layer on the front continuing to tag management system reading, consuming, and distributing the data, including establishing accurate measuring into marketing and analytical platforms. Similar to TMS implementation but much more extended.",[157,1677],{"source":1678,"caption":1679},"\u002Fupload\u002Fmhub-schema.webp","Visualization of data flow",[107,1681,1683],{"id":1682},"what-measurement-hub-covers","What Measurement Hub covers?",[437,1685,1686,1689,1692,1695],{},[440,1687,1688],{},"Data layer specification (specification of entities, parameters of entities, events)",[440,1690,1691],{},"Measurement specification (specification of mapping Data Layer into marketing and analytics platforms)",[440,1693,1694],{},"Code for all commonly used marketing and analytics platforms (codes which will be implemented into TMS)",[440,1696,1697],{},"Settings of an analytic platform",[1315,1699,1701],{"id":1700},"maintenance-and-support","Maintenance and support",[11,1703,1704],{},"After the implementation, standardly you are fully independent, the code is under your ownership in your TMS. We provide an introductory explanation of the configuration and the specification is handed over in an editable document as well. Upon request, we can provide further consultations. We can also manage the Measurement hub and TMS for you.",[107,1706,1708],{"id":1707},"what-measurement-hub-does-not-cover","What Measurement Hub does not cover?",[11,1710,1711],{},"Measurement Hub doesn’t focus on settings in marketing platforms. After the implementation of Measurement Hub, management of these marketing platforms is done on the company's side or their agencies, but we can help with that. At least there will be measurement specifications for the platform administrator to see what exactly is sent there. In case of additional questions or advice, we provide consultations for the standard hourly rate.",[107,1713,1715],{"id":1714},"why-is-its-implementation-essential","Why is its implementation essential",[11,1717,1718],{},"Just naming a few of the many advantages of Measurement Hub, the emphasis lays on data layer specification creating the foundation for the rest of the measurement.",[1315,1720,1722],{"id":1721},"data-layer-specification","Data layer specification",[11,1724,1725],{},"Fulfillment of Measurement Hub provides numerous advantages; however, the most valuable one is data layer specification, which imposes data consistency throughout the entire data flow to\u002Ffrom\u002Fin all the platforms, marketing, and analytical.",[11,1727,1728],{},"A well-constructed data layer (DL) can portray a roadmap to customer communication since thinking beforehand about customer interaction data supports its definition in order to connect all applications.",[11,1730,1731],{},"Making the data clean and consistent fastens the process and makes it more precise. Measurement Hub offers its own standard, which can fit any case. The specification of DL is customized for the individual needs ensuring the pre-defined requirements will be measured accurately everywhere.",[11,1733,1734],{},"Data layer specification is crucial for setting up website independence. Often, during website implementation, the data layer gets lost or broken and the measurement with it. The specification helps to discover it is broken and guides the development to fix it correctly. Additionally, the specification within Measurement Hub brings a conceptual solution and when done right from the beginning, it prevents the unnecessary failures of gradual implementation. It serves as a general overview and clear explanation of data layer events and what the data represents for the analysts.",[11,1736,1737],{},"Without the specification, the quality of the data cannot be validated with such accuracy and newcomers have nothing to understand of your data layer. To elaborate, the specification serves as a detailed manual not only for the development team but also helps your new team members to understand your data layer and measurement. It is better to show the actual documentation and explain the process in practice, than trying to describe it abstractly. From the experience, we observed it is a very handful in case you are expanding your team or there is a sudden change in staff.",[1315,1739,1741],{"id":1740},"measurement-specification","Measurement specification",[11,1743,1744],{},"Mapping of entire data flow within the data infrastructure, from the data layer to each platform is important for analysts, performance teams, online marketing teams, marketing agencies, etc. Knowing what transfers where contributes not only to a better overview and a general understanding of the process, but it can set a foundation for better decisions in, for instance, marketing or business strategy, and unlocks new opportunities.",[1315,1746,1748],{"id":1747},"validation","Validation",[11,1750,1751],{},"Part of the Measurement Hub implementation is a well-coordinated multilevel validation process which is done by our team of specialists who are well trained for this purpose. But there are also several tools, which are helping to reveal some errors in implementation automatically or just leverage effectiveness. Most of these tools were created by the Measurement Hub team itself for these purposes.",[1315,1753,1755],{"id":1754},"among-other-advantages-are","Among other advantages are:",[437,1757,1758,1761,1764,1767,1770,1773,1776],{},[440,1759,1760],{},"Utilizing the full potential of marketing platforms",[440,1762,1763],{},"Easier implementation of custom tracking",[440,1765,1766],{},"Easy control & well-manageable code of measuring",[440,1768,1769],{},"Complex and conceptual measuring into an analytical platform",[440,1771,1772],{},"Reliable and uniform measuring of (clean) data",[440,1774,1775],{},"Automatic error tracking",[440,1777,1778],{},"Fast and easy integration of new platforms",[107,1780,1782],{"id":1781},"common-problems-when-not-having-measurement-hub-or-when-do-you-need-it","Common problems when not having Measurement Hub (or when do you need it)",[11,1784,1785],{},"Often, the question of what is behind Measurement Hub implementation, especially in the case of a bigger e-commerce website, when setting up TMS can be done internally. This is true, however, the advantage is not solely in TMS itself. TMS is a means to an end, which in this case can be better user segmentation, targeting, and consistent data structure that supports it all. It requires technical background and knowledge along with business and user understanding to be able to adjust the settings for current and future marketing purposes; to be able to think ahead and from a certain perspective.",[1315,1787,1789],{"id":1788},"incorrect-data-duplicity-different-formats-unstructured-missing-data","Incorrect data: duplicity, different formats, unstructured, missing data...",[11,1791,1792],{},"Measurement Hub provides a set of codes that are implemented into TMS to make the most out of it but consistently and without duplicity. Without Measurement Hub the data is pushed in different formats causing duplicity or lost information. It can be almost impossible to put it all together after it is being pushed incorrectly.",[1315,1794,1796],{"id":1795},"website-design-changes","Website design changes",[11,1798,1799],{},"If website content changes progressively, the data layer gets disrupted or disappears totally and the measurement in the analytical platform cracks and then becomes incorrect, absent, or delayed, requiring substantial changes in settings. Thanks to Measurement Hub's automatic error tracking, the broken data layer is detected on time, can be fixed without a delay and the data damage will be minimal.",[1315,1801,1803],{"id":1802},"one-time-help-but-not-bringing-long-term-impact","One-time help but not bringing long-term impact",[11,1805,1806],{},"An easy and fast solution for a one-time project is not helping the company to grow. Opting for faster and simpler box solutions for smaller problems can help with the project. Measurement Hub looks at the whole picture, understanding the goal of the project and taking into consideration company growth. The elaborate conceptual approach harvests much more benefits in the long run and solves many problems.",[1315,1808,1810],{"id":1809},"replacing-platform","Replacing platform",[11,1812,1813],{},"In case of a need of replacing any current platform (especially analytical) for the new one, the entire measurement can be significantly damaged. Many platforms have their own standard data layer that is developed for their own use but is not compatible with the other platforms. Therefore, its change is extremely difficult and lots of data gets lost in the process. Leveraging Measurement Hub's own data layer, which is flexible and vendor-agnostic, the substitution happens smoothly without interruptions.",[1315,1815,1817],{"id":1816},"change-in-the-platform-api","Change in the platform API",[11,1819,1820],{},"Measurement Hub has its own DL standards that work for many different analytical and marketing platforms, are very flexible towards specific platforms and their changes. It is the first one to know when there is a change in the API of each platform.",[1315,1822,1824],{"id":1823},"consent-management-ready","Consent management ready",[11,1826,1827],{},"With the personal data law enforcement, customer consent needs to be integrated transversally on the entire website. Most TMS lack this extension, especially with GTM it can be almost impossible to execute. Measurement Hub is ready for any Consent Management System, the most common we use is Wecoma, which is in compliance with personal data protection laws, such as GDPR in the EU or CCPA in the US, or any other regulation.",[107,1829,1831],{"id":1830},"what-can-be-achieved","What can be achieved",[11,1833,1834],{},"The ultimate reason for choosing Measurement Hub is generally improved marketing strategy achieved by:",[437,1836,1837,1840,1843,1846,1849,1852],{},[440,1838,1839],{},"campaign automation and triggering",[440,1841,1842],{},"better customer experience and personalization",[440,1844,1845],{},"advanced segmentation and micro-segmentation",[440,1847,1848],{},"managing marketing audiences for targeting and retargeting",[440,1850,1851],{},"competitive advantage",[440,1853,1854],{},"exponentially higher marketing investment returns",[107,1856,1858],{"id":1857},"why-its-different","Why it's different",[11,1860,1861],{},"On top of all the benefits named above, Measurement Hub and the team executing it solve problems holistically for the company, not for one project. Experiences showed that the conceptual approach should not be forsaken for the seemingly longer execution on the contrary it needs to be prioritized.",[11,1863,1864],{},"Every third-party analytical and marketing tool has a different way of sending and collecting data, as well as different expectations on when and where their tags should be placed. We understand each platform and its parameters hence we know exactly how to implement them all properly. Measurement Hub is created to match the parameters therefore platform integration is simple and preserves data consistency.",[11,1866,1867],{},"The service also contains a detailed explanation of the whole process precise definitions of tailored requirements, documentation, and consulting.",[107,1869,1871],{"id":1870},"who-can-benefit","Who can benefit",[11,1873,1874],{},"Website data measuring is important for every e-commerce company. However, when e-commerce is the core business or brings the most lead and marketing spending is quite significant, simple measuring and analysis are usually not sufficient. Eloquently big companies with complicated and extensive website data architecture tend to neglect the importance of consistency and structure. Reaching higher levels of personalization and accomplishing better marketing campaign results might take even more effort and resources when done manually. Just shaping it together along the way may seem adequate, in the short-term, but eventually, it will catch up later.",[107,1876,1878],{"id":1877},"how-does-it-work","How does it work",[11,1880,1881],{},"Measurement Hub’s logic in TMS serves its purpose as a middleman between the website and each platform. Some key properties of Measurement Hub:",[437,1883,1884,1887],{},[440,1885,1886],{},"It is running in the browser of a user visiting your web. Therefore, there is no need for any other server and infrastructure.",[440,1888,1889],{},"It functions as a real-time stream middleman, thus by itself, it has no database or any storage.",[11,1891,1892],{},"In general, Measurement Hub takes the data from the data layer in real-time, transforms, and augments them, and immediately sends them into marketing and analytical platforms.",[11,1894,1895],{},"The whole data flow proceeds as follows:",[1897,1898,1899,1921],"ol",{},[440,1900,1901,1904],{},[62,1902,1903],{},"Main entities are pushed into the data layer",[437,1905,1906,1909,1912,1915,1918],{},[440,1907,1908],{},"User – information about the user",[440,1910,1911],{},"Page – information about the context",[440,1913,1914],{},"Session – information about the current session",[440,1916,1917],{},"Order – information about things which user just ordered",[440,1919,1920],{},"And so on...",[440,1922,1923,1926],{},[62,1924,1925],{},"Event is pushed into the data layer",[437,1927,1928],{},[440,1929,1930],{},"Page – it tells us that pageview happened (but it could be also any other event e.g. Add to cart, Product like, etc.)",[1473,1932,1936],{"className":1933,"code":1934,"language":1935,"meta":1399,"style":1399},"language-json shiki shiki-themes material-theme-ocean","{\n  \"page\": {\n    \"type\": \"list\",\n    \"trail\": \"marketing\u002Farticles\",\n    \"list\": {\n      \"pageNumber\": 2,\n      \"filters\": {\n        \"years\": [\"2020\", \"2019\"],\n        \"keywords\": [\"affilates\", \"seo\"]\n      }\n    },\n    \"locale\": \"cs-CZ\",\n    \"currencyCode\": \"CZK\",\n    \"countryCode\": \"CZ\"\n  },\n  \"session\": {\n    \"machine\": \"external\",\n    \"deviceType\": \"mobile\",\n    \"env\": \"prod\"\n  },\n  \"user\": {\n    \"username\": \"tester123\",\n    \"id\": \"66oc39119520732e1s1f23ead6c57\",\n    \"segment\": \"customer.premium\",\n    \"transactionCount\": 2,\n    \"transactionValue\": 799.99\n  },\n  \"event\": \"page\"\n}\n","json",[1480,1937,1938,1947,1965,1990,2011,2024,2043,2057,2094,2127,2133,2139,2160,2181,2201,2207,2220,2241,2262,2281,2286,2300,2321,2342,2363,2379,2394,2399,2417],{"__ignoreMap":1399},[1939,1940,1943],"span",{"class":1941,"line":1942},"line",1,[1939,1944,1946],{"class":1945},"sAklC","{\n",[1939,1948,1949,1952,1956,1959,1962],{"class":1941,"line":1400},[1939,1950,1951],{"class":1945},"  \"",[1939,1953,1955],{"class":1954},"sJ14y","page",[1939,1957,1958],{"class":1945},"\"",[1939,1960,1961],{"class":1945},":",[1939,1963,1964],{"class":1945}," {\n",[1939,1966,1967,1970,1974,1976,1978,1981,1985,1987],{"class":1941,"line":1421},[1939,1968,1969],{"class":1945},"    \"",[1939,1971,1973],{"class":1972},"s5Dmg","type",[1939,1975,1958],{"class":1945},[1939,1977,1961],{"class":1945},[1939,1979,1980],{"class":1945}," \"",[1939,1982,1984],{"class":1983},"sfyAc","list",[1939,1986,1958],{"class":1945},[1939,1988,1989],{"class":1945},",\n",[1939,1991,1993,1995,1998,2000,2002,2004,2007,2009],{"class":1941,"line":1992},4,[1939,1994,1969],{"class":1945},[1939,1996,1997],{"class":1972},"trail",[1939,1999,1958],{"class":1945},[1939,2001,1961],{"class":1945},[1939,2003,1980],{"class":1945},[1939,2005,2006],{"class":1983},"marketing\u002Farticles",[1939,2008,1958],{"class":1945},[1939,2010,1989],{"class":1945},[1939,2012,2014,2016,2018,2020,2022],{"class":1941,"line":2013},5,[1939,2015,1969],{"class":1945},[1939,2017,1984],{"class":1972},[1939,2019,1958],{"class":1945},[1939,2021,1961],{"class":1945},[1939,2023,1964],{"class":1945},[1939,2025,2027,2030,2034,2036,2038,2041],{"class":1941,"line":2026},6,[1939,2028,2029],{"class":1945},"      \"",[1939,2031,2033],{"class":2032},"sx098","pageNumber",[1939,2035,1958],{"class":1945},[1939,2037,1961],{"class":1945},[1939,2039,2040],{"class":2032}," 2",[1939,2042,1989],{"class":1945},[1939,2044,2046,2048,2051,2053,2055],{"class":1941,"line":2045},7,[1939,2047,2029],{"class":1945},[1939,2049,2050],{"class":2032},"filters",[1939,2052,1958],{"class":1945},[1939,2054,1961],{"class":1945},[1939,2056,1964],{"class":1945},[1939,2058,2060,2063,2067,2069,2071,2074,2076,2079,2081,2084,2086,2089,2091],{"class":1941,"line":2059},8,[1939,2061,2062],{"class":1945},"        \"",[1939,2064,2066],{"class":2065},"s-wAU","years",[1939,2068,1958],{"class":1945},[1939,2070,1961],{"class":1945},[1939,2072,2073],{"class":1945}," [",[1939,2075,1958],{"class":1945},[1939,2077,2078],{"class":1983},"2020",[1939,2080,1958],{"class":1945},[1939,2082,2083],{"class":1945},",",[1939,2085,1980],{"class":1945},[1939,2087,2088],{"class":1983},"2019",[1939,2090,1958],{"class":1945},[1939,2092,2093],{"class":1945},"],\n",[1939,2095,2097,2099,2102,2104,2106,2108,2110,2113,2115,2117,2119,2122,2124],{"class":1941,"line":2096},9,[1939,2098,2062],{"class":1945},[1939,2100,2101],{"class":2065},"keywords",[1939,2103,1958],{"class":1945},[1939,2105,1961],{"class":1945},[1939,2107,2073],{"class":1945},[1939,2109,1958],{"class":1945},[1939,2111,2112],{"class":1983},"affilates",[1939,2114,1958],{"class":1945},[1939,2116,2083],{"class":1945},[1939,2118,1980],{"class":1945},[1939,2120,2121],{"class":1983},"seo",[1939,2123,1958],{"class":1945},[1939,2125,2126],{"class":1945},"]\n",[1939,2128,2130],{"class":1941,"line":2129},10,[1939,2131,2132],{"class":1945},"      }\n",[1939,2134,2136],{"class":1941,"line":2135},11,[1939,2137,2138],{"class":1945},"    },\n",[1939,2140,2142,2144,2147,2149,2151,2153,2156,2158],{"class":1941,"line":2141},12,[1939,2143,1969],{"class":1945},[1939,2145,2146],{"class":1972},"locale",[1939,2148,1958],{"class":1945},[1939,2150,1961],{"class":1945},[1939,2152,1980],{"class":1945},[1939,2154,2155],{"class":1983},"cs-CZ",[1939,2157,1958],{"class":1945},[1939,2159,1989],{"class":1945},[1939,2161,2163,2165,2168,2170,2172,2174,2177,2179],{"class":1941,"line":2162},13,[1939,2164,1969],{"class":1945},[1939,2166,2167],{"class":1972},"currencyCode",[1939,2169,1958],{"class":1945},[1939,2171,1961],{"class":1945},[1939,2173,1980],{"class":1945},[1939,2175,2176],{"class":1983},"CZK",[1939,2178,1958],{"class":1945},[1939,2180,1989],{"class":1945},[1939,2182,2184,2186,2189,2191,2193,2195,2198],{"class":1941,"line":2183},14,[1939,2185,1969],{"class":1945},[1939,2187,2188],{"class":1972},"countryCode",[1939,2190,1958],{"class":1945},[1939,2192,1961],{"class":1945},[1939,2194,1980],{"class":1945},[1939,2196,2197],{"class":1983},"CZ",[1939,2199,2200],{"class":1945},"\"\n",[1939,2202,2204],{"class":1941,"line":2203},15,[1939,2205,2206],{"class":1945},"  },\n",[1939,2208,2210,2212,2214,2216,2218],{"class":1941,"line":2209},16,[1939,2211,1951],{"class":1945},[1939,2213,187],{"class":1954},[1939,2215,1958],{"class":1945},[1939,2217,1961],{"class":1945},[1939,2219,1964],{"class":1945},[1939,2221,2223,2225,2228,2230,2232,2234,2237,2239],{"class":1941,"line":2222},17,[1939,2224,1969],{"class":1945},[1939,2226,2227],{"class":1972},"machine",[1939,2229,1958],{"class":1945},[1939,2231,1961],{"class":1945},[1939,2233,1980],{"class":1945},[1939,2235,2236],{"class":1983},"external",[1939,2238,1958],{"class":1945},[1939,2240,1989],{"class":1945},[1939,2242,2244,2246,2249,2251,2253,2255,2258,2260],{"class":1941,"line":2243},18,[1939,2245,1969],{"class":1945},[1939,2247,2248],{"class":1972},"deviceType",[1939,2250,1958],{"class":1945},[1939,2252,1961],{"class":1945},[1939,2254,1980],{"class":1945},[1939,2256,2257],{"class":1983},"mobile",[1939,2259,1958],{"class":1945},[1939,2261,1989],{"class":1945},[1939,2263,2265,2267,2270,2272,2274,2276,2279],{"class":1941,"line":2264},19,[1939,2266,1969],{"class":1945},[1939,2268,2269],{"class":1972},"env",[1939,2271,1958],{"class":1945},[1939,2273,1961],{"class":1945},[1939,2275,1980],{"class":1945},[1939,2277,2278],{"class":1983},"prod",[1939,2280,2200],{"class":1945},[1939,2282,2284],{"class":1941,"line":2283},20,[1939,2285,2206],{"class":1945},[1939,2287,2289,2291,2294,2296,2298],{"class":1941,"line":2288},21,[1939,2290,1951],{"class":1945},[1939,2292,2293],{"class":1954},"user",[1939,2295,1958],{"class":1945},[1939,2297,1961],{"class":1945},[1939,2299,1964],{"class":1945},[1939,2301,2303,2305,2308,2310,2312,2314,2317,2319],{"class":1941,"line":2302},22,[1939,2304,1969],{"class":1945},[1939,2306,2307],{"class":1972},"username",[1939,2309,1958],{"class":1945},[1939,2311,1961],{"class":1945},[1939,2313,1980],{"class":1945},[1939,2315,2316],{"class":1983},"tester123",[1939,2318,1958],{"class":1945},[1939,2320,1989],{"class":1945},[1939,2322,2324,2326,2329,2331,2333,2335,2338,2340],{"class":1941,"line":2323},23,[1939,2325,1969],{"class":1945},[1939,2327,2328],{"class":1972},"id",[1939,2330,1958],{"class":1945},[1939,2332,1961],{"class":1945},[1939,2334,1980],{"class":1945},[1939,2336,2337],{"class":1983},"66oc39119520732e1s1f23ead6c57",[1939,2339,1958],{"class":1945},[1939,2341,1989],{"class":1945},[1939,2343,2345,2347,2350,2352,2354,2356,2359,2361],{"class":1941,"line":2344},24,[1939,2346,1969],{"class":1945},[1939,2348,2349],{"class":1972},"segment",[1939,2351,1958],{"class":1945},[1939,2353,1961],{"class":1945},[1939,2355,1980],{"class":1945},[1939,2357,2358],{"class":1983},"customer.premium",[1939,2360,1958],{"class":1945},[1939,2362,1989],{"class":1945},[1939,2364,2366,2368,2371,2373,2375,2377],{"class":1941,"line":2365},25,[1939,2367,1969],{"class":1945},[1939,2369,2370],{"class":1972},"transactionCount",[1939,2372,1958],{"class":1945},[1939,2374,1961],{"class":1945},[1939,2376,2040],{"class":2032},[1939,2378,1989],{"class":1945},[1939,2380,2382,2384,2387,2389,2391],{"class":1941,"line":2381},26,[1939,2383,1969],{"class":1945},[1939,2385,2386],{"class":1972},"transactionValue",[1939,2388,1958],{"class":1945},[1939,2390,1961],{"class":1945},[1939,2392,2393],{"class":2032}," 799.99\n",[1939,2395,2397],{"class":1941,"line":2396},27,[1939,2398,2206],{"class":1945},[1939,2400,2402,2404,2407,2409,2411,2413,2415],{"class":1941,"line":2401},28,[1939,2403,1951],{"class":1945},[1939,2405,2406],{"class":1954},"event",[1939,2408,1958],{"class":1945},[1939,2410,1961],{"class":1945},[1939,2412,1980],{"class":1945},[1939,2414,1955],{"class":1983},[1939,2416,2200],{"class":1945},[1939,2418,2420],{"class":1941,"line":2419},29,[1939,2421,2422],{"class":1945},"}\n",[1897,2424,2425,2438],{},[440,2426,2427,2430],{},[62,2428,2429],{},"When some event is pushed into DL, logic in TMS is triggered and starts consuming all data in DL.",[437,2431,2432,2435],{},[440,2433,2434],{},"First data are transformed and augmented if needed.",[440,2436,2437],{},"Then logic for every marketing and analytics platform is triggered and data are transformed and send according to the platform's requirements.",[440,2439,2440],{},[62,2441,2442],{},"Data is processed and saved on servers of specific platforms",[107,2444,2446],{"id":2445},"how-is-it-implemented","How is it implemented",[11,2448,2449],{},"The process starts with the definition of project requirements and is finalized by the implementation of measurement into platforms and proper settings of the analytic platform. The biggest and most important part is revolved around the data layer, its specification, implementation, and validation.",[11,2451,2452],{},"The implementation process of Measurement Hub consists of a series of steps and may take from a few weeks to several months, depending on the project requirements.",[11,2454,2455],{},"Implementation process in steps:",[1897,2457,2458,2471,2484,2494,2504,2513,2523,2533],{},[440,2459,2460,2463],{},[62,2461,2462],{},"Consultation on the measurement requirements with the client",[437,2464,2465,2468],{},[440,2466,2467],{},"This is the phase where we need to gain knowledge of your business and understand your needs. The main measurement concept is created, and critical parts of the measurement are identified. It will define data requirements in marketing and analytics platforms on a general level.",[440,2469,2470],{},"The requirements are specified by the Measurement Hub team together with a responsible person from your company, usually from the analytical team or performance team.",[440,2472,2473,2476],{},[62,2474,2475],{},"Creating the data layer specification based on the client’s requirements and website structure",[437,2477,2478,2481],{},[440,2479,2480],{},"This is the main part of the process. Every entity and every parameter, which could appear in Data Layer, must be properly defined. All events must be defined there.",[440,2482,2483],{},"It is processed mainly by the Measurement Hub team but with a consultancy with your team.",[440,2485,2486,2489],{},[62,2487,2488],{},"Specification adjustment with web development",[437,2490,2491],{},[440,2492,2493],{},"There is a difference between what an analytics or performance team wants, and how difficult it would be to implement it, if it is even possible and last but not least, how much it would cost. At this stage, developers can alert us to parts of the specification that would be too difficult to implement or that do not logically match, for example, the database structure of the website. The Measurement Hub team then incorporates the decision into the specification.",[440,2495,2496,2499],{},[62,2497,2498],{},"Data layer implementation",[437,2500,2501],{},[440,2502,2503],{},"In this phase, the client's developers must implement the whole DL according to specifications.",[440,2505,2506,2508],{},[62,2507,1514],{},[437,2509,2510],{},[440,2511,2512],{},"The data layer is validated manually by the Measurement Hub team. We are checking if events are happening when they should happen and if all parameters are containing what the specification defines. If there is some bug in the implementation, we are giving it back to developers for a fix.)",[440,2514,2515,2518],{},[62,2516,2517],{},"Implementation of the codes into the preferred tag management system",[437,2519,2520],{},[440,2521,2522],{},"Measurement Hub team will implement the content of the tag management system with codes for all marketing and analytics platforms which client want to use according to measurement specification)",[440,2524,2525,2528],{},[62,2526,2527],{},"Analytical platform settings",[437,2529,2530],{},[440,2531,2532],{},"Measurement Hub team prepares full settings of Analytical platform according to measurement specification, including custom dimensions, metrics settings, proper account structure settings, proper campaign grouping, filtering out testing, bots and other not wanted traffic.",[440,2534,2535,2538],{},[62,2536,2537],{},"Validation of measured data in the analytical platform",[437,2539,2540],{},[440,2541,2542],{},"Measurement Hub team validates measured data in analytical data to approve the right implementation of everything above. Also, some errors in DL there could appear due to hidden parts of the web or use case, which was not possible to find out with manual validation.",[107,2544,2546],{"id":2545},"price","Price",[11,2548,2549],{},"Measurement Hub's price depends on the website’s complexity, a number of marketing and analytics platforms, and individual requirements. Price ranges widely and it needs to be individually defined. There is a one-time payment just for the implementation without further fee for using Measurement Hub. Additionally, we can agree on a support fee for change requests in the specification, measurement codes, and so on.",[107,2551,2553],{"id":2552},"faq","FAQ",[427,2555,2557],{"id":2556},"what-if-we-do-not-have-any-tag-management-system","What if we do not have any tag management system?",[11,2559,2560],{},"That is not an obstacle. We can help you to pick the right one for you and include its implementation into the specification for developers.",[427,2562,2564],{"id":2563},"does-measurement-hub-also-work-for-mobile-applications","Does Measurement Hub also work for mobile applications?",[11,2566,2567],{},"Yes, from a technical point of view it is different, but the concept is almost the same. There is just one main difference in the implementation process - the implementation of marketing and analytics platforms. In the application, the implementation needs to be done fully by your developers. However, we provide full specifications on how to implement Measurement Hub in the mobile application, consistently aligned with website measurement.",[427,2569,2571],{"id":2570},"what-if-we-have-already-implemented-something-in-our-tms","What if we have already implemented something in our TMS?",[11,2573,2574],{},"That is not a problem. We can choose from several approaches, depending on the quality of the content of your current TMS and your preferences. We can investigate the functionality in your current TMS and propose solutions for improvement. A few options that can be either use part of it or all of it, or just overwrite it all.",[427,2576,2578],{"id":2577},"what-if-our-developers-do-not-cooperate-they-are-overloaded-with-other-higher-priority-tasks-or-they-cannot-help-us-for-a-different-reason","What if our developers do not cooperate, they are overloaded with other higher priority tasks, or they cannot help us for a different reason?",[11,2580,2581],{},"This can be a huge complication, which will definitely have an impact on the quality of the result. But we can help even in this case. It is possible to detect many things directly in TMS without developers' DL, which means without developers' help. We can develop some workarounds that can help you to get as much as possible from your website without developers.",[427,2583,2585],{"id":2584},"what-if-i-already-have-implemented-the-data-layer","What if I already have implemented the data layer?",[11,2587,2588],{},"We always prefer to create a new property for the new data layer to not be in conflict with the old one. The best practice is to also create a new TMS container for Measurement Hub and in that case, we have totally separated the old and the new measurement.",[427,2590,2592],{"id":2591},"what-about-the-continuality-of-my-data","What about the continuality of my data?",[11,2594,2595],{},"We are always preparing the specification with respect to your current measurement. We are discussing with you where we can break continuality for better measurement usability and the final decision is always on you.",[1393,2597,2599],{"link":1395,"button":2598},"Get in touch with us!","\nWant to know more about Measurement Hub and how you can benefit from it?\n",[2601,2602,2603],"style",{},"html pre.shiki code .sAklC, html code.shiki .sAklC{--shiki-default:#89DDFF}html pre.shiki code .sJ14y, html code.shiki .sJ14y{--shiki-default:#C792EA}html pre.shiki code .s5Dmg, html code.shiki .s5Dmg{--shiki-default:#FFCB6B}html pre.shiki code .sfyAc, html code.shiki .sfyAc{--shiki-default:#C3E88D}html pre.shiki code .sx098, html code.shiki .sx098{--shiki-default:#F78C6C}html pre.shiki code .s-wAU, html code.shiki .s-wAU{--shiki-default:#F07178}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":1399,"searchDepth":1400,"depth":1400,"links":2605},[2606,2607,2608,2611,2612,2618,2626,2627,2628,2629,2630,2631,2632],{"id":1655,"depth":1400,"text":1656},{"id":1668,"depth":1400,"text":1669},{"id":1682,"depth":1400,"text":1683,"children":2609},[2610],{"id":1700,"depth":1421,"text":1701},{"id":1707,"depth":1400,"text":1708},{"id":1714,"depth":1400,"text":1715,"children":2613},[2614,2615,2616,2617],{"id":1721,"depth":1421,"text":1722},{"id":1740,"depth":1421,"text":1741},{"id":1747,"depth":1421,"text":1748},{"id":1754,"depth":1421,"text":1755},{"id":1781,"depth":1400,"text":1782,"children":2619},[2620,2621,2622,2623,2624,2625],{"id":1788,"depth":1421,"text":1789},{"id":1795,"depth":1421,"text":1796},{"id":1802,"depth":1421,"text":1803},{"id":1809,"depth":1421,"text":1810},{"id":1816,"depth":1421,"text":1817},{"id":1823,"depth":1421,"text":1824},{"id":1830,"depth":1400,"text":1831},{"id":1857,"depth":1400,"text":1858},{"id":1870,"depth":1400,"text":1871},{"id":1877,"depth":1400,"text":1878},{"id":2445,"depth":1400,"text":2446},{"id":2545,"depth":1400,"text":2546},{"id":2552,"depth":1400,"text":2553},"\u002Fupload\u002Fmeasurement-hub-article-title-picture.webp",{},"\u002Fen\u002Fblog\u002Fzoom-in-on-measurement-hub","2020-06-25T12:00:00.000+00:00",15.86,"16 min read",[2640,2641],"content\u002Fen\u002Fblog\u002Fnotes-on-new-features-of-google-analytics-reporting-api-v4.md","content\u002Fen\u002Fblog\u002Fnew-data-api-for-google-analytics-4.md",{"title":1650,"description":1399},"en\u002Fblog\u002Fzoom-in-on-measurement-hub","Make the data clean, focused, and make all marketing campaigns more effective. Leveraging the collected data is a competitive advantage that generates exponentially higher marketing investment returns.","RHzQSC5vtEVUzNdvkmdpxHJCHBOl3wg9Lro8zMPmQM0",1789131822605]