Yes, "WebSDK" is not to be confused with using Adobe Launch (err... Adobe Data Collection).
AppMeasurement.js is the client side, "old school" way of tracking, Alloy.js / WebSDK is the server side tracking that relies on the XDM Stream. Both solutions can be controlled via Adobe's tag manager (Launch), or in GTM, or even deployed directly into the site code.
However, now that I know you are not using Launch, the "conditions" that I mentioned wouldn't work, but you should be able to do something similar with GTM (adding constraints onto the Page Views trigger), if you really want to stop tracking calls made via bots... the principal is essentially the same, add conditions to your rules rather than trying to abort the call at the end...
I would still think that the onBeforeEventSend would be in both page view and action calls though... I wonder if you could add some sort of traceability (like adding console.logs inside the onBeforeEventSend function (to catch when that triggers), then again inside the navigator logic to catch when "Googlebot" is identified...
Something like:
onBeforeEventSend: function() {
console.log("!!!!!!!!!!!!!! onBeforeEventSend triggered");
console.log("!!!!!!!!!!!!!! " + navigator.userAgent);
if (navigator && navigator.userAgent && navigator.userAgent.includes("Googlebot")) {
console.log("!!!!!!!!!!!!!! Googlebot identified");
return false;
}
}
You can pretend to be Googlebot through the use of some "User Agent Switcher" add-ons for your browser... you can then test this and see what is happening.
If this looks like it might be working locally, then you might want to consider setting up some new dimensions to track the userAgent and other information that might help you track down what calls are not being caught by this logic.
Good luck!