Google analytics dynamic MTD, YTD, last month "start-date" value - google-analytics

I'm trying to access my google analytics app data in Klipfolio through the google analytics query API.
I would like create data sources to dynamically pull MTD, YTD, and last months data.
So far, I've only been able to use today, yesterday, NdaysAgo, and YYYY-MM-DD format for the "start-date" attribute.
Is there a value I can use for "start-date" that will dynamically pull the MTD, YTD, or last months data.
Thanks

For MTD:
start-date={date.startOfMonth}
end-date={date.today}
For YTD:
start-date={date.startOfYear}
end-date={date.today}
For last month:
start-date={date.addMonths(-1).startOfMonth}
end-date={date.addMonths(-1).endOfMonth}

Related

GTM Google Tag Manager How To Track Date Picker Values

How to enable Google Tag Manager to track the dates selected on the date picker?
Currently, with Form Text, I am able to capture the day selected such as '21' or '30'.
But I want GTM to capture the entire date such as '3/21/19' or '3/30/19'.
How to do that?
Thank you.
Since you can capture the date, month and year individually, you can just reference then together in GTM.
Example if you have variable names "myDate", "myMonth" & "myYear":
You can just combine them together by referencing them by "{{myDate}}/{{myMonth}}/{{myYear}}"
Use without quotes. Place it in any field in GTM tags (either custom dimension or event, etc)

In Google Analytics - how do I link directly to today's statistics?

In Google Analytics, I am trying to create a link that navigates directly to today's statistics.
When choosing today's date from the menu, it populates the URL with the date range selected, as follows:
.../_u.date00=20190130&_u.date01=20190130/
Is it possible to create a dynamic populates today's date? Such as:
.../_u.date00=today()&_u.date01=today()/
In an unsupported way, you could set your dates to something in the future:
.../_u.date00=21190130&_u.date01=21190130/

How do I create a "Users by time of day" heatmap in Google Data Studio?

I want to create a heatmap in Google Datastudio similar to the "Users by time of day" heatmap in Google Analytics.
This is how it looks in Google Analytics.
THE FIRST PROBLEM is that when I have my columns as the days of the week, it sorts on ascending/descending value alphabetically, NOT Sunday, Monday, Tuesday, etc.
THE SECOND PROBLEM is that I can't actually get the heatmap coloring.
THE THIRD (not a problem, but a preference)...is there a way to group every 2 hours like Google Analytics does?
I am creating this using the PIVOT TABLE chart. Should I be using a different chart? Any other ideas?
You can get something pretty close by doing this. Add a Pivot table, and modify the following settings.
Row Dimension - Hour
Column Dimension - Day of week
Metric - Users
Sort Row 1 - Hour - Ascending
Sort Column 1 - Day of Week Ascending
Then under the Style tab
Metric - change from Number to Heatmap
For the 2h interval I solved it by going in to the data source editor, click count on hour then it creates a copy that takes a formula, so i entered the formula
CASE
WHEN HOUR IN ("00","01") THEN "00-02"
...
...
...
WHEN HOUR IN ("22","23") THEN "22-00"
ELSE "Other"
END
I've recently written a tutorial on how to create this report in Data Studio.
As a summary, you need to use a "Pivot table with heatmap". Use Hour of Day as your Row Dimension, and a calculated field for Day of the Week as your Column Dimension. The code for the calculated field is in my post and it essentially adds a number before the name of the day so you can sort them alphabetically. Then, add your Metric: Sessions.
There is also a link to the dashboard that I made publicly available for anyone to copy and apply their own data.
The link to the post with step-by-step tutorial and access to dashboard template is: businessahead.co.uk/users-by-time-of-day-google-analytics

Create multi-date google calendar event through URL

I'm trying to build an URL which will direct the user to their Google Calendar and will show the create event page with predefined values. I've managed to build the URL that will create an event only for a particular day. My problem is how can i add multiple dates in the same URL?
My generated URL is as follow:
https://www.google.com/calendar/render?action=TEMPLATE&text=New+Dynamic+Event&dates=20141204T073000Z/20141204T100000Z&details=Calendar+Details&location=My+Event+Location&followup=https://www.google.com/calendar&scc=1&sf=true&output=xml
This will create an event on 2014/12/04. How can i add more dates to this URL so that the event will be created on multiple days?
You cannot create multi date event in google calendar but you can insert the same event on different dates. Also, you can try using recurring events. However these type of events has patterns like weekly,monthly..
If you just provide the day date parts like
&dates=20170127/20170129
then this will raise the form with dates 2017-01-27 until 2017-01-28, and the 'all-day' box checked.
One day must be added to the date range.

