Update a link for the authenticated workspace. If there’s no change, returns it as it is.
package main
import(
"context"
dubgo "github.com/dubinc/dub-go"
"github.com/dubinc/dub-go/models/operations"
"log"
)
func main() {
ctx := context.Background()
s := dubgo.New(
dubgo.WithSecurity("DUB_API_KEY"),
)
res, err := s.Links.Update(ctx, "<id>", &operations.UpdateLinkRequestBody{
URL: dubgo.String("https://google.com"),
ExternalID: dubgo.String("123456"),
TagIds: dubgo.Pointer(operations.CreateUpdateLinkTagIdsArrayOfStr(
[]string{
"clux0rgak00011...",
},
)),
TestVariants: []operations.UpdateLinkTestVariants{
operations.UpdateLinkTestVariants{
URL: "https://example.com/variant-1",
Percentage: 50,
},
operations.UpdateLinkTestVariants{
URL: "https://example.com/variant-2",
Percentage: 50,
},
},
})
if err != nil {
log.Fatal(err)
}
if res != nil {
// handle response
}
}
{
"id": "<string>",
"domain": "<string>",
"key": "<string>",
"url": "<string>",
"trackConversion": false,
"externalId": "<string>",
"tenantId": "<string>",
"programId": "<string>",
"partnerId": "<string>",
"archived": false,
"expiresAt": "<string>",
"expiredUrl": "<string>",
"password": "<string>",
"proxy": false,
"title": "<string>",
"description": "<string>",
"image": "<string>",
"video": "<string>",
"rewrite": false,
"doIndex": false,
"ios": "<string>",
"android": "<string>",
"geo": {},
"publicStats": false,
"tags": [
{
"id": "<string>",
"name": "<string>",
"color": "red"
}
],
"folderId": "<string>",
"webhookIds": [
"<string>"
],
"comments": "<string>",
"shortLink": "<string>",
"qrCode": "<string>",
"utm_source": "<string>",
"utm_medium": "<string>",
"utm_campaign": "<string>",
"utm_term": "<string>",
"utm_content": "<string>",
"testVariants": [
{
"url": "https://example.com/variant-1",
"percentage": 50
},
{
"url": "https://example.com/variant-2",
"percentage": 50
}
],
"testStartedAt": "<string>",
"testCompletedAt": "<string>",
"userId": "<string>",
"workspaceId": "<string>",
"clicks": 0,
"leads": 0,
"conversions": 0,
"sales": 0,
"saleAmount": 0,
"lastClicked": "<string>",
"createdAt": "<string>",
"updatedAt": "<string>",
"tagId": "<string>",
"projectId": "<string>"
}
Default authentication mechanism
The id of the link to update. You may use either linkId
(obtained via /links/info
endpoint) or externalId
prefixed with ext_
.
The updated link
The response is of type object
.
package main
import(
"context"
dubgo "github.com/dubinc/dub-go"
"github.com/dubinc/dub-go/models/operations"
"log"
)
func main() {
ctx := context.Background()
s := dubgo.New(
dubgo.WithSecurity("DUB_API_KEY"),
)
res, err := s.Links.Update(ctx, "<id>", &operations.UpdateLinkRequestBody{
URL: dubgo.String("https://google.com"),
ExternalID: dubgo.String("123456"),
TagIds: dubgo.Pointer(operations.CreateUpdateLinkTagIdsArrayOfStr(
[]string{
"clux0rgak00011...",
},
)),
TestVariants: []operations.UpdateLinkTestVariants{
operations.UpdateLinkTestVariants{
URL: "https://example.com/variant-1",
Percentage: 50,
},
operations.UpdateLinkTestVariants{
URL: "https://example.com/variant-2",
Percentage: 50,
},
},
})
if err != nil {
log.Fatal(err)
}
if res != nil {
// handle response
}
}
{
"id": "<string>",
"domain": "<string>",
"key": "<string>",
"url": "<string>",
"trackConversion": false,
"externalId": "<string>",
"tenantId": "<string>",
"programId": "<string>",
"partnerId": "<string>",
"archived": false,
"expiresAt": "<string>",
"expiredUrl": "<string>",
"password": "<string>",
"proxy": false,
"title": "<string>",
"description": "<string>",
"image": "<string>",
"video": "<string>",
"rewrite": false,
"doIndex": false,
"ios": "<string>",
"android": "<string>",
"geo": {},
"publicStats": false,
"tags": [
{
"id": "<string>",
"name": "<string>",
"color": "red"
}
],
"folderId": "<string>",
"webhookIds": [
"<string>"
],
"comments": "<string>",
"shortLink": "<string>",
"qrCode": "<string>",
"utm_source": "<string>",
"utm_medium": "<string>",
"utm_campaign": "<string>",
"utm_term": "<string>",
"utm_content": "<string>",
"testVariants": [
{
"url": "https://example.com/variant-1",
"percentage": 50
},
{
"url": "https://example.com/variant-2",
"percentage": 50
}
],
"testStartedAt": "<string>",
"testCompletedAt": "<string>",
"userId": "<string>",
"workspaceId": "<string>",
"clicks": 0,
"leads": 0,
"conversions": 0,
"sales": 0,
"saleAmount": 0,
"lastClicked": "<string>",
"createdAt": "<string>",
"updatedAt": "<string>",
"tagId": "<string>",
"projectId": "<string>"
}