Real Time - Event Tracking with Google Analytics API? - api

I searched around this site to try to find a similar answer, but I had no luck.
What I'm trying to do is set up an image, ad, or button and tag in it with event listeners, so that I can track events. I've managed to do this, but what I really need is something that will let me gather the interaction data of each individual, provide a unique id for each individual, and gather real-time event interaction information, so that I can record and possibly act on different events based on user interaction.
I was looking into google analytics for this because I can see the real-time events, but I don't know if it is possible to call these events in the way I explained. Ideally there would be an api call I could make with a populated unique id to pull in the event interaction information in real time.
Any help or direction would be greatly appreciated.
Thanks!

You'd have to put client id into a custom variable/dimension and you could then segment based on a unique id, not in real-time however. I was then going to say, have you looked at Google Analytics Real-time reporting API, but then I was looking at the Dimensions & Metics and noticed that you can't pull in custom dimensions nor events.
Does it have to be real-time? The reason I ask is that it's possible to do this using the Core Reporting API, or the UI itself.

Related

How to write Spotify API in processing?

For my project in college I have decided to make an interactive map where, when the user hovers over a country the title of the top song in that country is displayed. I wanted to get that title from Spotify charts.
I have read every single page of the Spotify API guide and I am still confused as to how should I write the query in processing. I have the authorisation code and the OAuth token, but I'm not sure how should I include it in the actual sketch.
I really need all the help I can get, I am very new to this and I will appreciate every bit of advice.
Use a Spotify API Java Wrapper such as this one to handle API requests to Spotify.
Wrappers are external libraries that simplify API interfacing by providing functions that you can call from your code to make API requests. See this webpage for information about including external libraries in Processing sketches if you haven't done this before.
The most-played track per country isn't likely to change during operation of your program so requesting (it seems you've identified the correct API endpoint for this) the top track for each country just once is sufficient. This process could be done in setup(), for example, since it runs once only.
Then it's a matter of storing the data from these requests in some sort of data structure to allow your program to retrieve the most played track of the country that is being hovered over. A HashMap of country name to top track is appropriate, but there are many viable approaches.

Using Google Calendar Web API to dynamically create events on (company) calendar?

I've reviewed the Google Calendar API docs and having trouble finding information on creating events on a predefined calendar.
The Browser Quickstart docs worked just great to get up and running by authenticating use of my calendar. However, do you have advice on how to allow users to create events on a predefined calendar?
Use case:
We have a couple web forms for users (leads) to complete. When certain criteria have been met, we'd like to pass details from the web form to a Google Calendar event on our company calendar.
User completes web form which includes a handful of questions, namely two date/time pickers
On form submission, deliver form values to Google Calendar API - create event dynamically using information submitted in the form
Standard calendar functionality happens; notifications, etc. generated from Google Calendar
More clarification:
Users don't need view access to the calendar
The calendar integration is irrelevant to users, they're just submitting a contact form
It appears the only required event fields are start and end time so that's easy enough to grab from a date picker I'm just lost on how to engineer the connection to our company calendar named e.g. "User Created Events".
I know this can be done with Zapier. I'd like to learn the correct way though.
Based from Calendar API Sharing and Attendees:
There are two different ways to share calendar and event data with
others.
Firstly, you can share an entire calendar, with a specified level of
access. For example, you can create a team calendar, and then do
things like:
Grant all members of your team the right to add and modify events in the calendar
Grant your boss the right to see the events on your calendar
Grant your customers the right to only see when you are free or busy, but not the details of the events
You can also adjust the access to individual events on the shared
calendar.
You can share with somebody a specific created event on a calendar using google api by going through ACL - access control list.
I use Zapier for my organization to complete the exact same scenario. Ideally the webform service you use has a built in integration with Zapier, otherwise there will be some coding involved to have this work.
Assuming your webform service has an integration with Zapier:
Trigger Event: There is likely a trigger scenario along the lines of "execute zap on submission of new record". Upon this trigger activating, depending on how your webform service sends data, you will likely receive a list of values corresponding to the data entered.
Optional Action: Depending on the consistency of the data being entered through the webform you may want to also consider adding a step using the Zapier code module. The code module allows you to take the data gathered during the trigger event and manipulate it as you see fit (I personally use this step to check that data was entered correctly). That said it is an advanced step and does require some coding experience in either javascript or python. See the Python documentation here and the Java documentation here.
Google Calendar Action: If you haven't already you will be required to authorize Zapier's access to read and write to your calendar. Zapier makes this pretty straight forward. Click the "connect account" button and a dialog window will appear asking you to log into your gmail account. After you have connected your account you can then setup your template. Using the drop downs within the template you can select what data you would like to be entered into each field. Assuming everything went correctly then you should see the information added to your calendar.
See the documentation here for further explanation.
Assuming your webform service does not have an integration with Zapier:
This is a bit trickier and will be dependent on the whether or not your webform service allows you to make POST requests based on the entering of new forms. This will as well require a good deal more programming to get up and running. Not knowing the platform you are using to capture user input forces me to make a lot of assumptions.
So assuming your webform platform has the ability to make POST requests with the data from a newly entered record, or allows you to program it to do so, you could use Zapier's webhook module as a trigger. See Zapier's webhook documentation here.
For this to work you would have to start by creating a webhook endpoint through Zapier. The endpoint is just a url that is waiting to receive data sent to it from an outside source, in this case your webform platform.
The zap template would look as follows:
Trigger Event: POST request data caught by Zapier webhook endpoint. Once the data is captured it can be used in the same way you would with a standard zap. That is to say that the data, in the form of key/value pairs, will now be populated in Zapier's drop down list you use to move information from one step to the next.
Optional Action: Once again you can leverage Zapier's code module to apply logic to the captured data.
Google Calendar Action: Same as the "Google Calendar Action" listed above.
Edit:
In re-reading your question I realize that you are looking to achieve this without using zapier. I will leave this answer up for the time being, as perhaps it will have some value to you. If not I can remove it.