AppInventor: how to insert DateTime into Google Spreadsheet and show only recent DateTime

I am new to this forum so I hope I asking my question in the right place.
I have a problem inserting a datetime into a Google Spreadsheet from a form created in Appinventor2;
In app inventor2 I created a form that fills in a google spreadsheet. Basically I merged the Pizza Party example (http://appinventor.mit.edu/explore/ai2/pizzaparty.html) with this example http://puravidaapps.com/spreadsheet.php to use google spreadsheet instead of fusion table.
the user selects in how many minutes he wants his order and then sees all the orders in a table sorted by delivery time.
Problem A)
Firstly, i want to save the current datetime + the desired delay into the google spreadsheet and sort the table by this new datetime.
1) when i use the block "call clock format time" + "call clock addminutes" the spreadsheet is populated with a text, but then i can't sort the table by delivery datetime. in fact i believe the sorting is done on the number regardless of the am/pm or day of the month. so for example instead of having 4am, 6am, 2pm, 3pm i get : 2pm, 3pm, 4am, 6am.
2) I then tried to remove the block "call clock format time" and in the google form i kept the field format = text
but the google spreadsheet is populated with the following:
java.util.GregorianCalendar[time=1395531335908,areFieldsSet=true,lenient=true,zone=Europe/Dublin,firstDayOfWeek=2,minimalDaysInFirstWeek=4,ERA=1,YEAR=2014,MONTH=2,WEEK_OF_YEAR=12,WEEK_OF_MONTH=4,DAY_OF_MONTH=22,DAY_OF_YEAR=81,DAY_OF_WEEK=7,DAY_OF_WEEK_IN_MONTH=4,AM_PM=1,HOUR=11,HOUR_OF_DAY=23,MINUTE=35,SECOND=35,MILLISECOND=908,ZONE_OFFSET=0,DST_OFFSET=0]
3) I then tried to remove the block "call clock format time" and in the google form I changed the field format = time
but then the google spreadsheet isn't populated with anything.
4)I tried using the segment block, but after a while I realised the block "format time" actually returns this format: "hh:mm:ss AM/PM"
so selecting the 5 characters is not good enough because it does not take into account of the am/pm element as well as the day of the month.
5) I found a temp solution by defining the desired delivery time as a new global variable, and extracting a string in the format hh:mm by joining the blocks ".hour instant" and ".minute instant".
However this is not a final solution because what i extracted is of course a string of text and when sorting, 01:10 will be always considered smaller than 23:50 for example, regardless of the date.
So is there a way of actually saving in the google spreadsheet not a string of text, but actually the date and time?
Problem B)
Secondly, I would like to filter/show only the rows of the google spreadsheet have a delivery time expired by no more than 1 hour (as well as orders with delivery time in the future e.g. in 2 hours from now()).
I tried using some Google Visualization API Query Language commands, altering the url of the google spreadsheet (like WHERE "now() - Delivery Time < 60 mins)" (cannot remember the exact code I wrote) but unsucessfully.
Would anyone know how to filter my results?
thanks in advance
alterettore
So there's a few things to note.
If you're using Taifun's example as you mention, you'll notice that when you submit data to Google Spreadsheets using a form, the first column is always a timestamp, even if you're not submitting a date or time. Trying to send the current date/time is redundant - go ahead and make use of what Google provided.
Google Spreadsheets (and Excel) store Date/Time as a number. If you want to store a date in GS, the best way to do so is not formatted text, but by sending a number. Use AppInventor to calculate the number you need. For example, today (April 27) in GS is 41756. Noon today would be 41756.5
To generate this number, start with AI's Millisecond function. NOTE: Both GS and AI use milliseconds, but they have different 0 points, so you have to manipulate the result a bit. The formula I've used in AI in the past is this:
GS Date/Time = (Clock1.GetMillis(Clock1.Now) / 86400000) + 25569
Hope this helps!

Resources