chrisblakley / Nebula

Nebula is a WordPress theme framework that focuses on enhancing development. The core features of Nebula make it a powerful tool for designing, developing, and analyzing WordPress websites consistently, yet its deliberately uncomplicated code syntax also serves as a learning resource for programmers themselves.
https://nebula.gearside.com
GNU General Public License v2.0
142 stars 36 forks source link

Find a way to implement Google Analytics 4 even though it isn't ready -or- find a new analytics platform entirely before July 2023 #2076

Closed chrisblakley closed 2 years ago

chrisblakley commented 3 years ago

Related/Dependent of #1500 and this makes #1962 redundant.

Google Analytics now (or will very soon) defaults to "Google Analytics 4" as the default property type (formerly "Apps + Web"). This type requires the gtag property, but Nebula currently only works with Universal Analytics.

As #1500 notes, we need to make sure that the Tasks API can be utilized to transition. There is (what still feels like a hack) a way to do this with Gtag, but I've been really hoping that a more direct approach would be natively possible. Google's Issue Tracker Tasks API inquiry: https://issuetracker.google.com/issues/119244062

Nebula's event tracking currently also triggers a GTM event hook– I wonder if that is still necessary with the Gtag library?

One additional note is that via Enhanced Measurement (noted in #1962) will eliminate the need for the Autotrack.js library (which does not support gtag anyway). That being said, we need to make sure than any of the Nebula settings and hooks that override aspects of Autotrack can do the same thing with Enhanced Measurement in Google Analytics itself.

Documentation

Implementation

So here is a checklist of things that need to be done to support Google Analytics 4 in Nebula:

Note: In GA4, IP addresses are automatically anonymized.

chrisblakley commented 3 years ago

Looks like the new "Streams" use a "Measurement ID" (as opposed to a Tracking ID). This will mean that Nebula Options and variable names will need to change... right?

Screen Shot 2020-10-17 at 6 13 54 PM

https://support.google.com/analytics/answer/9539598

chrisblakley commented 3 years ago

Data Retention

User data retention options have also changed. Can only select between 2 months and 14 months for "event" data.

Screen Shot 2020-10-17 at 6 16 38 PM

The label "Event Data" is what is concerning... I know Universal Analytics keeps the event data and only removes demographic data beyond the retention period, but this seems to apply that the actual event data itself may be removed...

Any chance that this just means the cookie data will get deleted (as in, disassociated with the user) and not the actual analytics data? It mentions that the 2- or 14-month period is reset every time the user comes back to the site.

Edit: Someone in the community mentioned that they believe the data would be removed from GA after the retention period, but would remain available via Google BigQuery. I'm hoping to confirm that soon myself.

chrisblakley commented 3 years ago

User Properties

User Properties are created on the reporting-side (not the admin-side) here: Screen Shot 2020-10-17 at 6 22 41 PM

Each GA Property can have a max of 25 user properties. https://developers.google.com/analytics/devguides/collection/ga4/user-properties

Note: User properties can be (permanently) archived so that new ones can be created (with a 48-hour waiting period): https://support.google.com/analytics/answer/9269570?hl=en&ref_topic=9756175 Once it is archived, that is permanent!

Custom Definitions (Dimensions and Metrics)

Custom Dimensions and Metrics are still available, but are tucked away under Events > All Events on the reporting-side as well. The "Parameter Name" is the JS object key, and the "Dimension Name" is the human-readable reporting name. Parameter names are no longer limited to dimension4 or whatever (however, keep them shorter than 24 characters)). From what I can tell, custom dimensions are no longer limited. However, I don't see a "scope" setting, so I'm not sure how hit, session, and user dimensions are defined...

Screen Shot 2020-10-17 at 6 26 40 PM

In reporting, secondary dimensions can be applied to table reports by clicking the "+" icon.

Screen Shot 2020-10-17 at 6 36 38 PM

Screen Shot 2020-10-17 at 6 36 49 PM

chrisblakley commented 3 years ago

Events

