Saltar para o conteúdo principal
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:
1

Sincronizar catálogo

Sincronize seu catálogo de produtos com o Topsort
2

Criar uma campanha

Configure uma campanha de produto patrocinado
3

Enviar solicitações de leilão

Solicite vencedores de leilão
4

Rastrear eventos

Reporte impressões, cliques e compras
5

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_…).
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);
}

Precisa de ajuda com sua integração Topsort?

Fale conosco, a equipe de engenharia de integrações.Entre em contato através do seu canal de mensagens dedicado ou em support@topsort.com.Se você ainda não é cliente, agende uma demo com nossa equipe de vendas.