Advertising Platform

I'm 100% sure that this isn't the right form to post a question like this, but I hope someone on here has the answer to my question.
Is there advertising platform that sends a true or false response dependent on if the user finishes the ad video to the server so I can add points to the users account.
(I don't need help adding points, or creating a point system, just an advertising platform that would be easy to integrate with the videos on my site)
I understand if this isn't the right forum for this, if someone could point me in the right direction. Before you say anything, yes I have googled, just can't find anything that suits my needs.
You need a video player that supports the VAST protocol
VAST provides a common protocol that enables ad servers to use a
single ad response format across multiple publishers/video players
This format allows to specify the so-called tracking elements - URIs that would be called once a particular events occurs. You can manually provide a VAST xml response with a tracking element for a video completion event.
Also consider using DFP to serve your video ads - it's free up until a certain traffic volume and would track everything you might need

Looking for a way to subscribe to events within my Shopify store

I work with some third party referral systems and I've been looking for a way to trigger some JS off of events like Add To Cart, Add Coupon to Order, and Checkout. I'd like to be able to do this without having to use the id of the button in question as these can change from theme to theme, and become complicated when you're dealing with multiple buttons for the same functionality.
It seems like the built in Google Analytics and Facebook Tracking are using some sort of event system to trigger their data collection, but I can't seem to find anything in the docs or forums explaining how this works or how I can use it without using their services. Ideally I'm looking for some kind of liquid if/then sort of structure or alternatively just a clear event of some kind that I can listen for.
Obviously I could use jquery to accomplish this by listening for different button clicks but that seems like a really brittle way of handling something that is clearly part of the core of how Shopify works.
Any thoughts or suggestions would be really appreciated (At this point I'll name my first born rumplestiltskin)
(Repost from here https://ecommerce.shopify.com/users/554977/posts)
You can subscribe to webhook events through the API:
https://help.shopify.com/api/reference/webhook
There are topics for carts/create and checkouts/create which you might find useful. For coupon codes, you can subscribe to orders/create webhooks and parse the order data to see if it contains a coupon code.
Do what everyone does, including GA and other trackers. Build an App that installs in shops, and that App uses the API to inject JS that triggers onload. You can then program the JS to callback your mothership with the data you are interested in.
Note that your approach of asking for a trigger is far too vague to ever work. Why re-invent the wheel or beat a dead horse. Free up your valuable time and just go with the flow.
https://help.shopify.com/api/reference/scripttag

Why can't I delete native events with Cronofy.com?

I am using Cronofy to integrate my application (only locally tested yet) with multiple calendar platforms.
I am having trouble getting it to update or delete events which are created natively (google or outlook) and I cannot understand why. The documentation (https://www.cronofy.com/developers/api/) is not sufficing to understand it and there's not much more out there besides that.
When I send a request for deletion of a native event I do get a 202 HTTP response back but the event remains in my google/outlook calendar and if I do the same for my own event it deletes there smoothly with the same 202.
How can I make it work? I've read about auth flow and that 202 means it is processing but this processingtime seems to be taking too long for it to be that (~2days)
As standard, we sandbox calendar access and don't allow developers to edit existing events in end-users calendars.
There is a process you can go through to request extended permissions on one or more of a user's calendars if you need this functionality. Let me know via the support#cronofy.com if you would like access to this.
We differentiate between 'managed' and 'unmanaged' events in our API to help streamline the kinds of operations different use cases require.
Managed events are events that are created by your application. When they are created we require an event_id which is your id for the event in your application. You have complete control over events with an event_id. In order to delete a managed event you would pass the event_id as the identifying parameter https://www.cronofy.com/developers/api/#delete-event
Unmanaged events are events created by the user in their calendar. These have an event_uid which is used to identify the event. If you have sufficient permission to delete unmanaged events then you would pass this event_uid as the identifying parameter.
The reason we're returning a 202 is that our API is asynchronous. Every API request is a journal operation which is executed by a worker. We don't inline calls to downstream APIs. Instead we protect your application performance from having to deal with whether a calendar server is available and responsive to meet your request.
I hope this helps explain what you're seeing. Any questions, let me know either hear or at support#cronofy.com.
Adam