<!DOCTYPE html>

<html>

<head>

  <title>Meta Ads WDC</title>

  <script src="https://connectors.tableau.com/libs/tableauwdc-2.3.0.js"></script>

</head>

<body>

  <h2>Meta Ads WDC</h2>


  <script>

    (function() {

      var myConnector = tableau.makeConnector();


      // Tableau için schema

      myConnector.getSchema = function(schemaCallback) {

        var cols = [

          { id: "campaign_name", dataType: tableau.dataTypeEnum.string },

          { id: "impressions", dataType: tableau.dataTypeEnum.int },

          { id: "spend", dataType: tableau.dataTypeEnum.float },

          { id: "clicks", dataType: tableau.dataTypeEnum.int }

        ];


        var tableSchema = {

          id: "metaAdsData",

          alias: "Meta Ads Campaign Data",

          columns: cols

        };


        schemaCallback([tableSchema]);

      };


      // Tableau için veri çekme

      myConnector.getData = function(table, doneCallback) {

        fetch("https://metaads.berkanyilmazdms.workers.dev")

          .then(response => response.json())

          .then(data => {

            var tableData = [];

            data.data.forEach(item => {

              tableData.push({

                campaign_name: item.campaign_name,

                impressions: item.impressions,

                spend: item.spend,

                clicks: item.clicks

              });

            });

            table.appendRows(tableData);

            doneCallback();

          })

          .catch(err => {

            console.error("Worker’dan veri çekilemedi:", err);

            alert("Veri çekilemedi, Cloudflare Access ile login olduğunuzdan emin olun.");

          });

      };


      tableau.registerConnector(myConnector);


      document.addEventListener("DOMContentLoaded", function() {

        tableau.connectionName = "Meta Ads WDC";

        tableau.submit();

      });

    })();

  </script>

</body>

</html>