Use Google Sheets’ GoogleFinance function to display data in Geckoboard
Google Sheets has a built-in function called GOOGLEFINANCE which fetches current or historical securities information from Google Finance to a Google Sheet. This article details how this function can be used with our Spreadsheets integration to display market data on your Geckoboard dashboard.
This function doesn't update on its own by default so we've written a script that you can adapt to ensure your data is kept up to date. Our Google's stock price example show the basics of using this function and don't use this script. If you'd like your data to update automatically, you will need to create the script once the example is completed.
Syntax of the GoogleFinance Function
Here's the syntax of the GOOGLEFINANCE function:
=GOOGLEFINANCE(ticker, [attribute], [start_date], [num_days|end_date], [interval])
- ticker
- The ticker symbol for the security to consider.
- attribute
- (Optional -
"price"
by default ) - The attribute to fetch aboutticker
from Google Finance. - start_date
- (Optional) - The start date when fetching historical data.
- end_date|
num_days - (Optional) - The end date when fetching historical data, or the number of days from
start_date
for which to return data. - interval
- (Optional)- The frequency of returned data; either "DAILY" or "WEEKLY".
GoogleFinance function in action
Example: How to display Google's stock price on a dashboard
In this example, we'll use the GOOGLEFINANCE function and a Google Sheet Number Widget to display Google's current stock price on a dashboard.
- To fetch Google's current stock price into Google Sheets, open a new Google Sheet and type the following formula into cell
A2
:=GOOGLEFINANCE("GOOG", "price")
Essentially, what this formula is doing is querying Google Finance for GOOG current price (GOOG is the ticker symbol for Google Inc.). Something similar happens when you Google "Google stock price".
- Save your Google Sheet and give it a name.
- With Google's stock price information in a Google Sheet, switch to your Geckoboard dashboard.
- Click .
- Choose the Spreadsheets integration.
- Select the Google Sheets file that you just saved.
- Select the Number widget.
- Select the appropriate Sheet (Sheet1 in this example).
- Enter the value of GOOG price in the Number selection (in the above example, it's
A2
). - Disable the Comparison Visualization and adjust the title.
- Click
- And that's it! Your Geckoboard dashboard is now displaying the information found in Cell
A2
of the Google Sheet – Google's current stock price.
Updating Your Data Automatically
Unfortunately, the Google Sheets GOOGLEFINANCE function doesn't automatically update. This isn't particularly helpful so we've written a script that you can adapt to update the market data every minute, even when the Google Sheet is closed.
Please open a new Google Sheet to work through these next steps.
- Click on the Tools menu and select the option Script Editor.
- A Google Apps Script window will appear. Click the Blank Project option.
- Replace the default function with the following script:
Important note
Make sure you follow the aforementioned instructions to the letter, otherwise, cells in the Sheet might not match the ones in the script and your countdown will not update automatically
function getData() {
SpreadsheetApp.getActiveSheet().getRange('A2').setValue('=GOOGLEFINANCE("GOOG", "price")');
} - Save your function and give it a name.
- From inside the Script Editor, click on the Edit menu and select the option Current project's triggers.
- In the window that appears, click the link No triggers set up. Click here to add one now. This will create a trigger for your function
- Select the Hour timer and leave it as Every Hour.
- Click Save.
- You'll be prompted to authorize your app by clicking Continue and then Accept. More information on Google Apps authorization can be found here.
- You can now close the Script Editor.
You're done!
Now that you've written the script and set the trigger running, you'll be able to see the data on your Google Sheet refresh every hour. This will continue to refresh even when your Google Sheet is closed.
Your Geckoboard widgets don't require any changes to reflect the addition of this script and trigger; they will refresh every 15 minutes and pull new data from your Google Sheet whenever available.
Note
We've found that, a few times a week, a server error will occur on Google's end and the script will fail to run. By default, you'll receive an email to notify you that this has happened. Considering the script runs every hour of the day which totals 24 times, a few times a week is nothing to be concerned about.
Tip
If you're interested in finance and economic data, you might find Quandl very useful. This website has a wide range of public (and private) data from a variety of sources available as hosted CSV files i.e. https://www.quandl.com/api/v3/datasets/WIKI/GOOGL.csv which can be used in combination with our CSV integration.
Quotas for Google Services
When setting up your triggers, it's important to consider the Quotas and Limitations imposed by Google.
Example
if you have a paid G-suite account your total script (trigger) runtime can be up to 6 hours a day, however, if you have a free gmail.com account, the total script (trigger) runtime will be only up to 90 minutes per day. For more information, please visit Google's official documentation.