"In a Google Analytics 4 property, every "hit" is an "event," meaning there is no longer a distinction between hit types." AKA– there is no pageview hit type (but what about timings and exceptions– also events I'm assuming?)

Recommended events: https://support.google.com/analytics/answer/9267735 Note: the "Event" column is the event "name" (which I believe is what the conversion would look for)

GA4 has some default events that it can track via Enhanced Measurement: https://support.google.com/analytics/answer/9234069?hl=en&ref_topic=9756175

The list for web:

Video tracking refers to Youtube videos, and only when they have the enablejsapi query string. Nebula already does some "reloading" of Youtube videos, but with GA4 it should always do it for all videos.

GA4 also has recommended defaults for common events: https://support.google.com/analytics/answer/9267735

Screen Shot 2020-10-18 at 12 20 45 AM

It will be a good idea for Nebula to match these names and properties.

Differences between UA events and GA4 events:

Per https://support.google.com/analytics/answer/10106689?hl=en&ref_topic=9328240

GA4 has a limit of 500 event names. How many event names (ballpark) does Nebula currently use? With a quick find, I can see that Nebula sends roughly 86 event instances to GA, however many of those are going to be duplicate names, so we should be well within the limit and also allow for the child theme to have more than enough event names of its own.

Note: This is per device/browser instance– not per property! As clarified here: EuS-g2qXMAQXmW-

"You can send a maximum of 25 custom parameters per event, and each parameter value can be 100 characters long. There is a total limit of 50 custom text and 50 numeric parameters per property." https://support.google.com/analytics/answer/10106689?hl=en&ref_topic=9328240

Conversion Goals

GA4 has five default conversions (that do not count towards the 30 additional conversions you can add):

Default conversions details: https://support.google.com/analytics/answer/9234069

Since there is no "View" column anymore in the admin section, it looks like goals/conversions are managed on the reporting side under Events > All Events. There is a column here where you can toggle which events are marked as conversions.

Screen Shot 2020-10-17 at 6 30 42 PM

New conversion events can be created in anticipation of upcoming event data (if no events have appeared yet) under Events > Conversions and clicking "New conversion event" and filling out the event name.

@todo: Note here what the "Event Name" corresponds to– I'm guessing it's the action, but verify that.

chrisblakley commented 3 years ago

Debug Mode

This is a great idea so that dev servers can send actual data to GA without interfering with live data.

From the docs: https://support.google.com/firebase/answer/7201382?hl=en&utm_id=ad

Via gtag.js for all events

Include a 'debug mode' = true parameter; for example:

gtag('config', 'G-12345ABCDE',{'debug_mode':true});

Via gtag.js for individual events

gtag('event', 'xyz', {
  'debug_mode':true
});

These will appear in the DebugView report: Screen Shot 2020-10-17 at 7 08 04 PM

Consider adding a Nebula option in the Analytics section to set all data to "debug" mode.

chrisblakley commented 3 years ago

New Limits

chrisblakley commented 3 years ago

Cross-Domain Tracking

It seems like GA4 would be good for cross-domain tracking (if we need multiple domains to send data to the same GA property). Looks like we could just set up a new stream for each data source, but the documentation recommends (requires?) some kind of User ID that is passed between the websites... What about if we do not have user logins?

chrisblakley commented 3 years ago

Google Analytics 4 Measurement Protocol

The Measurement Protocol still works with GA4, but looks like the API is back to Alpha, so it could drastically change between now and when becomes stable. For now, here is the documentation of how to send an event via the Measurement Protocol: https://developers.google.com/analytics/devguides/collection/protocol/ga4/sending-events?client_type=gtag#send_an_event

Nebula was sending a beacon for quality assurance usage tracking #2075 but eventually we can use Fetch for that.

const measurement_id = `G-XXXXXXXXXX`;
const api_secret = `<secret_value>`;

fetch(`https://www.google-analytics.com/mp/collect?measurement_id=${measurement_id}&api_secret=${api_secret}`, {
  method: "POST",
  body: JSON.stringify({
    client_id: 'XXXXXXXXXX.YYYYYYYYYY',
    events: [{
      name: 'tutorial_begin',
      params: {},
    }]
  })
});

Note that the new version of the Measurement Protocol is v2.

yg482

chrisblakley commented 3 years ago

Tasks and Initial Pageview Send

After doing some initial testing, I'm not sure how the persistent data would be set since it happens in the event_callback function of the event being sent to GA... Additionally, the syntax is not the way the documentation requires.

gtag('event', 'page_view', {
    'event_callback': function(){
        window['ga'](function(){
            var gtagTracker = window.ga.getByName('gtag_UA_36461517_3');
            gtagTracker.set('client_id', gtagTracker.get('clientId')); //This does not follow the proper syntax for a user property in gtag...
        });
    },
    'custom_parameter': 'I would need the data here...'
});

Since the documentation requires the custom property to be at the top-level of the object parameter (parameter 3), the above syntax may not even work at all. Is there a way to "set" the property like there was in Universal?

chrisblakley commented 3 years ago

Hypothetical Reports

I want to list some typical reports we use in Universal Analytics and map them to how you'd find that data in a GA4 property.

Key metrics (users, sessions, pageviews, bounce rate)? Formerly under Audience > Overview.

Which acquisition channel has the highest conversion rate? First check the User Acquisition report using the "Medium" or "Source/Medium" dimensions: Screen Shot 2020-10-29 at 11 02 31 PM

"Default Channel Grouping" is still available in certain reports such as Traffic Acquisition: Screen-Shot-2020-11-10-at-9 46 22-AM And while it is very cool to see event data in this report now, I don't see a "Conversion Rate" column– only a raw number of conversions which is not all that useful... In fact, even in the Analysis Hub I don't see a conversion rate metric (only "Conversions". Similarly within the Analysis Hub, I do not see a Default Channel Groupings dimension either.

Further details would be under Explore > Analysis > Template Gallery > Acquisition (under Use cases). I still need to try this myself to learn what additional customization is required after choosing that report type.

Which UTM source/medium is performing the best? Again– check the User Acquisition report and/or use the explorer to build the data.

What URLs are referral tracking coming from? Explore > Analysis > Template Gallery > Acquisition?

What are the top landing pages on the Organic Search channel? I'm guessing you'd use the "Pages and Screens" report under Engagement, but I don't know how to segment to organic traffic yet– probably via "comparison" but I don't see an "organic search" option in that dropdown... Do we really need to make a custom analysis for this too?

What is the average load time of the website?

Which page are users typically navigating to after landing on the home page?

What about the Content Drilldown report?

How does the bounce rate of each landing page compare?

What pages users exit from? I haven't tested this yet myself, but looks like it would be found under the Explore > Analysis > Template Gallery > User Behavior (under "Use Cases"). ...Do we really have to "create" all of these reports on every single property we manage?? I understand that GA4 caters to both web and apps, but this sounds like a huge time requirement... Can't "web" have better default reports?

Internal search usage?

How can I see an individual user's sessions? The User Explorer still exists, but the report must be "created" under the Explore > Analysis > Template Gallery > User Explorer (under "Techniques)

Where can I see exceptions (errors) that we are tracking?

Will there be a community shared report template gallery like exists in Unversal now? Since managing dozens of properties could get tedious setting up the same reports over and over in the Explorer I wonder if we'll see a community-based (or even user-based) saved templates to make setting these up a little faster...?

chrisblakley commented 3 years ago

Questions

Here are my questions from my notes below. I'll try to answer them here as a quick-reference in the future (or for anyone else who stumbles upon this). I will not feel confident switching Nebula to GA4 until I can answer all of these questions.

Q.) Will we ever get direct access to the Tasks API? This issue is currently assigned, but no idea if anything will change from it. IMO, this may be the primary hurdle for Nebula updating to GA4...

Q.) Does data itself (events) get removed from GA reports after the retention period, or just their association with that user (cookie)? The Data Retention page says the following: "You can change the retention period for data you send that is associated with cookies, user identifiers, or advertising identifiers. These controls don’t affect most standard reporting, which is based on aggregated data. Changes to these settings take effect after 24 hours." So it seems like not all data is beholden to this data retention policy. More info here: https://support.google.com/analytics/answer/7667196?hl=en&utm_id=ad

