web_tracking

package module
v0.0.0-...-f58fc37 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 19, 2024 License: MIT Imports: 15 Imported by: 0

README

Web Tracking

Build Status | codecov | Go Report Card | GoDoc

A simple web tracking that allows you to send the url parameter "tracking=true" in any route with the tracking parameters on the url parameters or the body and send to the tracking service.

Support for

Tracking github/joaosoft/tracking.

If i miss something or you have something interesting, please be part of this project. Let me know! My contact is at the end.

Dependecy Management

Dep

Project dependencies are managed using Dep. Read more about Dep.

  • Install dependencies: dep ensure
  • Update dependencies: dep ensure -update

Configuration

{
  "web-tracking": {
    "host": "localhost:8002",
    "tracking_host": "localhost:8001/api/v1/tracking/event"
  }
}

How it works

Tracking location by street

Method: POST Route: http://localhost:8002/api/v1/dummy?tracking=true&category=bananas Body:

{
	"tracking": {
		"action": "action",
		"label": "label",
		"value": 1,
		"viewer": "joao",
		"viewed": "jessica",
		"street": "rua particular de monsanto",
		"meta_data": {
			"teste_1": "teste",
			"teste_2": 1,
			"teste_3": 1.1
		}
	}
}

Tracking location by latitude, longitude

Method: POST Route: http://localhost:8002/api/v1/dummy?tracking=true&category=bananas Body:

{
	"tracking": {
		"category": "category",
		"action": "action",
		"label": "label",
		"value": 1,
		"viewer": "joao",
        "viewed": "jessica",
		"latitude": 41.1718238,
		"longitude": -8.6186277,
		"meta_data": {
			"teste_1": "teste",
			"teste_2": 1,
			"teste_3": 1.1
		}
	}
}
Go
go get github.com/joaosoft/web-tracking

Usage

This examples are available in the project at web-tracking/examples

func main() {
	m, err := web_tracking.NewWebTracking()
	if err != nil {
		panic(err)
	}

	if err := m.Start(); err != nil {
		panic(err)
	}
}

Known issues

Follow me at

Facebook: https://www.facebook.com/joaosoft

LinkedIn: https://www.linkedin.com/in/jo%C3%A3o-ribeiro-b2775438/

If you have something to add, please let me know joaosoft@gmail.com

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrorHandlingTracking = errors.New(errors.LevelError, int(web.StatusNotFound), "error handling tracking [error: %s]")
	ErrorTrackingStatus   = errors.New(errors.LevelError, 1, "error sending tracking [status: %d, error: %s]")
)

Functions

This section is empty.

Types

type AppConfig

type AppConfig struct {
	WebTracking *WebTrackingConfig `json:"web-tracking"`
}

AppConfig ...

func NewConfig

func NewConfig() (*AppConfig, manager.IConfig, error)

newConfig ...

type Controller

type Controller struct {
	// contains filtered or unexported fields
}

func NewController

func NewController(service *WebTracking) *Controller

func (*Controller) DummyHandler

func (c *Controller) DummyHandler(ctx *web.Context) error

func (*Controller) MiddlewareTracking

func (c *Controller) MiddlewareTracking() web.MiddlewareFunc

func (*Controller) RegisterRoutes

func (c *Controller) RegisterRoutes(w manager.IWeb) error

type TrackingRequest

type TrackingRequest struct {
	Tracking struct {
		Category  *string          `json:"category" validate:"notzero"`
		Action    *string          `json:"action" validate:"notzero"`
		Label     *string          `json:"label"`
		Value     *int64           `json:"value"`
		Viewer    *string          `json:"viewer"`
		Viewed    *string          `json:"viewed"`
		Latitude  *float64         `json:"latitude"`
		Longitude *float64         `json:"longitude"`
		Street    *string          `json:"street"`
		MetaData  *json.RawMessage `json:"meta_data"`
	} `json:"tracking"`
}

type WebTracking

type WebTracking struct {
	// contains filtered or unexported fields
}

func NewWebTracking

func NewWebTracking(options ...WebTrackingOption) (*WebTracking, error)

NewWebTracking ...

func (*WebTracking) Reconfigure

func (w *WebTracking) Reconfigure(options ...WebTrackingOption)

Reconfigure ...

func (*WebTracking) Start

func (t *WebTracking) Start() error

Start ...

func (*WebTracking) Stop

func (t *WebTracking) Stop() error

Stop ...

type WebTrackingConfig

type WebTrackingConfig struct {
	Host         string `json:"host"`
	TrackingHost string `json:"tracking_host"`
	Log          struct {
		Level string `json:"level"`
	} `json:"log"`
}

WebTrackingConfig ...

type WebTrackingOption

type WebTrackingOption func(w *WebTracking)

WebTrackingOption ...

func WithConfiguration

func WithConfiguration(config *WebTrackingConfig) WebTrackingOption

WithConfiguration ...

func WithLogLevel

func WithLogLevel(level logger.Level) WebTrackingOption

WithLogLevel ...

func WithLogger

func WithLogger(logger logger.ILogger) WebTrackingOption

WithLogger ...

func WithManager

func WithManager(mgr *manager.Manager) WebTrackingOption

WithManager ...

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL