bug change recurring google calendar event visibility from private back to default - google-calendar-api

If I have a google calendar event with a resource invited, set its visibility to private for all events, save, and then set it back to "default". It results in the resource not reverting back to default. Furthermore, if I try to change the event in the resource's calendar to default, the change again is not propagated.
Another weird thing I've noticed is that if you then remove the resource, and re-add it, it comes back with the same visibility + status.
Same thing happens in the UI.
Seems like a bug on the back-end. Any ideas?

Related

Can We Use "Message" as an (custom) Event to Fire a Tag in Google Tag Manager?

I have an id being pushed to my data layer via dataLayer.push() and there is no event key at the moment.
I know the best practice is to use an event key like 'event': 'idPush' and then in Google Tag Manager UI, have a trigger that activates when the custom event idPush occurs.
Is there is a way that I can still get the trigger to activate upon seeing a generic 'Message'?
I can't be 100% sure because I haven't read the GTM source code and I couldn't find any articles that talk about this, but I'm reasonably certain that this can't be done.
I tried:
creating a Custom Event trigger with a regex match of .* which would match anything, including nothing.
matching undefined, because according to the preview pane, the _event variable is set to undefined for Message events.
Unfortunately neither of these worked, and preview mode just says No tags were evaluated for the Message. This leads me to think that GTM only checks to see if any triggers should fire when an event is pushed into the dataLayer.
No. Until there was an event, GTM does not know about the content of the message - the message is just the debugger telling you that something has been added to the global dataLayer variable (which exists in the global namespace of the browser, not the confined namespace of GTM). The even is what updates GTM's internal state to make it aware of changes and additions to the dataLayer.
Depending on your use case you might be able to use a trigger type that creates it's own event - e.g. setting a visibility trigger to an element that you know will be at the viewport after your message, which will then take the new values of the dataLayer into account. Or create a custom HTML tag with a setInterval functions that periodically pushes an event to the dataLayer.
While these solutions may work, I do not think they are actually good. Finding a solution to change your page code will almost certainly be less headache in the long run than using a workaround.

Google Tag Manger: can you create a custom trigger that fires when a cookie has been created?

While we were updating our website we ran into some tags that ended up breaking. A quick fix to could be just setting a cookie in the browser and updating our tag to fire when the cookie exists. Is there a custom tag configuration in google tag manager that could allow me to do this or do I need to figure out a different work around?
Not as such. For a trigger to be fired you need an event, that is, a dataLayer push that adds an object that contains the key "event" to the dataLayer array.
There are built-in events (such as page load, dom ready, page loaded, and click and submit when you enable the respective variables) and custom events, i.e. arbitrary values for the event key.
Only when an event is present GTM can read the cookie and update its internal variables with the cookie values.
For practical purposes, I think you can use a custom event trigger, tick the "use regex" checkbox and enter ".*" (the regex for "whatever"). Then, after you have created a first party cookie variable that reads your "update ready cookie", you specify a firing condition for that trigger with "update ready cookie does not equal undefined".
Than you basically have "whatever happens next after the cookie is set" trigger which then can fire your tags.
On the other hand, since you presumably use JavaScript to set your cookie, you could just as well dispense with the cookie altogether and push a custom event to the dataLayer that triggers the tags.

Customize history change trigger to skip hashchanges on same page in GTM

I have a website with Barba.js to use pushState API to load pages. So to track these virtual page loads in GTM I added a History Change trigger to fire analysis page view event. It works great.
But if I have on page anchors, e.g
About
This also fires the History Change event, and cause google analytics to record another page view which I don't want.
Is there a way to make a history change trigger that only fires on new pages e.g if /services changes to /about , and doesn't fire when URL changes from /about to /about/#about
Update :
I have now used 'History Source' variable equals to 'pushState' condition to filter history change events because the hash change events is showing 'popState' in the History Source in the Data Layer variables. I am not 100% confident that this is correct, but it seems to be working.

How do I find the 'default' visibility for a google Calender Item?

Looking at the calendar event documentation, one of the possible values for visibility is:
"default" - Uses the default visibility for events on the calendar. This is the default value.
I'd like to find out, if I see this value on an event, what visibility that event is. In other words, where do I find the default? Is it fixed, is it a property of the Calendar or the user or ..? I looked at all those I could think of but did not find any reference to visibility.
After searching some more, this might be the clue: it's user documentation, and it says (with much left out):
First, learn your calendar's privacy settings
Next, learn your event sharing options:
My calendar isn't shared with anyone
Your calendar isn't shared with anyone, so your events aren't either.
No matter which settings you choose for your event, the event will only be seen by you.
I've only shared my calendar with specific people
See only free/busy
Default: Events show as busy.
See all event details
Default: People you've shared your calendar with can see all event details.
Make changes to events OR Make changes to events and manage sharing
For the default, public, and private settings, people you've shared your calendar with can see and change any event details.
But now I'm stuck finding the calender's privacy settings.
Default visibility means that the visibility of the calendar applies to this specific event. If the calendar is publicly shared free-busy then the event will be displayed with no event details (just the time).
If the calendar is only shared read-only with your friend then this friend will see full details of the event while other people would not see anything.

Analytics User-ID view not tracking events

I've created a new view in Google Analytics with everything set up the same as a currently functioning one, only with the addition of User ID tracking turned ON. It's using the same property so the UA code has not changed.
I've copied over everything that I can think of from the current view to the new view. At first glance everything was working fine, page views were coming through via Real-Time correctly and matched up with the values seen in the current view.
For some reason though, the new view is not listing ANY actual events in Real-Time, however the events graph is being populated.
The current view IS tracking all the events correctly.
We use Tag Manager to handle all our events among other things, and using the debug mode, all events were also being triggered correctly. Finally, I've also used the GA Debugger chrome extension, which again is not showing any issues. The new User ID property is being passed through to analytics as I'd expect.
I've tried searching for any issues related to User ID views and tracking events, but came up blank, presumably because there is no inherent issue with this set up.
Any suggestions?
I found out that the reason that the events were not tracking is because the user id was not being sent along with every event.
I believed that once it was set on page load every analytics interaction after that would use that user id. This was not the case. In Tag manager I added a 'Field to set' property for all relevant tags like so;

Resources