Q.) What is the difference between a "User Property" and a "Custom Dimension"? My current guess is that a User Property is the same as the old user-scoped dimension in UA, and a custom dimension now refers to an "event" scoped dimension... I'm not sure what an event-scope is... is it a "hit"? If so, where did "session" scoped dimensions go (I use those much more commonly)...

Update: User-scoped custom dimensions are now available separately: https://support.google.com/analytics/answer/10075209

Q.) How are custom dimensions scoped? Event-based and User-based: https://support.google.com/analytics/answer/10075209 Will there be session-scoped custom dimensions?

Q.) What does the event "name" correspond to? (Ex: Category, Action, or Label) The event name is the equivalent of the UA "action". There is no such thing as a category, action, or label anymore– only custom parameters: https://support.google.com/analytics/answer/10106689?hl=en&ref_topic=9328240

Screen Shot 2020-10-18 at 12 08 26 AM

GA4 has a limit of 500 event names per property!

Q.) Are custom parameters (for events) the same as custom dimensions/metrics or are they different?

Q.) Where are filters (formerly in Views), and how do we filter out internal traffic? I thought they would be in the "Data Streams" setting within each property, but when I click on the "All Filters" setting under the Account, I see this message: "Filters cannot be applied to App + Web [GA4] Properties."

However, if you click into the Data Stream, and then choose "Tagging Settings" in the "Additional Settings" section, you can select "Define internal traffic" which would still appear in GA reports, but would be marked as internal.

