Saltar al contenido principal
Este ejemplo demuestra un flujo completo utilizando las APIs de Topsort para una campaña de productos patrocinados con segmentación por categoría. Reemplaza las claves de API e IDs con tus credenciales y valores reales. Pasos:
1

Sincronizar catálogo

Sincroniza tu catálogo de productos con Topsort
2

Crear una campaña

Configura una campaña de productos patrocinados
3

Enviar solicitudes de subasta

Solicita ganadores de subasta
4

Rastrear eventos

Reporta impresiones, clics y compras
5

Obtener reporte

Recupera datos de rendimiento de la campaña
  • Para gestionar productos, campañas y reportes, usa una Advanced API Key (TSC_…). - Para subastas y eventos, usa una Marketplace API Key (TSE_…).
Un producto de ejemplo example-product-coca-cola, de la categoría soft-drinks es usado en este ejemplo. Recuerda usar tu Advanced API Key.
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: "Coca Cola can",
      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("unexpected status: " + response.status);
  } else {
    console.log("success status: " + response.status);
  }
} catch (error) {
  console.error(error);
}

2. Crear Campaña

En este ejemplo, se crea una campaña para promover el producto example-product-coca-cola, con un disparador de palabra clave (soft drink). Recuerda usar tu Advanced API Key.
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: "An example campaign",
};

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("unexpected status: " + response.status);
  } else {
    console.log("success status: " + response.status);
  }
} catch (error) {
  console.error(error);
}

3. Enviar Solicitud de Subasta

En este ejemplo, se crea una solicitud de subasta para devolver ganadores activados por el término de búsqueda “soft drink”. Recuerda usar tu Marketplace API Key.
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("unexpected status: " + response.status);
  } else {
    console.log("success status: " + response.status);
  }
} catch (error) {
  console.error(error);
}

4. Rastreo de Eventos

En este ejemplo, se rastrea un clic en un producto promovido usando nuestra API. El resolvedBidId del ganador devuelto por la llamada de subastas debe enviarse en el cuerpo de la solicitud, para garantizar la atribución correcta de ventas. Recuerda usar tu Marketplace API Key.
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("unexpected status: " + response.status);
  } else {
    console.log("success status: " + response.status);
  }
} catch (error) {
  console.error(error);
}

¿Necesitas ayuda con tu integración de Topsort?

Habla con nosotros, el equipo de ingeniería de integraciones.Contáctanos a través de tu canal de mensajería dedicado o en support@topsort.com.Si aún no eres cliente, agenda una demo con nuestro equipo de ventas.