Add custom events to website user's google calendar using calendar api - google-calendar-api

I envision a user visiting my mobile website (not an app), finding an important event with an associated date, being asked if they want to sync this date/event to their google calendar, saying yes, and my website depositing this event into their google calendar.
Their would be many events, and they would be based on user input, so it wouldn't work to just sync my calendar with theirs. I would have to insert a custom date/event into their calendar so they could track it.
Hopefully this makes sense. I haven't seen anything like this on the web but I'm sure it exists.
Thanks,
S

Take a look at the Google Calendar Event Publisher Guide. It sounds like it will meet your needs.

Related

How can I track button clicks on a site that can't use Google Analytics?

I will start by saying that I have fair experience in HTML, but please keep the technical terms to a bare minimum. Pretend you're explaining it to a child. :-)
I used Wix.com to make my site (Wix is a place to easily design websites and has little HTML capabilities, since it's all based on being able to easily design a site with no HTML knowledge). You can add a Google Analytics tracking code, so i can see the number of clicks on the site, but that's about all. Apparently you can't change the code to be able to see button clicks on the site etc. (or maybe you can?...)
This is what I need above anything else:
On the site are a few "sign up now" buttons. When someone clicks it, they go to a signup page on an external site. I need to be able to track who clicks these buttons and when.
Ideally it's all tracked within google but apparently it doesn't work on wix.
Priorities:
Somehow it works with Google Analytics on Wix. It would have to be if somehow I can track it with Analytics without putting a code on the site itself. Don't know if or how that would work.
If not Google, is there a simple 3rd party Analytics site that could track the number of clicks on these buttons to external pages? It would be best if I can get the IP addresses of the clickers as well.
this is fairly easy, try customerlabs.co/google-analytics-event-tracking which can directly help you to send data about the users when they click event tracking.
eg:
Wix supports 3 types of goal tracking for your site: Destination, Duration and Pages/Screens per session. Currently, Wix doesn't support an Event tracking goal.

Google Analytics not generating data

I'm new to Google Analytics. Yesterday, I created an account and I pointed it to our website. I've added the JavaScript codes that Google Analytics generated for us. I put the code on all of our .html files.
I've been hitting our website from outside and so does my officemates since last night and also today. However, when I visited https://www.google.com/analytics under Reporting, everything was showing 0. I don't see any single spike at all.
I would recommend navigating to the Reporting -> Realtime -> Overview tab within your Google Analytics (GA) account. This is an almost realtime view into users on your site. In a separate tab access your site and refresh the page, this page view event should then be visible in the GA Realtime view.
If you can see your page view then its likely that you've inserted the correct GA script into your page and that you've used the correct GA property id. If you cant see your own page view then you will know that your script is incorrectly inserted or your GA property id is incorrect.
Last bit of advice: GA often has a 24-48 delay before you are able to use its full suite of insight tools (such as GA Goals). If you're expecting to see Goals populate immediately you're gonna have a bad time.
Last-last bit of advice: make sure that you select the current date from the date range picker in the top right of the GA Reporting view. It defaults to yesterday.

How to use analytics screenviews in a website?

I'd like to track screenviews in my website, is this possible or are screenviews just meant to be used on apps? If so, how can I do it? Let me give you an overview of my situation.
I am restructuring a web site. Some of the pages that used to live under differents urls are now living under the same, with a hash id to denote the particular area of the page the user is in. So, for example, http://www.example.com/topics/topicA, http://www.example.com/problems/topicA and http://www.example.com/equations/topicA, are now in http://www.example.com/topics/topicA#content, http://www.example.com/topics/topicA#problems and http://www.example.com/topics/topicA#equations.
Now, I'd like to keep track of users visiting these areas. My initial idea was send a page view when the url is loaded and send a screenview each time the user clicks on the button to change the area of the page (i.e. #content, #problemas or #equations). For doing so, I used something like ga('send', 'screenview', {'screenName': 'content',});. As I couldn't see the screenviews in reports, I played a bit, setting the app name, the app id, the installer id etc before sending the screenview, for example:
ga('set', {
'appName': 'myAppName',
'appId': 'myAppId',
'appVersion': '1.0',
'appInstallerId': 'myInstallerId'
});
ga('send', 'screenview', {'screenName': 'content',});
So I can't see the screenviews in the real time reports (though I can see the page views). I can't see them in the regular reports either. I decided to create custom reports with dimensions Page and Screen name. There, I see sometimes screenviews are tracked (I think it happens when I set the appid etc before sending it, but not sure about this point).
Are screen views adecuate for tracking this behaviour or should I use just events, as I'm not on an app at all (just a responsive website)?
By the way, I am using Drupal 7 but that shouldn't make a difference.
Thanks in advance for your time and I hope I am making my question clear enhough.
Technically speaking its probably possible to send both pageviews and screenviews to the same Google Analytics web property.
The problem you will have is seeing the information. The way the Website is set up its either application or web account, Screenviews or pageviews. The reports are different, and you cant swap between them.
So you could send screenviews to a web site web property but you would never be able to analyse it on the website you would have to use the API to rip the data out. That and you would be analyzing apples and cars. Screenviews and pageviews are different they cant be analysed together.
Because of this web property's should be kept separate one for application (screenviews) one for web sites (pageviwes).
You should in my opinion do this using events.
+1 for an interesting question that made me think :)
Is possible, actually in BigQuery you can reach both data and see how this interact, both will have the same schema and will be stored in the same dataset(it is linked the raw data view). Even in the same sessions, you can send pageview and screen views having funny results.
But there is some important consideration when you implement this.
You need 2 different views, one Web View and One App View. Both views will let you access to different information and is not possible on the web interface of Google Analytics to access to both info at the same time. Not sure if with the API you can access to both info at the same time, I think that is totally possible
In the App View, you will able to see only information of screenview, events and ecommerce.Is also mandatory the App Name parameter on this hits.
In the Web View, you will able to see only the pageview reports,events and events.
The ecommerce info and events will be reachable from both views, there is no way to know if this comes from a web or an app ( technically). So is tricky to read this kind of reports in that case.
Sessions can experiment stranges behaviors. As example gosht sessions coming from the screen view with no page view, sending events.
Taking this into consideration, as Dalmto says, the best to you is use events or sent virtualpage view.
Mixing pageview and screen view is not recommended by Google but is totally possible.This kind of implementations is only useful when you have an embed web-app and a webpage on the same server and you want to have it all on the same dataset, if this case apply, is highly recommended to add a custom dimension to filter the app info on the web view and the web info on the app view and keep both worlds separated.
As the last point, your code is working, I can see the screen info on the desktop property. But not be able to see it in the web view.

