Can i use Server sent events to update the information or data in my Admin Web Application based on the "events" that customers trigger - server-sent-events

I have web application that consists of two frontend applications (admin and the online store) but both are connected to one server that interacts the database.
My question is, can I update in Real-Time the data or information in the admin application (which has a dashboard and this dashboard contains graphs illustrations, sales or total sales, total users, total orders, etc.) but the update is based on the events that the customer triggers from the online store application? and Vice Versa?
For example, the customer has already completed an order. Now, on the admin dashboard, the total orders automatically updates in real-time without refreshing the page.
Is it possible to do this kind of messaging using SSE?
Big thank you to anyone who can answer.

Related

Cross-device tracking with Google Signals and user reporting in GA4

I'm a bit confused on how activating the use of Google Signals in GA4 affects the reporting and raw data. One thing that is obvious is that after activation the demographics data becomes available (gender, age, interests) inside GA. But what about cross-device users stitching?
On the net I saw a couple of articles which have mentioned that turning Google Signals on would affect the overall number of users in the reports (basically reduce it by identifying one user across several devices when it is possible). Does it mean that there will be cross-device users stitched under one Google Client IDs (cid)? Exploring the device overlap I could see a small segment of such users in user explorer who were registered from different devices and have same Client ID on both devices.
This also means that these joint cross-device users data would actually be exported to Google BigQuery, right? By data I mean that we would see this same cross-device user under one and same Client ID in Bigquery.
Bonus question:
How does Google Client ID is actually persisted from the previous device? Does GA4 Configuration Tag sends a dedicated request to Google server on first page load to check if there is user data (Client ID) available from other devices and assigns an old cid to this new visit if match is found in the database?
Or would we see a new cid in real time, but it would be replaced later with the cid from other device when Google renders and aggregates the data on the server side before pushing it into our GA4 account reports?
* we are not currently using any internal User ID of our own to track users across devices

Hierarchy of Google Analytics for Multiple Builds of Same App

I am setting up Google Analytics Accounts for a Product which have multiple builds as frontend for same user base.
So we have one Product called X and have:
Web Build
Mobile Web
Android App 1
iOS App 1
Android App 2
iOS App 2 6.
The main point is identical APIs and User base is used in all platforms and apps. So if we have a user John Doe he can login in any of the web or apps.
We want to extract following information from Google Analytics.
Under User ID feature want, sessions aggregations of that user around all build and apps, but identifiable. So I can know that user John login to web yesterday and used mobile app today.
Each user belong to a customer (company) in our system. So want to segregate all information based on companies.
I already have achieved point 2 by creating a custom dimension in Google Analytics and believe that's the best way to do it.
Now need suggestions from Gurus on how to acheive point 1 using Google Analytics.
Either use single account and single property for all builds and apps
If yes, then how to identify those apps and builds in sessions
If I use multiple properties/apps in GA account then how to aggregate user sessions among all?
Looking forward to hear how guys around hand or should have handled this scenario. Cheers!
This question is extremely broad, IMO any answer your going to get is going to be primarily opinion based. So here is my opinion and a little extra info to boot.
The first issue you are going to have is that there is a difference between Mobile google analytics accounts and web analytics accounts. The two do not mix. Mobile analytics accounts insert screen views with a screen name. While web accounts insert PageViews with a document location.
There is no way to analyze between two different Google analytics web properties. Unless you intend your android and ios apps to run as websites and send it like its a webpage its not going to work. You could potentially download the data into your own system or big query and analyze it there. Comparing your custom dimension to see what the users have done differently. I would wonder at the quality of the analysis you will get as there will be no real way for you to compare the data and match it up beyond using your custom dimensions user id and possibly date.
I am adding this because I am not sure what your saving in your custom dimension.
The second issue you are going to have is tracking. Google analytics TOS does not allow you to send any identifiable information to Google.
The Analytics terms of service, which all Analytics customers must adhere to, prohibits sending personally identifiable information (PII) to Analytics (such as names, social security numbers, email addresses, or any similar data), or data that permanently identifies a particular device (such as a mobile phone’s unique device identifier if such an identifier cannot be reset).
You could for example send your companies customer id for John as a user_id but user_id is an internal valuable used for internal processing this is not something you can extract out via the api.
The User ID enables the association of one or more sessions (and any
activity within those sessions) with a unique and persistent ID that
you send to Analytics.
To implement the User ID, you must be able to generate your own unique
IDs, consistently assign IDs to users, and include these IDs wherever
you send data to Analytics.
For example, you could send the unique IDs generated by your own
authentication system to Analytics as values for the User ID. Any
engagement, like link clicks and page or screen navigation, that
happen while a unique ID is assigned can be sent and connected in
Analytics via the User ID.
The best you could do would be to create a custom dimension and send that with every hit username=johnscustomerId. Which you appear to have already done. This is what I have done in the past and it works perfectly well.

