Documentation Index
Fetch the complete documentation index at: https://docs.topsort.com/llms.txt
Use this file to discover all available pages before exploring further.
Este exemplo demonstra um fluxo completo usando as APIs do Topsort para uma campanha de produto patrocinado com segmentação por categoria. Substitua as chaves de API e IDs pelas suas credenciais e valores reais.
Etapas:
Sincronizar catálogo
Sincronize seu catálogo de produtos com o Topsort
Criar uma campanha
Configure uma campanha de produto patrocinado
Enviar solicitações de leilão
Solicite vencedores de leilão
Rastrear eventos
Reporte impressões, cliques e compras
Obter relatório
Recupere dados de desempenho da campanha
- Para gerenciar produtos, campanhas e relatórios, use uma Chave de API Avançada
(TSC_…). - Para leilões e eventos, use uma Chave de API do Marketplace (TSE_…).
1. Sincronizar Catálogo
Um exemplo de produto example-product-coca-cola, da categoria soft-drinks é usado neste exemplo. Lembre-se de usar sua Chave de API Avançada.
const apikey = "TSC_...";
const body = {
products: [
{
active: true,
categories: ["soft-drinks"],
id: "example-product-coca-cola",
imageURL:
"https://intl.cokestore.com/media/catalog/product/1/6/16181_squeeze-ko-can-maria-2.png",
name: "Lata de Coca Cola",
price: "9.99",
vendors: ["coca-cola"],
},
],
};
try {
const response = await fetch(
"https://api.topsort.com/public/v1/catalog-search-service/catalogs/products",
{
method: "PUT",
mode: "cors",
headers: {
Authorization: `Bearer ${apikey}`,
"Content-Type": "application/json; charset=utf-8",
},
body: JSON.stringify(body),
}
);
if (!response.ok) {
console.error("status inesperado: " + response.status);
} else {
console.log("status de sucesso: " + response.status);
}
} catch (error) {
console.error(error);
}
2. Criar Campanha
Neste exemplo, uma campanha é criada para promover o produto example-product-coca-cola, tendo um gatilho de palavra-chave (soft drink). Lembre-se de usar sua Chave de API Avançada.
const apikey = "TSC_...";
const body = {
bids: [
{
target: {
type: "product",
id: "example-product-coca-cola",
},
triggers: [
{
type: "keyword",
value: {
matchType: "exact",
words: ["soft drink"],
},
},
],
},
],
budget: {
type: "daily",
amount: 10000,
},
campaignType: "autobidding",
isActive: true,
status: "approved",
adFormat: "listing",
name: "Uma campanha de exemplo",
};
try {
const response = await fetch(
"https://api.topsort.com/public/v1/campaign-service/campaigns?vendor_id=demo-vendor",
{
method: "POST",
mode: "cors",
headers: {
Authorization: `Bearer ${apikey}`,
"Content-Type": "application/json; charset=utf-8",
},
body: JSON.stringify(body),
}
);
if (!response.ok) {
console.error("status inesperado: " + response.status);
} else {
console.log("status de sucesso: " + response.status);
}
} catch (error) {
console.error(error);
}
3. Enviar Solicitação de Leilão
Neste exemplo, uma solicitação de leilão é criada para retornar vencedores acionados pelo termo de busca “soft drink”. Lembre-se de usar sua Chave de API do Marketplace.
const apikey = "TSE_...";
const body = {
auctions: [
{
searchQuery: "soft drink",
slots: 1,
type: "listings",
},
],
};
try {
const response = await fetch("https://api.topsort.com/v2/auctions", {
method: "POST",
mode: "cors",
headers: {
Authorization: `Bearer ${apikey}`,
"Content-Type": "application/json; charset=utf-8",
},
body: JSON.stringify(body),
});
if (!response.ok) {
console.error("status inesperado: " + response.status);
} else {
console.log("status de sucesso: " + response.status);
}
} catch (error) {
console.error(error);
}
4. Rastreamento de Eventos
Neste exemplo, um clique em um produto promovido é rastreado usando nossa API. O resolvedBidId do vencedor retornado pela chamada de leilões precisa ser enviado no corpo da solicitação, para garantir a atribuição correta de vendas. Lembre-se de usar sua Chave de API do Marketplace.
const apikey = "TSE_...";
const body = {
clicks: [
{
id: "d0cf3f56-a719-4e02-9c88-625f965ae6e7",
occurredAt: "2024-07-23T11:49:04+00:00",
opaqueUserId: "71303ce0-de89-496d-8270-6434589615e2",
resolvedBidId:
"ChAGafmNzX5wy4sEaDnXi4iWEhABjxq1RG513IkbvRgIVcd6GhABjmiyW3t2Ur066CLC3jWVIgoKBjExMjYzNBABMPuVDw",
},
],
};
try {
const response = await fetch("https://api.topsort.com/v2/events", {
method: "POST",
mode: "cors",
headers: {
Authorization: `Bearer ${apikey}`,
"Content-Type": "application/json; charset=utf-8",
},
body: JSON.stringify(body),
});
if (!response.ok) {
console.error("status inesperado: " + response.status);
} else {
console.log("status de sucesso: " + response.status);
}
} catch (error) {
console.error(error);
}