React hook for loading the [Google Analytics Embed API](https://ga-dev-tools.appspot.com/embed-api/).
Documentation
Read the official documentation.
Overview
The useAnalyticsApi
hook can be used to load and ready the Google Analytics Embed API in React.
What is the Google Analytics Embed API? It's is a JavaScript library that allows you to easily create and embed Google Analytics charts on a third-party website in a matter of minutes.
This library also provides a few helper hooks for common operations via the API:
Looking for components? A full React component library that wraps these hooks is now available! Check out React Analytics Charts.
Features include:
- 🚀 Easily load the Google Analytics Embed API
- Loading and readying the API is handled for you so you can just focus on the good stuff, like embedding charts.
- 📈 Drop in charts quickly and easily
- Embed Google Analytics charts on your site in minutes.
- 💁 From auth to charts, it's handled for you
- Side-effects are handled for common API operations. Need to handle the auth flow, render a view selector, or render charts? Got ya covered!
- 🧼 Minimized
window
dependence
- Google loads the API to
window
, but this hook pulls the API into a singleton to limit window
dependence.
- 🤝 Hooks stay synchronized
- When calling the API hook in multiple places, changes to readiness and auth will propate to all hooks, keeping them in sync.
- ✨ Live examples and rich documentation
- Develop easier with plenty of live examples, starting points, and rich docs.
- And more!
Installation
npm i @devboldly/react-use-analytics-api
Quick Start
To load the Google Analytics Embed API, use the useAnalyticsApi
hook:
import { useAnalyticsApi } from '@devboldly/react-use-analytics-api';
Then in your function component:
const { ready, gapi, authorized, error } = useAnalyticsApi();
When ready
is true
, the gapi
object will be set to the loaded and ready-to-use Google Analytics Embed API. The gapi
object will be undefined
until it is ready to use.
The authorized
property will be true
when the user is authorized, false
otherwise.
From here, you can authorize the user, render a view selector, and render charts... or do anything else you want with the API!
🏁 For a live example demonstrating all features of this library including full auth flow, see the useDataChart example. This is a great starting point for building your own charts dashboard.
TypeScript
Type definitions have been included for TypeScript support.
Contributing
Open source software is awesome and so are you. 😎
Feel free to submit a pull request for bugs or additions, and make sure to update tests as appropriate. Even the smallest changes help.
For major changes, open an issue first to discuss what you'd like to change.
⭐ Found It Helpful? Star It!
More stars means more development love. So if you found this project helpful, star it! 👉⭐