Nigerian Prince Meme

    @analytics/countly

    0.21.12 • Public • Published

    Countly plugin for analytics

    Integration with Countly for analytics

    This analytics plugin will load Countly library and allow to send tracking sessions, views, clicks, custom events, user data, etc.

    View the docs

    Installation

    npm install analytics
    npm install @analytics/countly
    Click to expand

    Installation

    npm install analytics
    npm install @analytics/amplitude

    How to use

    The @analytics/countly package works in the browser and server-side in Node.js. To use, install the package, include in your project and initialize the plugin with analytics.

    Below is an example of how to use the browser plugin.

    import Analytics from 'analytics'
    import countlyPlugin from '@analytics/countly'
    
    const analytics = Analytics({
      app: 'awesome-app',
      plugins: [
        countlyPlugin({
          app_key: 'YOUR_APP_KEY',
          server_url: 'https://YOUR_COUNTLY_SERVER_URL',
          remote_config: true,
          require_consent: true
        })
      ]
    })
    
    /* Track a page view */
    analytics.page()
    
    /* Track a custom event */
    analytics.track('cartCheckout', {
      item: 'pink socks',
      price: 20
    })
    
    /* Identify a visitor */
    analytics.identify('user-id-xyz', {
      firstName: 'bill',
      lastName: 'murray'
    })

    After initializing analytics with the countlyPlugin plugin, data will be sent into Countly whenever analytics.page, analytics.track, or analytics.identify are called.

    See additional implementation examples for more details on using in your project.

    Platforms Supported

    The @analytics/countly package works in the browser and server-side in Node.js

    Browser usage

    The Countly client side browser plugin works with these analytic api methods:

    Browser API

    import Analytics from 'analytics'
    import countlyPlugin from '@analytics/countly'
    
    const analytics = Analytics({
      app: 'awesome-app',
      plugins: [
        countlyPlugin({
          app_key: 'YOUR_APP_KEY',
          server_url: 'https://YOUR_COUNTLY_SERVER_URL',
          remote_config: true,
          require_consent: true
        })
      ]
    })

    Configuration options for browser

    Option description
    app_key
    required - string
    Your app key from Countly
    server_url
    required - string
    Url of the Countly server
    remote_config
    required - boolean
    Remote config enabler flag
    require_consent
    required - boolean
    Disable tracking until given consent (default: false)

    Server-side usage

    The Countly server-side node.js plugin works with these analytic api methods:

    Server-side API

    import Analytics from 'analytics'
    import countlyPlugin from '@analytics/countly'
    
    const analytics = Analytics({
      app: 'awesome-app',
      plugins: [
        countly({
          app_key: 'your_app_key',
          server_url: 'https://your_countly_server_url',
          debug: true
        })
      ]
    })

    Configuration options for server-side

    Option description
    app_key
    required - string
    Your app key from Countly
    server_url
    required - string
    Url of the Countly server
    debug
    required - boolean
    Set debug flag

    Additional examples

    Below are additional implementation examples.

    Server-side ES6
    import Analytics from 'analytics'
    import countlyPlugin from '@analytics/countly'
    
    const analytics = Analytics({
      app: 'awesome-app',
      plugins: [
        countly({
          app_key: 'your_app_key',
          server_url: 'https://your_countly_server_url',
          debug: true
        })
        // ...other plugins
      ]
    })
    
    /* Track a page view */
    analytics.page()
    
    /* Track a custom event */
    analytics.track('cartCheckout', {
      item: 'pink socks',
      price: 20
    })
    
    /* Identify a visitor */
    analytics.identify('user-id-xyz', {
      firstName: 'bill',
      lastName: 'murray'
    })
    Server-side Node.js with common JS

    If using node, you will want to import the .default

    const analyticsLib = require('analytics').default
    const countlyPlugin = require('@analytics/countly').default
    
    const analytics = analyticsLib({
      app: 'my-app-name',
      plugins: [
        countly({
          app_key: 'your_app_key',
          server_url: 'https://your_countly_server_url',
          debug: true
        })
      ]
    })
    
    /* Track a page view */
    analytics.page()
    
    /* Track a custom event */
    analytics.track('cartCheckout', {
      item: 'pink socks',
      price: 20
    })
    
    /* Identify a visitor */
    analytics.identify('user-id-xyz', {
      firstName: 'bill',
      lastName: 'murray'
    })
    Using in HTML

    Below is an example of importing via the unpkg CDN. Please note this will pull in the latest version of the package.

    <!DOCTYPE html>
    <html>
      <head>
        <title>Using @analytics/countly in HTML</title>
        <script src="https://unpkg.com/analytics/dist/analytics.min.js"></script>
        <script src="https://unpkg.com/@analytics/countly/dist/@analytics/countly.min.js"></script>
        <script type="text/javascript">
          /* Initialize analytics */
          var Analytics = _analytics.init({
            app: 'my-app-name',
            plugins: [
              analyticsCountly({
                app_key: 'YOUR_APP_KEY',
                server_url: 'https://YOUR_COUNTLY_SERVER_URL',
                remote_config: true,
                require_consent: true
              })
            ]
          })
    
          /* Track a page view */
          analytics.page()
    
          /* Track a custom event */
          analytics.track('cartCheckout', {
            item: 'pink socks',
            price: 20
          })
    
          /* Identify a visitor */
          analytics.identify('user-id-xyz', {
            firstName: 'bill',
            lastName: 'murray'
          })
        </script>
      </head>
      <body>
        ....
      </body>
    </html>
    Using in HTML via ES Modules

    Using @analytics/countly in ESM modules.

    <!DOCTYPE html>
    <html>
      <head>
        <title>Using @analytics/countly in HTML via ESModules</title>
        <script>
          // Polyfill process.
          // **Note**: Because `import`s are hoisted, we need a separate, prior <script> block.
          window.process = window.process || { env: { NODE_ENV: 'production' } }
        </script>
        <script type="module">
          import analytics from 'https://unpkg.com/analytics/lib/analytics.browser.es.js?module'
          import analyticsCountly from 'https://unpkg.com/@analytics/countly/lib/analytics-plugin-countly.browser.es.js?module'
          /* Initialize analytics */
          const Analytics = analytics({
            app: 'analytics-html-demo',
            debug: true,
            plugins: [
              analyticsCountly({
                app_key: 'YOUR_APP_KEY',
                server_url: 'https://YOUR_COUNTLY_SERVER_URL',
                remote_config: true,
                require_consent: true
              })
              // ... add any other third party analytics plugins
            ]
          })
    
          /* Track a page view */
          analytics.page()
    
          /* Track a custom event */
          analytics.track('cartCheckout', {
            item: 'pink socks',
            price: 20
          })
    
          /* Identify a visitor */
          analytics.identify('user-id-xyz', {
            firstName: 'bill',
            lastName: 'murray'
          })
        </script>
      </head>
      <body>
        ....
      </body>
    </html>

    Install

    npm i @analytics/countly

    DownloadsWeekly Downloads

    6

    Version

    0.21.12

    License

    MIT

    Unpacked Size

    32.9 kB

    Total Files

    10

    Last publish

    Collaborators

    • davidwells