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  }