Screen Shot 2020-10-29 at 10 56 27 PM

Screen Shot 2020-10-29 at 10 56 07 PM

Update: Filters are now available: Screen Shot 2021-02-19 at 9 37 05 PM

But it looks like the config options for the filters are very limited: Screen Shot 2021-02-19 at 9 38 36 PM

Q.) Are brand terms no longer able to be added to allow for custom channel groupings of "Branded Paid Search" and "Generic Paid Search"? Not only are these no longer a thing, but it appears that it has also been retroactively removed from Universal Analytics as well.

Q.) Are Calculated Metrics going away? I didn't use these much, but Nebula does have some documentation on them that may need to be updated.

Q.) Is internal Site Search reporting going away? Since that was a setting under "View", the setting must have been moved. In this documentation page, site search is still referenced, and the query parameter can be changed in the "Advanced Settings" area... wherever that is.

Q.) How is "Engagement" defined? Sessions that last longer than 10 seconds, or have a conversion event, or had 2 or more pageviews.

Screen Shot 2020-11-10 at 9 58 16 AM
chrisblakley commented 3 years ago

Noting this here as a custom field formula for Google Data Studio. This can help recreate the "Default Channel Grouping" dimension that is sorely lacking from GA4:

Screen Shot 2020-11-10 at 4 23 22 PM
CASE 
WHEN ((Source="direct" AND Medium="(not set)") OR Medium="(none)") THEN "Direct" 
WHEN Medium="organic" THEN "Organic Search" 
WHEN (Social Source Referral="Yes" OR REGEXP_MATCH(Medium,"^(social|social-network|social-media|sm|social network|social media)$")) THEN "Social" 
WHEN Medium="email" THEN "Email" 
WHEN Medium="affiliate" THEN "Affiliates" 
WHEN Medium="referral" THEN "Referral" 
WHEN (REGEXP_MATCH(Medium,"^(cpc|ppc|paidsearch)$") AND Ad Distribution Network!="Content") THEN "Paid Search" 
WHEN REGEXP_MATCH(Medium," ^(cpv|cpa|cpp|content-text)$") THEN "Other Advertising" 
WHEN (REGEXP_MATCH(Medium,"^(display|cpm|banner)$") OR Ad Distribution Network="Content") THEN "Display" ELSE "(Other)" 
END

Here is the logic source from Google's documentation: https://support.google.com/analytics/answer/3297892

Note: I have now seen the default channel grouping in GA4 reports– not sure if it is available in the Explorer and no idea if it is available in Data Studio, but I did see it (or a sufficiently equivalent) somewhere.

March 2022 Edit: I want to say I've seen the default channel groupings now in GA4. It might not have been exactly the same as before, but I think they are there in some capacity now.

chrisblakley commented 3 years ago

Per a Google rep, the ballpark of Q2 2021 was floated for a broader feature set.

They also mentioned at least 18 months before the idea of Universal deprecation would be in the conversation. I imagine (hope) it will still work for a very long time (since Classic still works)...

