github.com/bububa/oceanengine/marketing-api@v0.0.0-20210315120513-0b953137f7a6/api/track/click.go (about) 1 package track 2 3 import ( 4 "net/url" 5 ) 6 7 var DEFAULT_CLICK_FIELDS = []string{ 8 "request_id", 9 "aid", 10 "advertiser_id", 11 "cid", 12 "campaign_id", 13 "ctype", 14 "csite", 15 "imei", 16 "idfa", 17 "android_id", 18 "oaid", 19 "os", 20 "mac", 21 "mac1", 22 "ip", 23 "ua", 24 "geo", 25 "ts", 26 "callback", 27 "callback_url", 28 "model", 29 "union_site", 30 "caid1", 31 } 32 33 // 点击检测链接 34 func Click(baseUrl string, fields []string) string { 35 if fields == nil { 36 fields = DEFAULT_CLICK_FIELDS 37 } 38 parsedUrl, _ := url.Parse(baseUrl) 39 values := parsedUrl.Query() 40 for _, field := range fields { 41 switch field { 42 case "request_id": 43 values.Set("request_id", "__REQUEST_ID__") 44 case "aid": 45 values.Set("aid", "__AID__") 46 case "advertiser_id": 47 values.Set("advertiser_id", "__ADVERTISER_ID__") 48 case "cid": 49 values.Set("cid", "__CID__") 50 case "campaign_id": 51 values.Set("campaign_id", "__CAMPAIGN_ID__") 52 case "ctype": 53 values.Set("ctype", "__CTYPE__") 54 case "csite": 55 values.Set("csite", "__CSITE__") 56 case "imei": 57 values.Set("imei", "__IMEI__") 58 case "idfa": 59 values.Set("idfa", "__IDFA__") 60 case "android_id": 61 values.Set("android_id", "__ANDROIDID__") 62 case "oaid": 63 values.Set("oaid", "__OAID__") 64 case "os": 65 values.Set("os", "__OS__") 66 case "mac": 67 values.Set("mac", "__MAC__") 68 case "mac1": 69 values.Set("mac1", "__MAC1__") 70 case "ip": 71 values.Set("ip", "__IP__") 72 case "ua": 73 values.Set("ua", "__UA__") 74 case "geo": 75 values.Set("geo", "__GEO__") 76 case "ts": 77 values.Set("ts", "__TS__") 78 case "callback": 79 values.Set("callback", "__CALLBACK_PARAM__") 80 case "callback_url": 81 values.Set("callback_url", "__CALLBACK_URL__") 82 case "model": 83 values.Set("model", "__MODEL__") 84 case "union_site": 85 values.Set("union_site", "__UNION_SITE__") 86 case "caid1": 87 values.Set("caid1", "__CAID1__") 88 case "caid2": 89 values.Set("caid2", "__CAID2__") 90 } 91 } 92 parsedUrl.RawQuery = values.Encode() 93 return parsedUrl.String() 94 }