https://github.com/netreconlab/parse-server-any-analytics-adapter
Analytics adapter to connect Parse Server analytics to any 3rd party analytics tool
https://github.com/netreconlab/parse-server-any-analytics-adapter
analytics hacktoberfest metrics parse parse-server telemetry
Last synced: 2 months ago
JSON representation
Analytics adapter to connect Parse Server analytics to any 3rd party analytics tool
- Host: GitHub
- URL: https://github.com/netreconlab/parse-server-any-analytics-adapter
- Owner: netreconlab
- License: mit
- Created: 2022-01-28T17:51:09.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2025-11-25T22:35:56.000Z (4 months ago)
- Last Synced: 2025-11-29T03:15:45.596Z (4 months ago)
- Topics: analytics, hacktoberfest, metrics, parse, parse-server, telemetry
- Language: JavaScript
- Homepage:
- Size: 725 KB
- Stars: 9
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# parse-server-any-analytics-adapter
[](https://badge.fury.io/js/parse-server-any-analytics-adapter)
[](https://github.com/netreconlab/parse-server-any-analytics-adapter/actions/workflows/ci.yml)
[](https://github.com/netreconlab/parse-server-any-analytics-adapter/actions/workflows/release.yml)
[](https://codecov.io/gh/netreconlab/parse-server-any-analytics-adapter)
[](https://snyk.io/test/github/netreconlab/parse-server-any-analytics-adapter)
[](https://libraries.io/npm/parse-server-any-analytics-adapter)
[](https://www.npmjs.com/package/parse-server-any-analytics-adapter)
[](https://github.com/netreconlab/parse-server-any-analytics-adapter/#license)
This library allow a [Parse Server](https://github.com/parse-community/parse-server) to leverage the [Analytics](https://github.com/DavidWells/analytics) library to connect to any [3rd party analytics](https://getanalytics.io/plugins/) tool :chart:.
# Table of Contents
- [Installation](#installation)
- [Usage](#usage)
- [Server](#server)
- [Client](#client)
# Installation
This module is distributed via [npm](https://npmjs.com/package/analytics):
```bash
npm install parse-server-any-analytics-adapter --save
```
# Usage
## Server
```javascript
const { AnyAnalyticsAdapter } = require('parse-server-any-analytics-adapter');
const { init: googleAnalytics } = require('@analytics/google-analytics');
const { init: customerIo } = require('@analytics/customerio');
/* Initialize AnyAnalytics with with any and all 3rd party analytics of your choosing. */
const anyAnalytics = new AnyAnalyticsAdapter({
app: 'my-app-name', /* Name of site / app */
version: 100, /* Version of your app */
plugins: [ /* Array of analytics plugins */
googleAnalytics({
trackingId: 'UA-121991291',
}),
customerIo({
siteId: '123-xyz'
})
]
});
/* Initialize parse server */
const api = new ParseServer({
databaseURI: 'mongodb://localhost:27017/dev',
cloud: __dirname + '/cloud/main.js',
appId: 'myAppId',
masterKey: 'myKey',
...,
analyticsAdapter: anyAnalytics, /* Place your instance of AnyAnalytics here. */
...
});
/* Finish mounting your Parse Server */
...
```
## Client
You can use [REST](https://docs.parseplatform.org/rest/guide/#analytics) or any [Parse SDK](https://parseplatform.org/#sdks) that has the ability to send Parse Analytics such as the [Parse-Swift SDK](https://github.com/netreconlab/Parse-Swift/blob/main/ParseSwift.playground/Pages/16%20-%20Analytics.xcplaygroundpage/Contents.swift):
```swift
//: To track when the app has been opened, do the following.
ParseAnalytics.trackAppOpened { result in
switch result {
case .success:
print("Saved analytics for app opened.")
case .failure(let error):
print(error)
}
}
//: To track any event, do the following.
var friendEvent = ParseAnalytics(name: "openedFriendList")
friendEvent.track { result in
switch result {
case .success:
print("Saved analytics for custom event.")
case .failure(let error):
print(error)
}
}
//: You can also add dimensions to your analytics.
friendEvent.track(dimensions: ["more": "info"]) { result in
switch result {
case .success:
print("Saved analytics for custom event with dimensions.")
case .failure(let error):
print(error)
}
}
```