They also mentioned a quality of life reporting update around Q1 2021. Really looking forward to that.

chrisblakley commented 3 years ago

Looks like GA4 will have event editing right from within Google Analytics– so changing the name of the event name after the data has been sent (without needing to modify website code).

Important: Think of these like filters it does not change historic data already within GA– only new data coming in.

Screen Shot 2021-01-29 at 6 19 20 PM

Screen Shot 2021-01-29 at 6 20 21 PM

Where this is useful would be to establish consistency in naming. For example setting up rules like eblast => email or Mailto Click => mailto_click to preemptively be consistent.

The "Operator" field most likely has a RegEx option, so that could be used for things like lowercasing or replacing spaces with underscores too... Not 100% positive on those possibilities yet, though.

chrisblakley commented 3 years ago

New demo account available: https://analytics.google.com/analytics/web/demoAccount

https://support.google.com/analytics/answer/6367342?linkId=110255766

Actual Demo Property: https://analytics.google.com/analytics/web/#/p213025502/reports/intelligenthome

chrisblakley commented 3 years ago

User-scoped custom dimensions are now available in GA4: https://support.google.com/analytics/answer/10075209

EumvemEXIAUYQMG

Screen Shot 2021-02-19 at 9 45 56 PM

chrisblakley commented 3 years ago

Data filtering is now available as well, but is limited to exclude internal traffic and/or dev server traffic: Screen Shot 2021-02-19 at 9 37 05 PM

Screen Shot 2021-02-19 at 9 38 36 PM

chrisblakley commented 3 years ago

An API key will be needed to use the Measurement Protocol API. It is available under Admin > Data Streams > (Click the data stream you want) > Measurement Protocol API secrets

Screen Shot 2021-02-19 at 9 40 58 PM

chrisblakley commented 3 years ago

Cross-Domain tracking (formerly GA Linker) is set up under Admin > Data Streams > (Click the data stream you want) > More Tagging Settings > Configure your domains

Screen Shot 2021-02-19 at 9 43 35 PM

chrisblakley commented 2 years ago

Screen Shot 2022-03-16 at 1 58 45 PM

Google announced today that Universal Analytics will no longer be available as of July 1, 2023.

-Until July 1, 2023, you can continue to use and collect new data in your Universal Analytics properties.

https://support.google.com/analytics/answer/11583528

GA4 is nowhere close to being ready for this, but I'm guessing the GDPR lawsuits in the EU is what is hastening Google's decision.

Might be time to look into alternate platforms ahead of July 2023. What a nightmare this whole thing is.

chrisblakley commented 2 years ago

Alternative Analytics Platforms if it comes to that

Ideally it would be a free, cloud-based platform that is privacy compliant and allows for the advanced detections (events, custom dimensions) that Nebula has developed. The biggest thing here is we're trying to replace a literal industry standard, which is a very tall order.

As I research these, I'll update with some details and gut reactions.

Matomo (Meh)

https://matomo.org/ Pricing: https://matomo.org/pricing/