Shared Google calendar: how to find who updated event?

My team is using google shared calendar. Sometimes members blow away some events, I would like to see if there is a way to find out 'last updated by' and 'who updated specific event'
I could not find setting in Google calendar.
Thanks
There is no way to do this. However, rather than giving users editor rights to the calendar, you could simply give them read or freebusy access to the calendar and configure the calendar to auto-accept the events. Then when users need to create events on the shared calendar, they'd invite the calendar rather than creating the event directly on it. This gives each user access to modify only the events they own on the calendar.

Is there anything wrong with the way I'm implementing a Calendar on my site?

I am setting up a website for students of a school, which must include a schedule page which will show a calendar with events populated by feeds from various teachers' calendars. After trying out a variety of scripts and tools made for showing calendars, I finally hit upon a very shoddy, hacked-together way of doing it, and I want to know if theres any specific things wrong with my implementation.
My requirements from this calendar are posted in a previous question
This is how my implementation is gonna work:
The teachers make their schedules in their own calendar programs and make those feeds available in the iCal format. A common Google account for the school subcribes to all these calendars, and so gets read only access to ALL the teacher's schedules in school.
Google Calendar has a feature that lets you select some of your calendars, and then get the html code for an iframe to embed on your website, so that visitors to the site can see what events are coming up. When I experimented around with the options in the Google 'Configurator', I found that by simply including certain codes in the url called for the iframe contents, you could change which calendars were visible. These codes, or calendar ids, are clearly displayed in the settings for each calendar. Thus, my final solution is thus:
For every student, there is a record stating which courses he has taken, and hence which calendars he should be shown. With some SQL magic, I can retrieve the calendar ids from a pre-prepared database of all the calendar ids, and then generate the correct url for the iframe using php, and display it.
I hope that wasn't too convoluted to understand. Now can anyone tell me if there are any inherent security flaws or bad programming practices etc in this. Something about the whole idea of dynamically generating urls, using iframes, using a common google account etc just screams 'Mistake!'. Can someone tell me if this is an ok way to go about it, or is there some problem with it?
Actually, I think your solution has the potential to be very secure. Using a single google account to collect the read-only calendars into one place is just an organizational shortcut. As long as the calendars themselves are read-only, your single account contains nothing that isn't already public.
Generating URLs is perfectly reasonable, as long as you are combining strings that you've sanitized beforehand. Since your database can only get calendar IDs from your aggregation google account, you know that potentially malicious users can't cause arbitrary characters to end up in your synthesized URLs.
The biggest problem you'll probably run into is that the google embedded calendar iframe only allows up to ten calendar feeds.
The most likely security vulnerability you'll face is the security of all of the teachers' google calendars.
By default, google calendars accept "invitations" and post them as events. You might find that anyone can "invite" a teacher's calendar to prank events and those prank events will then show up on student calendars.

Resources