mirror of
https://github.com/foomo/sesamy-cli.git
synced 2025-10-16 12:35:36 +00:00
fix(provider/googleads): make conversion labels configurable
This commit is contained in:
parent
e52161a582
commit
7db06f90c3
@ -4,8 +4,11 @@ type GoogleAds struct {
|
||||
// Enable provider
|
||||
Enabled bool `json:"enabled" yaml:"enabled"`
|
||||
// Google Consent settings
|
||||
GoogleConsent GoogleConsent `json:"googleConsent" yaml:"googleConsent"`
|
||||
ConversionID string `json:"conversionId" yaml:"conversionId"`
|
||||
Conversion GoogleAdsConversion `json:"conversion" yaml:"conversion"`
|
||||
Remarketing GoogleAdsRemarketing `json:"remarketing" yaml:"remarketing"`
|
||||
GoogleConsent GoogleConsent `json:"googleConsent" yaml:"googleConsent"`
|
||||
// Conversion id
|
||||
ConversionID string `json:"conversionId" yaml:"conversionId"`
|
||||
// Google Ads Conversion settings
|
||||
Conversion GoogleAdsConversion `json:"conversion" yaml:"conversion"`
|
||||
// Google Ads Remarketing settings
|
||||
Remarketing GoogleAdsRemarketing `json:"remarketing" yaml:"remarketing"`
|
||||
}
|
||||
|
||||
@ -6,8 +6,23 @@ import (
|
||||
|
||||
type GoogleAdsConversion struct {
|
||||
// Enable provider
|
||||
Enabled bool `json:"enabled" yaml:"enabled"`
|
||||
ConversionLabel string `json:"conversionLabel" yaml:"conversionLabel"`
|
||||
Enabled bool `json:"enabled" yaml:"enabled"`
|
||||
// Google Tag Manager server container settings
|
||||
ServerContainer contemplate.Config `json:"serverContainer" yaml:"serverContainer"`
|
||||
ServerContainer ServerContainer `json:"serverContainer" yaml:"serverContainer"`
|
||||
}
|
||||
|
||||
type ServerContainer struct {
|
||||
contemplate.Config `json:",inline" yaml:",squash"`
|
||||
Settings map[string]GoogleAdsConversionTracking `json:"settings" yaml:"settings"`
|
||||
}
|
||||
|
||||
type GoogleAdsConversionTracking struct {
|
||||
Label string `json:"label" yaml:"label"`
|
||||
}
|
||||
|
||||
func (s *ServerContainer) Setting(eventName string) GoogleAdsConversionTracking {
|
||||
if value, ok := s.Settings[eventName]; ok {
|
||||
return value
|
||||
}
|
||||
return GoogleAdsConversionTracking{}
|
||||
}
|
||||
|
||||
@ -4,7 +4,6 @@ const (
|
||||
Tag = "gads"
|
||||
Name = "Google Ads"
|
||||
NameConversionIDConstant = "GAds Conversion ID"
|
||||
NameConversionLabelConstant = "GAds Conversion Label"
|
||||
NameGoogleAdsRemarketingTag = "Google Ads Remarketing"
|
||||
NameGoogleAdsRemarketingTrigger = "Google Ads Remarketing"
|
||||
)
|
||||
|
||||
@ -31,11 +31,6 @@ func Server(l *slog.Logger, tm *tagmanager.TagManager, cfg config.GoogleAds) err
|
||||
|
||||
// conversion
|
||||
if cfg.Conversion.Enabled {
|
||||
conversionLabel, err := tm.UpsertVariable(commonvariable.NewConstant(NameConversionLabelConstant, cfg.Conversion.ConversionLabel))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
value, err := tm.UpsertVariable(variable.NewEventData("value"))
|
||||
if err != nil {
|
||||
return err
|
||||
@ -47,7 +42,7 @@ func Server(l *slog.Logger, tm *tagmanager.TagManager, cfg config.GoogleAds) err
|
||||
}
|
||||
|
||||
{ // create tags
|
||||
eventParameters, err := utils.LoadEventParams(cfg.Conversion.ServerContainer)
|
||||
eventParameters, err := utils.LoadEventParams(cfg.Conversion.ServerContainer.Config)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@ -70,7 +65,7 @@ func Server(l *slog.Logger, tm *tagmanager.TagManager, cfg config.GoogleAds) err
|
||||
return errors.Wrap(err, "failed to upsert event trigger: "+event)
|
||||
}
|
||||
|
||||
if _, err := tm.UpsertTag(servertagx.NewGoogleAdsConversionTracking(event, value, currency, conversionID, conversionLabel, eventTrigger)); err != nil {
|
||||
if _, err := tm.UpsertTag(servertagx.NewGoogleAdsConversionTracking(event, value, currency, conversionID, cfg.Conversion.ServerContainer.Setting(event), eventTrigger)); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package tag
|
||||
|
||||
import (
|
||||
"github.com/foomo/sesamy-cli/pkg/config"
|
||||
"github.com/foomo/sesamy-cli/pkg/utils"
|
||||
"google.golang.org/api/tagmanager/v2"
|
||||
)
|
||||
@ -9,7 +10,7 @@ func GoogleAdsConversionTrackingName(v string) string {
|
||||
return "GAds Conversion - " + v
|
||||
}
|
||||
|
||||
func NewGoogleAdsConversionTracking(name string, value, currency, conversionID, conversionLabel *tagmanager.Variable, triggers ...*tagmanager.Trigger) *tagmanager.Tag {
|
||||
func NewGoogleAdsConversionTracking(name string, value, currency, conversionID *tagmanager.Variable, settings config.GoogleAdsConversionTracking, triggers ...*tagmanager.Trigger) *tagmanager.Tag {
|
||||
return &tagmanager.Tag{
|
||||
FiringTriggerId: utils.TriggerIDs(triggers),
|
||||
Name: GoogleAdsConversionTrackingName(name),
|
||||
@ -48,7 +49,7 @@ func NewGoogleAdsConversionTracking(name string, value, currency, conversionID,
|
||||
{
|
||||
Key: "conversionLabel",
|
||||
Type: "template",
|
||||
Value: "{{" + conversionLabel.Name + "}}",
|
||||
Value: settings.Label,
|
||||
},
|
||||
{
|
||||
Key: "rdp",
|
||||
|
||||
@ -78,6 +78,7 @@ func New(ctx context.Context, l *slog.Logger, accountID string, container config
|
||||
notes: "Managed by Sesamy. DO NOT EDIT.",
|
||||
folderName: "Sesamy",
|
||||
clientOptions: []option.ClientOption{
|
||||
option.WithLogger(l),
|
||||
option.WithRequestReason("Sesamy container provisioning"),
|
||||
},
|
||||
}
|
||||
|
||||
@ -249,13 +249,16 @@
|
||||
"description": "Google Consent settings"
|
||||
},
|
||||
"conversionId": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"description": "Conversion id"
|
||||
},
|
||||
"conversion": {
|
||||
"$ref": "#/$defs/github.com.foomo.sesamy-cli.pkg.config.GoogleAdsConversion"
|
||||
"$ref": "#/$defs/github.com.foomo.sesamy-cli.pkg.config.GoogleAdsConversion",
|
||||
"description": "Google Ads Conversion settings"
|
||||
},
|
||||
"remarketing": {
|
||||
"$ref": "#/$defs/github.com.foomo.sesamy-cli.pkg.config.GoogleAdsRemarketing"
|
||||
"$ref": "#/$defs/github.com.foomo.sesamy-cli.pkg.config.GoogleAdsRemarketing",
|
||||
"description": "Google Ads Remarketing settings"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false,
|
||||
@ -267,17 +270,23 @@
|
||||
"type": "boolean",
|
||||
"description": "Enable provider"
|
||||
},
|
||||
"conversionLabel": {
|
||||
"type": "string"
|
||||
},
|
||||
"serverContainer": {
|
||||
"$ref": "#/$defs/github.com.foomo.gocontemplate.pkg.contemplate.Config",
|
||||
"$ref": "#/$defs/github.com.foomo.sesamy-cli.pkg.config.ServerContainer",
|
||||
"description": "Google Tag Manager server container settings"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false,
|
||||
"type": "object"
|
||||
},
|
||||
"github.com.foomo.sesamy-cli.pkg.config.GoogleAdsConversionTracking": {
|
||||
"properties": {
|
||||
"label": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false,
|
||||
"type": "object"
|
||||
},
|
||||
"github.com.foomo.sesamy-cli.pkg.config.GoogleAdsRemarketing": {
|
||||
"properties": {
|
||||
"enabled": {
|
||||
@ -410,6 +419,18 @@
|
||||
"additionalProperties": false,
|
||||
"type": "object"
|
||||
},
|
||||
"github.com.foomo.sesamy-cli.pkg.config.ServerContainer": {
|
||||
"properties": {
|
||||
"packages": {
|
||||
"$ref": "#/$defs/[]*contemplate.PackageConfig"
|
||||
},
|
||||
"settings": {
|
||||
"$ref": "#/$defs/map[string]config.GoogleAdsConversionTracking"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false,
|
||||
"type": "object"
|
||||
},
|
||||
"github.com.foomo.sesamy-cli.pkg.config.Tracify": {
|
||||
"properties": {
|
||||
"enabled": {
|
||||
@ -474,6 +495,12 @@
|
||||
},
|
||||
"additionalProperties": false,
|
||||
"type": "object"
|
||||
},
|
||||
"map[string]config.GoogleAdsConversionTracking": {
|
||||
"additionalProperties": {
|
||||
"$ref": "#/$defs/github.com.foomo.sesamy-cli.pkg.config.GoogleAdsConversionTracking"
|
||||
},
|
||||
"type": "object"
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user