Self-hosted is free (does that include the WP plugin? I'm guessing not...?). Otherwise the cloud-based is $23/mo for 50k "hits" (guessing pageviews?).

I've started running the WP Plugin version of this on the Nebula documentation now. Seems okay so far. Nebula already has been using their spam domain list for years. "Forms" analytics are $179/yr so it seems like it's a "nickel and dime" situation here for anything beyond vanilla data. I'd be scared of switching several dozen clients over only to find an unexpected extra cost for a certain feature.

The reporting categories look similar to GA, so that is promising. Once data starts coming in I'll have a more clear understanding of how viable the reports are. The reports still don't have as much detail as GA– for example the Landing Page (or Entry Page, or whatever they call it) report does not have a conversion rate metric.

Adobe Analytics (No– many reasons)

I do not want Nebula to be beholden to an expensive, proprietary platform like this as very few websites would feasibly be able to use it. It likely is the closest alternative to Google Analytics, but there are significant reasons against this platform including a steep learning curve. This can certainly be something that is considered for adding in addition to GA4, but not out of the box for Nebula.

Plausible (Meh)

https://plausible.io/ Pricing: https://plausible.io/#pricing Demo: https://plausible.io/plausible.io

$9/mo for up to 10k monthly pageviews. $20/mo for 100k pageviews.

Claims to not be blocked by ad-blockers... Doubtful. Their GA comparison page claims that GA has too many features, that is... exactly what I'm looking for as a data analyst. Maybe the oversimplification of Plausible is good for some tiny business somewhere, I need something complex. Complexity is a benefit here.

This is another "dashboard" style platform, but to its credit it does have some of the reports and even some contextual data, but still nowhere close to GA. I don't see event tracking anywhere, so I'm guessing the Goal Conversion report is all destination based? I may be wrong on that– tough to tell. One of the better contenders, but I still feel like I'd choose GA4 over this.

Microsoft Clarity (Already using, but not a 1:1 GA replacement)

Nebula does already allow for MS Clarity integration, but I don't believe it has enough features to be the sole reporting platform.

Clicky (Meh– lacking features/data)

https://clicky.com/ Demo: https://clicky.com/stats/?site_id=32020 Free tier (not sure the limitation), and $10/mo for up to 1,000,000 pageviews.

They're claiming Google Analytics doesn't have many of the features that it actually does (bot filtering, non-JS tracking, email alerts, video analytics, WP plugin), so that makes all of the claims on the site untrustworthy.

Does not appear to have conversion rate metrics in their content reports- such as Entrances. The demo does not have any event data so I can't tell the usefulness/organization.

Heap (No- outrageously expensive)

https://heap.io/ Pricing: https://heap.io/pricing

Free up to 10k sessions/mo. $300/mo for ~16k sessions/mo. on the Growth A Tier... Damn that's a big jump.

Tough to tell from the screenshots if it is worthwhile, but for the price tag this would need to be literally lifechanging. I'm not going to recommend Nebula users buy into a $300/mo+ analytics platform.

Simple Analytics (No– significant lack of features/data)

https://simpleanalytics.com/ Pricing: https://simpleanalytics.com/#signup Demo: https://simpleanalytics.com/simpleanalytics.com

$19/mo for up to 100k pageviews. This looks like it's a pay per admin seat platform too, so only 1 at the lowest tier. Then $60/mo for 1,000,000 monthly pageviews and 10 users.

Event tracking is in beta apparently. The demo is even more underwhemling than Fathom. Seems to be missing any kind of contextual data and I don't see bounce rate or conversion rate metrics anywhere. It lives up to it's name, but kind of insulting to expect people to pay $60/mo for this... am I missing something?

Fathom (Likely no– significant lack of features/data)

https://usefathom.com/ Demo report here: https://app.usefathom.com/share/deasaicp/hilarious+platypus#/?filters=%5B%5D&range=last_7_days&site=114903 Pricing: https://usefathom.com/pricing

$14/mo for lowest tier of 100k monthly pageviews.

I'm significantly underwhelmed by this report. It's missing things like percent metrics, conversion goals, landing pages, event drilldowns... For $14/mo per client this is not an option at this point.

SmartLook (Likely no– expensive)

https://www.smartlook.com/ Pricing: https://www.smartlook.com/pricing/

Free for 1,500 sessions/mo. Jumps up to $40/mo for 5k sessions– this means many websites will need to pay the $95/mo tier to get a baseline acceptable amount of data (15k sessions/mo).

First impression it seems more like a Hotjar alternative than competing against Google Analytics itself. Can't really tell what the platform can do from the screenshots and I'd sooner stick with GA4 than give my personal information to a sales team's CRM to sit through 1 demo followed by daily spam email/phone calls thereafter.

PostHog

https://posthog.com/ I think this is geared towards more product-analytics. Will probably delete this.

Open Web Analytics

https://www.openwebanalytics.com/ https://github.com/Open-Web-Analytics/Open-Web-Analytics

Doesn't look all that great visually, but seems to be heavily inspired by Google Analytics. From the screenshots it's tough to tell exactly how deep the feature set goes, so I'm not counting this out, but I don't see things like conversion rate...

Pirsch Analytics (No– significant lack of features)

https://pirsch.io/ Demo: https://pirsch.pirsch.io/?domain=pirsch.io&interval=7d

$5/mo fo 10,000 pageviews, $10/mo for 100,000 pageviews.

Another simple dashboard type platform. I could have sworn I've already seen this exact style layout before with a different name...? Have I already looked at this one before or is there another one that looks super similar? Either way it is missing essential features.

Visitor (No– expensive)

https://www.visitor-analytics.io/en/ https://www.visitor-analytics.io/en/pricing/

Free plan is 400 visits per month (wow), $10/mo for 10,000 visits per month. Most sites are going to need the $32/mo tier.

66Analytics

https://66analytics.com/ https://66analytics.com/#pricing

You need to register for the demo. Looks like $80 to purchase the software. Will look into it more later.

TelemetryDeck

https://telemetrydeck.com/

Free tier is up to 100,000 "signals" per month and 1 user. There is a $10/mo tier and then jumps to a $70/mo tier.

Will look at features later.

Fugu (No– significant lack of features)

https://fugu.lol/ Demo: https://app.fugu.lol/hqvc/projects/fugu/events/viewed-events?agg=d&date=30d

This seems to be massively missing necessary features to be considered useful for Nebula. They say so right on the homepage that it is meant for small indie teams and not businesses.

Insights (No? Likely lacking features)

https://getinsights.io/

Free up to 3,000 pageviews/events per month. $12/mo up to 100,000 pageviews/events. Then jumps up to $29/mo for 1,000,000.

I literally cannot find a screenshot or anything of the reports. The features page just lists performance, page tracking, event tracking, and transparency. I have no idea what is available for reporting, but it doesn't sound like it is much.

Countly (No– likely far too expensive)

https://count.ly/ https://count.ly/pricing

Basic version is free with no SLA or branding. The basic version does not appear to have access to any detailed reports and has limited User analytics (but doesn't say specifics). Pricing jumps to "Enterprise Edition", so likely far too expensive to consider those reports.

This is also product analytics, but I'll give it a fair shot later.

Marfeel

https://www.marfeel.com/

The site looks nice but I can't tell how the actual tool works without registering. Seems like there is no data retention without a paid account and despite the "pricing" page there are no prices which means it's expensive. No Data Studio connector without top-tier. No goal tracking without paid tier.

Overall Notes About Switching Platforms

I'm lukewarm about any of these platforms (and that is being generous). None of them come even close to even the basic features of Google Analytics. Adobe Analytics is probably the closest, but there are many other reasons why that would not work for Nebula. I didn't see any ecommerce analytics reports in most of these tools– and the 1 or 2 that mentioned it I'm doubtful it's all that great.

What other platforms are there?

chrisblakley commented 2 years ago

As we research alternatives, Nebula will begin shifting support to GA4 starting May 1, 2022 (in about a month and a half). Nebula v10 will be the last version that uses Universal Analytics 😢

chrisblakley commented 2 years ago

Most Important GA Reports

Noting the most important GA reports in my opinion that we would either need to find in another platform or recreate within GA4 itself as closely as possible.

Audience Overview

This is essential for key metrics and the visual timeline chart.

Screen Shot 2022-03-19 at 2 01 38 PM

Acquisition Channels

Probably the most useful report in all of GA. Default channel groupings with individual metrics including bounce rate (or engagement rate or whatever) and the conversion rate for various (or all combined) goals. These must be drilldowns so we can click into one channel to see additional details (referrals, search engines, social network, campaigns, etc.).

Screen Shot 2022-03-19 at 2 04 04 PM

Campaigns

Pretty much the same report as acquisition channels, but includes campaign data. These must be drilldowns so that additional campaign details can be viewed. Campaign Name -> Source/Medium -> Content.

Screen Shot 2022-03-19 at 2 30 30 PM

Mobile Overview

Breakdown of device categories with individual metrics including bounce rate and conversion rates.

Screen Shot 2022-03-19 at 2 05 32 PM

Nice-to-have would be a bounce rate comparison, too.

Screen Shot 2022-03-19 at 2 06 17 PM

Top Content

Showing the most popular pages on the site. Nice to have the page value metric, too.

Screen Shot 2022-03-19 at 2 06 53 PM

Content Drilldown

Showing the most popular sections on the site.' Each row in this report is a URL directory and includes all pages within that directory. Especially useful for organic acquisition pages like blog posts.

Screen Shot 2022-03-19 at 2 09 07 PM

Landing Pages

This is another essential report to determine which landing pages are contributing to conversions and also which have the highest bounce rates.

Screen Shot 2022-03-19 at 2 11 48 PM

Screen Shot 2022-03-19 at 2 12 42 PM

Navigation Summary

This is important to see pages being viewed before/after a specific page. Useful to see what the next pages viewed after the home page (or a particular landing page), for example.

Screen Shot 2022-03-19 at 2 14 44 PM

Site Search

Shows how often internal searches occur, what keywords are being searched for, as well as how often search refinements (subsequent searches) happen, how often users are leaving from internal SERP, and other useful metrics.

Screen Shot 2022-03-19 at 2 16 05 PM

Screen Shot 2022-03-19 at 2 15 57 PM

Events

These are essential and must drilldown from Category -> Action -> Label. Ideally it would report on total and unique events.

Screen Shot 2022-03-19 at 2 23 28 PM

Goals

These are obviously essential. From a setup standpoint, these should be able to be destination pages or events and be able to match full pages or partial/regex strings. This is actually one thing I think even Universal Analytics doesn't have great reports on. It's mostly useful as contextual metrics within other reports.

Screen Shot 2022-03-19 at 2 26 04 PM

Exceptions

I suppose this isn't an essential report, but tracking errors is important. Secondary dimensions or drilldowns are important here to determine the location and other contextual information (like mobile vs desktop, browser, OS, etc.).

Screen Shot 2022-03-19 at 2 31 56 PM

Various Ecommerce Reports

Obviously these are useful for a range of product/sales reporting.

Screen Shot 2022-03-19 at 2 19 05 PM

Screen Shot 2022-03-19 at 2 19 22 PM

Screen Shot 2022-03-19 at 2 19 29 PM

Screen Shot 2022-03-19 at 2 19 51 PM

Site Speed

Not essential, but nice to heave real-world data here.

Screen Shot 2022-03-19 at 2 40 16 PM

Miscellaneous Nice-to-Have Reports

chrisblakley commented 2 years ago

In the transition period, this is a useful setting, too:

Collect Universal Analytics events Screen Shot 2022-04-01 at 8 25 24 AM

Data Streams (under Property admin) > Click right arrow on the data stream > More Tattings Settings > Collect Universal Analytics events

chrisblakley commented 2 years ago

As of this moment (not yet committed), there are no more JavaScript instances of Universal Analytics. Everything in JS (and most PHP) has been updated to GA4.

The remaining steps include the PHP Measurement Protocol for some supplemental data and still need a massive amount of testing.

chrisblakley commented 2 years ago

At this point, Nebula is fully functioning in GA4 now including the Measurement Protocol for usage and server-side data. Need to do a ton of testing, and although that was a major lift, now the hard part begins of trying to find how to actually report on that data in the platform itself.

Why can't we just have default reports like before? I'd dare say that I would actually like GA4 if we could just get the default reports from the previous platform...

chrisblakley commented 2 years ago

Is there a way to annotate important dates in GA4? I don't see one...

chrisblakley commented 2 years ago

Closing this as GA4 has now been implemented in Nebula officially, but there is still a long, confusing road ahead on the reporting side. Seems like every day I'm finding new, frustrating limitations with GA4... Definitely stifling motivation.

I'm hoping the community continues to push hard for basic features. Even searching by Measurement ID doesn't work. It's such a shame that every other aspect of design and development are getting such cool new features, and in analytics it feels like features are only being taken away. GA4 could have been so good, too.

...and I say all this as a huge fan of Google Analytics.

If anyone from the Google Analytics team ever finds this, please reach out! I would love to have an earnest conversation about the platform!!

chrisblakley commented 2 years ago

Referral exclusion, session timeout, internal IP, and other settings are available here:

Screen Shot 2022-07-13 at 10 52 48 AM

This is inside of the Data Streams property section.

chrisblakley commented 2 years ago

To create destination page goals in GA4: Configure > Events

Create an event based on the page_view with the criteria that matches the desired destination (or any other details).

This is an example for a "Thank You" page:

Screen Shot 2022-07-18 at 9 15 26 AM