Analytics endpoints require a Pro plan subscription
or higher.
Country analytics
The top countries by event count, including ISO 3166-1 alpha-2 country codes.import { Dub } from "dub";
export const dub = new Dub({
token: process.env.DUB_API_KEY,
});
const result = await dub.analytics.retrieve({
event: "clicks",
groupBy: "countries",
linkId: "clux0rgak00011...",
interval: "30d",
});
from dub import Dub
with Dub(
token="DUB_API_KEY",
) as d_client:
res = d_client.analytics.retrieve(request={
"event": "clicks",
"groupBy": "countries",
"linkId": "clux0rgak00011...",
"interval": "30d",
})
print(res)
declare(strict_types=1);
require 'vendor/autoload.php';
use Dub;
use Dub\Models\Operations;
$sdk = Dub\Dub::builder()
->setSecurity('DUB_API_KEY')
->build();
$request = new Operations\RetrieveAnalyticsRequest(
event: 'clicks',
groupBy: 'countries',
linkId: 'clux0rgak00011...',
interval: '30d',
);
$response = $sdk->analytics->retrieve(
request: $request
);
if ($response->oneOf !== null) {
// handle response
}
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.Analytics.Retrieve(ctx, operations.RetrieveAnalyticsRequest{
Event: dubgo.String("clicks"),
GroupBy: dubgo.String("countries"),
LinkID: dubgo.String("clux0rgak00011..."),
Interval: dubgo.String("30d"),
})
if err != nil {
log.Fatal(err)
}
if res != nil {
// handle response
}
}
require 'dub'
s = ::OpenApiSDK::Dub.new(
security: ::OpenApiSDK::Shared::Security.new(
token: "DUB_API_KEY",
),
)
req = ::OpenApiSDK::Operations::RetrieveAnalyticsRequest.new(
event: "clicks",
groupBy: "countries",
linkId: "clux0rgak00011...",
interval: "30d",
)
res = s.analytics.retrieve(req)
if ! res.one_of.nil?
# handle response
end
City analytics
The top cities by event count, including city names and their corresponding region codes + ISO 3166-1 alpha-2 country codes.import { Dub } from "dub";
export const dub = new Dub({
token: process.env.DUB_API_KEY,
});
const result = await dub.analytics.retrieve({
event: "clicks",
groupBy: "cities",
linkId: "clux0rgak00011...",
interval: "30d",
});
from dub import Dub
with Dub(
token="DUB_API_KEY",
) as d_client:
res = d_client.analytics.retrieve(request={
"event": "clicks",
"groupBy": "cities",
"linkId": "clux0rgak00011...",
"interval": "30d",
})
print(res)
declare(strict_types=1);
require 'vendor/autoload.php';
use Dub;
use Dub\Models\Operations;
$sdk = Dub\Dub::builder()
->setSecurity('DUB_API_KEY')
->build();
$request = new Operations\RetrieveAnalyticsRequest(
event: 'clicks',
groupBy: 'cities',
linkId: 'clux0rgak00011...',
interval: '30d',
);
$response = $sdk->analytics->retrieve(
request: $request
);
if ($response->oneOf !== null) {
// handle response
}
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.Analytics.Retrieve(ctx, operations.RetrieveAnalyticsRequest{
Event: dubgo.String("clicks"),
GroupBy: dubgo.String("cities"),
LinkID: dubgo.String("clux0rgak00011..."),
Interval: dubgo.String("30d"),
})
if err != nil {
log.Fatal(err)
}
if res != nil {
// handle response
}
}
require 'dub'
s = ::OpenApiSDK::Dub.new(
security: ::OpenApiSDK::Shared::Security.new(
token: "DUB_API_KEY",
),
)
req = ::OpenApiSDK::Operations::RetrieveAnalyticsRequest.new(
event: "clicks",
groupBy: "cities",
linkId: "clux0rgak00011...",
interval: "30d",
)
res = s.analytics.retrieve(req)
if ! res.one_of.nil?
# handle response
end
Continent analytics
The top continents by event count, using 2-letter ISO continent codes.import { Dub } from "dub";
export const dub = new Dub({
token: process.env.DUB_API_KEY,
});
const result = await dub.analytics.retrieve({
event: "clicks",
groupBy: "continents",
linkId: "clux0rgak00011...",
interval: "30d",
});
from dub import Dub
with Dub(
token="DUB_API_KEY",
) as d_client:
res = d_client.analytics.retrieve(request={
"event": "clicks",
"groupBy": "continents",
"linkId": "clux0rgak00011...",
"interval": "30d",
})
print(res)
declare(strict_types=1);
require 'vendor/autoload.php';
use Dub;
use Dub\Models\Operations;
$sdk = Dub\Dub::builder()
->setSecurity('DUB_API_KEY')
->build();
$request = new Operations\RetrieveAnalyticsRequest(
event: 'clicks',
groupBy: 'continents',
linkId: 'clux0rgak00011...',
interval: '30d',
);
$response = $sdk->analytics->retrieve(
request: $request
);
if ($response->oneOf !== null) {
// handle response
}
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.Analytics.Retrieve(ctx, operations.RetrieveAnalyticsRequest{
Event: dubgo.String("clicks"),
GroupBy: dubgo.String("continents"),
LinkID: dubgo.String("clux0rgak00011..."),
Interval: dubgo.String("30d"),
})
if err != nil {
log.Fatal(err)
}
if res != nil {
// handle response
}
}
require 'dub'
s = ::OpenApiSDK::Dub.new(
security: ::OpenApiSDK::Shared::Security.new(
token: "DUB_API_KEY",
),
)
req = ::OpenApiSDK::Operations::RetrieveAnalyticsRequest.new(
event: "clicks",
groupBy: "continents",
linkId: "clux0rgak00011...",
interval: "30d",
)
res = s.analytics.retrieve(req)
if ! res.one_of.nil?
# handle response
end
Region analytics
The top regions by event count, including region codes and ISO 3166-1 alpha-2 country codes.import { Dub } from "dub";
export const dub = new Dub({
token: process.env.DUB_API_KEY,
});
const result = await dub.analytics.retrieve({
event: "clicks",
groupBy: "regions",
linkId: "clux0rgak00011...",
interval: "30d",
});
from dub import Dub
with Dub(
token="DUB_API_KEY",
) as d_client:
res = d_client.analytics.retrieve(request={
"event": "clicks",
"groupBy": "regions",
"linkId": "clux0rgak00011...",
"interval": "30d",
})
print(res)
declare(strict_types=1);
require 'vendor/autoload.php';
use Dub;
use Dub\Models\Operations;
$sdk = Dub\Dub::builder()
->setSecurity('DUB_API_KEY')
->build();
$request = new Operations\RetrieveAnalyticsRequest(
event: 'clicks',
groupBy: 'regions',
linkId: 'clux0rgak00011...',
interval: '30d',
);
$response = $sdk->analytics->retrieve(
request: $request
);
if ($response->oneOf !== null) {
// handle response
}
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.Analytics.Retrieve(ctx, operations.RetrieveAnalyticsRequest{
Event: dubgo.String("clicks"),
GroupBy: dubgo.String("regions"),
LinkID: dubgo.String("clux0rgak00011..."),
Interval: dubgo.String("30d"),
})
if err != nil {
log.Fatal(err)
}
if res != nil {
// handle response
}
}
require 'dub'
s = ::OpenApiSDK::Dub.new(
security: ::OpenApiSDK::Shared::Security.new(
token: "DUB_API_KEY",
),
)
req = ::OpenApiSDK::Operations::RetrieveAnalyticsRequest.new(
event: "clicks",
groupBy: "regions",
linkId: "clux0rgak00011...",
interval: "30d",
)
res = s.analytics.retrieve(req)
if ! res.one_of.nil?
# handle response
end