При программном создании ссылок с помощью Revroute вам может понадобиться способ связать их с пользователем или другими идентификаторами в вашей системе.
Существует несколько способов сделать это в зависимости от структуры ваших данных:
| Способ | Связь | Что это | Когда применять |
|---|---|---|---|
| External ID | один к одному | Уникальный идентификатор ссылки в вашей системе | Связать реферальную ссылку с конкретным пользователем |
| Tenant ID | один ко многим | Идентификатор арендатора, создавшего ссылку | Сгруппировать все ссылки одного пользователя или команды |
| Теги | многие ко многим | Группировка ссылок по меткам | Разложить ссылки по кампаниям, клиентам и другим срезам для отчётов |
| Папки | один ко многим | Идентификатор папки, в которой лежит ссылка | Выстроить иерархию папок и наводить порядок в большом количестве ссылок |
Внешний идентификатор externalId
Иногда ссылку нужно опознавать по идентификатору из вашей системы. Например, связать реферальную ссылку с пользователем, не храня при этом идентификатор ссылки Revroute в своей базе.
Для этого и нужно поле externalId. Это уникальный идентификатор на вашей стороне, который сопоставляется с конкретной ссылкой в системе Revroute.
Revroute позволяет создать ссылку с externalId, а затем получать её по тому же идентификатору.
Значение externalId должно быть уникальным в пределах рабочего пространства.
Попытка создать вторую ссылку с уже занятым externalId вернёт ошибку
конфликта 409 — см. «API: ошибки».
Создание ссылки с externalId
Пример создания ссылки с полем externalId:
import { Revroute } from "dub";
export const dub = new Revroute({
token: process.env.REVROUTE_API_KEY,
});
const link = await dub.links.create({
url: "https://google.com",
externalId: "12345",
});Получение ссылки по externalId
Как получить ссылку по её externalId:
import { Revroute } from "dub";
export const dub = new Revroute({
token: process.env.REVROUTE_API_KEY,
});
const link = await dub.links.get({
externalId: "12345",
});Обновление ссылки по externalId
Ссылку можно обновлять не только по linkId, но и по externalId.
Не забудьте префикс ext_ перед значением externalId. Например, если
externalId равен 12345, передавать нужно ext_12345.
import { Revroute } from "dub";
export const dub = new Revroute({
token: process.env.REVROUTE_API_KEY,
});
const link = await dub.links.update("ext_12345", {
url: "https://www.google.uk", // new URL
});Аналитика по externalId
Аналитику по ссылке тоже можно запрашивать по externalId — удобно, когда в вашей системе ссылка известна только под своим идентификатором.
import { Revroute } from "dub";
export const dub = new Revroute({
token: process.env.REVROUTE_API_KEY,
});
const analytics = await dub.analytics.retrieve({
externalId: "ext_12345",
});Идентификатор арендатора tenantId
Идентификатор арендатора, создавшего ссылку в вашей системе. Если он задан, по нему можно получить все ссылки этого арендатора. Приём полезен, когда пользователи создают ссылки сами, а вам нужно группировать их по владельцу.
Создание ссылки с tenantId
Пример создания ссылки с идентификатором арендатора:
import { Revroute } from "dub";
export const dub = new Revroute({
token: process.env.REVROUTE_API_KEY,
});
const link = await dub.links.create({
url: "https://google.com",
tenantId: "12345",
});Получение ссылок по tenantId
Как получить список ссылок по идентификатору арендатора:
import { Revroute } from "dub";
export const dub = new Revroute({
token: process.env.REVROUTE_API_KEY,
});
const result = await dub.links.list({
tenantId: "12345",
});Аналитика по tenantId
Передайте параметр tenantId — и получите аналитику по всем ссылкам конкретного арендатора или суммарные показатели по нему.
import { Revroute } from "dub";
export const dub = new Revroute({
token: process.env.REVROUTE_API_KEY,
});
const analytics = await dub.analytics.retrieve({
tenantId: "12345",
});Теги
Теги — самый гибкий способ навести порядок в ссылках Revroute.
С тегами вы можете:
- раскладывать ссылки по кампаниям, клиентам и любым другим категориям;
- фильтровать ссылки по тегам и делиться ссылкой на отфильтрованную выборку;
- фильтровать аналитику по тегам, чтобы оценивать эффективность кампаний.
Создание ссылки с тегами
При создании ссылки можно передать либо идентификатор тега, либо его название.
import { Revroute } from "dub";
export const dub = new Revroute({
token: process.env.REVROUTE_API_KEY,
});
const link = await dub.links.create({
url: "https://example.com",
tagIds: ["clux0rgak00011..."],
});Получение ссылок по тегам
Список ссылок можно запросить с фильтром по тегам.
import { Revroute } from "dub";
export const dub = new Revroute({
token: process.env.REVROUTE_API_KEY,
});
const result = await dub.links.list({
tagNames: ["tag1"],
});Аналитика по тегам
Передайте параметр tagIds — и получите аналитику по одному или нескольким тегам: как по каждой ссылке под тегом, так и суммарно.
import { Revroute } from "dub";
export const dub = new Revroute({
token: process.env.REVROUTE_API_KEY,
});
const analytics = await dub.analytics.retrieve({
tagIds: ["tag_xxx"],
});Папки
Папки — иерархический способ организации ссылок в Revroute.
С папками вы можете:
- раскладывать ссылки по каталогам;
- фильтровать ссылки по папке и делиться ссылкой на отфильтрованную выборку;
- фильтровать аналитику по папке, чтобы оценивать эффективность кампаний.
Создание ссылки с folderId
Чтобы положить ссылку в папку, передайте идентификатор папки при создании.
import { Revroute } from "dub";
export const dub = new Revroute({
token: process.env.REVROUTE_API_KEY,
});
const link = await dub.links.create({
url: "https://example.com",
folderId: "clux0rgak00011...",
});Получение ссылок по папке
Как получить список ссылок по идентификатору папки:
import { Revroute } from "dub";
export const dub = new Revroute({
token: process.env.REVROUTE_API_KEY,
});
const result = await dub.links.list({
folderId: "clux0rgak00011...",
});Аналитика по папке
Передайте параметр folderId — и получите аналитику по всем ссылкам внутри папки или суммарные показатели по ней.
import { Revroute } from "dub";
export const dub = new Revroute({
token: process.env.REVROUTE_API_KEY,
});
const analytics = await dub.analytics.retrieve({
folderId: "clux0rgak00011...",
});