mirror of
https://github.com/foomo/sesamy-cli.git
synced 2025-10-16 12:35:36 +00:00
commit
f742f71a0b
32
README.md
32
README.md
@ -88,6 +88,15 @@ googleTagManager:
|
||||
containerId: '175348980'
|
||||
# The workspace id that should be used by the api
|
||||
workspaceId: '10'
|
||||
# Server container variables
|
||||
serverContainerVariables:
|
||||
eventData:
|
||||
- link_url
|
||||
lookupTables:
|
||||
link_url_conversion_label:
|
||||
input: '{{event.link_url}}'
|
||||
valueTable:
|
||||
123456: 'https://foomo.org/'
|
||||
|
||||
# --- Google Tag settings
|
||||
googleTag:
|
||||
@ -263,6 +272,29 @@ umami:
|
||||
types:
|
||||
- PageView
|
||||
- SelectItem
|
||||
# --- Criteo
|
||||
criteo:
|
||||
# Enable provider
|
||||
enabled: true
|
||||
# Criteo caller id
|
||||
callerId: 123
|
||||
# Criteo partner id
|
||||
partnerId: 123456
|
||||
# Criteo applicaiton id
|
||||
applicationId: com.foomo
|
||||
# Google Tag Manager server container settings
|
||||
serverContainer:
|
||||
# Contemplate package config for generated events
|
||||
packages:
|
||||
- path: github.com/foomo/sesamy-go/pkg/event
|
||||
types:
|
||||
- AddToCart
|
||||
- BeginCheckout
|
||||
- PageView
|
||||
- Purchase
|
||||
- ViewItem
|
||||
- ViewItemList
|
||||
- ViewCart
|
||||
|
||||
# --- Facebook
|
||||
# https://developers.facebook.com/docs/marketing-api/conversions-api/guides/gtm-server-side
|
||||
|
||||
@ -34,6 +34,8 @@ func dump(i interface{ MarshalJSON() ([]byte, error) }, err error) error {
|
||||
|
||||
func list(l *slog.Logger, tm *tagmanager.TagManager, resource string) error {
|
||||
switch resource {
|
||||
case "status":
|
||||
return dump(tm.Service().Accounts.Containers.Workspaces.GetStatus(tm.WorkspacePath()).Do())
|
||||
case "clients":
|
||||
return dump(tm.Service().Accounts.Containers.Workspaces.Clients.List(tm.WorkspacePath()).Do())
|
||||
case "tags":
|
||||
|
||||
@ -17,6 +17,7 @@ func NewServer(root *cobra.Command) {
|
||||
"clients",
|
||||
"folders",
|
||||
"gtag-config",
|
||||
"status",
|
||||
"tags",
|
||||
"templates",
|
||||
"templates-data",
|
||||
|
||||
@ -16,6 +16,7 @@ func NewWeb(root *cobra.Command) {
|
||||
"built-in-variables",
|
||||
"folders",
|
||||
"gtag-config",
|
||||
"status",
|
||||
"tags",
|
||||
"templates",
|
||||
"templates-data",
|
||||
|
||||
@ -11,6 +11,8 @@ type Criteo struct {
|
||||
CallerID string `json:"callerId" yaml:"callerId"`
|
||||
// Criteo partner id
|
||||
PartnerID string `json:"partnerId" yaml:"partnerId"`
|
||||
// Criteo application id
|
||||
ApplicationID string `json:"applicationId" yaml:"applicationId"`
|
||||
// Google Consent settings
|
||||
GoogleConsent GoogleConsent `json:"googleConsent" yaml:"googleConsent"`
|
||||
// Google Tag Manager server container settings
|
||||
|
||||
@ -5,6 +5,7 @@ const (
|
||||
Name = "Criteo"
|
||||
NameCallerID = "Criteo Caller ID"
|
||||
NamePartnerID = "Criteo Partner ID"
|
||||
NameApplicationID = "Criteo Application ID"
|
||||
NameCriteoEventsAPITemplate = "Criteo Events API"
|
||||
NameCriteoUserIdentificationTag = "Criteo User Identification"
|
||||
NameCriteoUserIdentificationTemplate = "Criteo User Identification"
|
||||
|
||||
@ -42,6 +42,11 @@ func Server(l *slog.Logger, tm *tagmanager.TagManager, cfg config.Criteo) error
|
||||
return err
|
||||
}
|
||||
|
||||
applicationID, err := tm.UpsertVariable(commonvariable.NewConstant(NameApplicationID, cfg.ApplicationID))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
eventParameters, err := utils.LoadEventParams(cfg.ServerContainer)
|
||||
if err != nil {
|
||||
return err
|
||||
@ -65,7 +70,7 @@ func Server(l *slog.Logger, tm *tagmanager.TagManager, cfg config.Criteo) error
|
||||
return errors.Wrap(err, "failed to upsert event trigger: "+event)
|
||||
}
|
||||
|
||||
if _, err := tm.UpsertTag(servertagx.NewEventsAPITag(event, callerID, partnerID, template, eventTrigger)); err != nil {
|
||||
if _, err := tm.UpsertTag(servertagx.NewEventsAPITag(event, callerID, partnerID, applicationID, template, eventTrigger)); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
@ -9,7 +9,7 @@ func EventsAPITagName(v string) string {
|
||||
return "Criteo - " + v
|
||||
}
|
||||
|
||||
func NewEventsAPITag(name string, callerID, partnerID *tagmanager.Variable, template *tagmanager.CustomTemplate, triggers ...*tagmanager.Trigger) *tagmanager.Tag {
|
||||
func NewEventsAPITag(name string, callerID, partnerID, applicationID *tagmanager.Variable, template *tagmanager.CustomTemplate, triggers ...*tagmanager.Trigger) *tagmanager.Tag {
|
||||
return &tagmanager.Tag{
|
||||
FiringTriggerId: utils.TriggerIDs(triggers),
|
||||
Name: EventsAPITagName(name),
|
||||
@ -34,8 +34,14 @@ func NewEventsAPITag(name string, callerID, partnerID *tagmanager.Variable, temp
|
||||
Value: "false",
|
||||
},
|
||||
{
|
||||
Key: "applicationId",
|
||||
Type: "template",
|
||||
Key: "callerId",
|
||||
Type: "template",
|
||||
Value: "{{" + callerID.Name + "}}",
|
||||
},
|
||||
{
|
||||
Key: "applicationId",
|
||||
Type: "template",
|
||||
Value: "{{" + applicationID.Name + "}}",
|
||||
},
|
||||
},
|
||||
Type: utils.TemplateType(template),
|
||||
|
||||
@ -1,6 +1,9 @@
|
||||
package variable
|
||||
|
||||
import (
|
||||
"maps"
|
||||
"slices"
|
||||
|
||||
"github.com/foomo/sesamy-cli/pkg/config"
|
||||
"google.golang.org/api/tagmanager/v2"
|
||||
)
|
||||
@ -11,24 +14,32 @@ func LookupTableName(v string) string {
|
||||
|
||||
func NewLookupTable(name string, data config.LookupTable) *tagmanager.Variable {
|
||||
var list []*tagmanager.Parameter
|
||||
for k, v := range data.KeyTable {
|
||||
list = append(list, &tagmanager.Parameter{
|
||||
Type: "map",
|
||||
Map: []*tagmanager.Parameter{
|
||||
{
|
||||
Key: "key",
|
||||
Type: "template",
|
||||
Value: k,
|
||||
{
|
||||
keys := slices.AppendSeq(make([]string, 0, len(data.KeyTable)), maps.Keys(data.KeyTable))
|
||||
slices.Sort(keys)
|
||||
for _, k := range keys {
|
||||
v := data.KeyTable[k]
|
||||
list = append(list, &tagmanager.Parameter{
|
||||
Type: "map",
|
||||
Map: []*tagmanager.Parameter{
|
||||
{
|
||||
Key: "key",
|
||||
Type: "template",
|
||||
Value: k,
|
||||
},
|
||||
{
|
||||
Key: "value",
|
||||
Type: "template",
|
||||
Value: v,
|
||||
},
|
||||
},
|
||||
{
|
||||
Key: "value",
|
||||
Type: "template",
|
||||
Value: v,
|
||||
},
|
||||
},
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
for k, v := range data.ValueTable {
|
||||
keys := slices.AppendSeq(make([]string, 0, len(data.ValueTable)), maps.Keys(data.ValueTable))
|
||||
slices.Sort(keys)
|
||||
for _, k := range keys {
|
||||
v := data.ValueTable[k]
|
||||
list = append(list, &tagmanager.Parameter{
|
||||
Type: "map",
|
||||
Map: []*tagmanager.Parameter{
|
||||
|
||||
@ -166,6 +166,10 @@
|
||||
"type": "string",
|
||||
"description": "Criteo partner id"
|
||||
},
|
||||
"applicationId": {
|
||||
"type": "string",
|
||||
"description": "Criteo application id"
|
||||
},
|
||||
"googleConsent": {
|
||||
"$ref": "#/$defs/github.com.foomo.sesamy-cli.pkg.config.GoogleConsent",
|
||||
"description": "Google Consent settings"
|
||||
|
||||
33
sesamy.yaml
33
sesamy.yaml
@ -36,6 +36,15 @@ googleTagManager:
|
||||
containerId: '175348980'
|
||||
# The workspace id that should be used by the api
|
||||
workspaceId: '10'
|
||||
# Server container variables
|
||||
serverContainerVariables:
|
||||
eventData:
|
||||
- link_url
|
||||
lookupTables:
|
||||
link_url_conversion_label:
|
||||
input: '{{event.link_url}}'
|
||||
valueTable:
|
||||
123456: 'https://foomo.org/'
|
||||
|
||||
# --- Google Tag settings
|
||||
googleTag:
|
||||
@ -219,6 +228,30 @@ umami:
|
||||
- PageView
|
||||
- SelectItem
|
||||
|
||||
# --- Criteo
|
||||
criteo:
|
||||
# Enable provider
|
||||
enabled: true
|
||||
# Criteo caller id
|
||||
callerId: 123
|
||||
# Criteo partner id
|
||||
partnerId: 123456
|
||||
# Criteo applicaiton id
|
||||
applicationId: com.foomo
|
||||
# Google Tag Manager server container settings
|
||||
serverContainer:
|
||||
# Contemplate package config for generated events
|
||||
packages:
|
||||
- path: github.com/foomo/sesamy-go/pkg/event
|
||||
types:
|
||||
- AddToCart
|
||||
- BeginCheckout
|
||||
- PageView
|
||||
- Purchase
|
||||
- ViewItem
|
||||
- ViewItemList
|
||||
- ViewCart
|
||||
|
||||
# --- Facebook
|
||||
# https://developers.facebook.com/docs/marketing-api/conversions-api/guides/gtm-server-side
|
||||
facebook:
|
||||
|
||||
Loading…
Reference in New Issue
Block a user