How to share a part of the site in Google Analytics

we have events listing website and events from different organizers are grouped (by URL), like -
www.site.com/organizer/event1
www.site.com/organizer/event2
www.site.com/organizer/event3
etc. How to give an organizer an access only to his/her part of the site's Google Analytics?
Easy way -
An organizer registers in Google Analytics
An organizer creates a counter in Google Analytics
An organizer sets this counter in his/her profile on our website.
We add this counter to our Google Analytics code on www.site.com/organizer/* pages
He/she clicks on some link in the profile and sees the GA stat only for own events.
The way I want it:
He/she clicks on some link in the profile and sees the GA stat only for own events.
Is this possible with some API to separate statistics for www.site.com/organizer/* and share a private link to it with organizer?
After reading your comments in another answer (which is basically just a copy of the comment I left on your question). I have changed my recommendation left in comment, think you should use the Google Analytics API for this.
Since you want to give others access to your own data I suggest you use a service account. You will need to do this in a server sided programing language, say PHP or C#.
Every night run a job that will extract the data you want though the Core reporting API. Store it in the database then create a page that will then display only the data you want to the different people. You will only need to run your job once per day as the data for previous days will never change. Wait at least 24 hours to get the data as data hasn't completed processing for 24 hours.
I am not sure what language plan on using but these tutorials should get you started: Google Service Account with PHP or Google Analytics API Authentication with C#
I would create different profile views with filters to include only the subset of data for the subpages.
This way, you can add a specific user access rights to that specific profile only, so they can only view that profile when they log in.
Create an include only filter which filters on Request URI: /organizer/event1, /organizer/event2, /organizer/event3 etc.

Authorization and charging flow with Shopify

I am developing an addon for Shopify platform and using the Shopify NET library I have managed to authorize the user shop and gather some data.
Now I need to charge the usage of the Addon with a monthly fee (providing 7 days trial) but I cannot figure out the flow I must follow.
I guess that I have to call Recurring Application Charge API after the user authenticates (at the callback from the authorization URL) and if the user declines the charge then I have to log him out. Is that correct?
Do I have to care for providing 7 days trial by myself or the Shopify RACharge API with manage it by itself?
What do I have to do when the user cancel the subscription or freeze it?
Can anyone point me out a document that analyze the charging flow except the Shopify Billing API which is not that helpful after all?
First question, you're right. You either have to log out the user or you just let him authed without permission to see some views or all of them.
There's a propperty on Recurring Application which allows you to define the days of the trial: "Number of days that the customer is eligible for a free trial.", so Shopify handles this for you.
When user cancels a subscription or his store is put on "frozen" status, you should make sure he doesn't have access to your App functionalities, though if it's frozen, he won't even be able to log into his store.

Proper workflow for onboarding new customers via API (we're a PMD partner)

We're actively developing our PMD ads management tool. We have a number of customers who want to advertise but don't have a Facebook account of any kind. I have a two part question:
(1) Is their an API/programmatic way for us to create a proper user account for our client so the client can in turn log in to their fresh Facebook account and enter ads payment information? For example, I can imagine an open graph call like this:
createFBUserAccount(f_name:"Joe",l_name:"Smith",email:"joesmith#gmail.com",isbusiness:"false");
or for a person
createFBUserAccount(business_entity_name:"ACME Corp",email:"contact#acmecorp.com",isbusiness:"true");
(2) For users who don't want a Facebook account but still want to advertise on Facebook through us, what is the proper way to create their ads? Let's say this is a business interested in buying External Website ads (or Mobile App Install, or any number of other ad units).
we currently don't have a way to create Ad Accounts through API. The user will have to create an account directly through https://www.facebook.com/advertising.
We also have business accounts (doc: https://www.facebook.com/help/131976240210052)
We require either a user account or business account to advertise with us.
Hope this is helpful.

Resources