Privacyvoorkeuren

Noodzakelijke functies

Vereist voor beveiliging en de basisfuncties van de website.

Altijd actief

Landing-diagnostiek en gemaskeerde replay

Meet openbare bezoeken, afhaken en interacties met registratielinks met een anonieme ID die alleen voor dit tabblad geldt, zonder accountkoppeling. Alle tekst wordt gemaskeerd en formulieren worden geblokkeerd.

Optionele gebruiksanalyse

PostHog-gebruiksanalyse toestaan? Je kunt je keuze altijd in de voettekst wijzigen.

Ook sessiereplay op deze openbare website toestaan

Replay in de optionele modus voor meerdere sites toont openbare pagina’s en interacties, waarbij invoer en privé-inhoud worden gemaskeerd. App-replay is een afzonderlijke keuze.

Vereist optionele analyse; replay in deze modus voor meerdere sites staat standaard uit. De Landing-modus hierboven werkt apart.

Browseranalyses schakelen accountanalyses niet in.

Zoeken wordt pas geladen wanneer je het gebruikt. Bekijk hieronder alle categorieën.

Adverteren

Advertentieaccounts tonen

Toon expliciet gekoppelde advertentieaccounts, valuta, tijdzone, taken en huidige machtigingsstatus. De organische social_account_id is geen advertentieaccount.

POST /advertising-api/accounts/list

Contract beoordeeld: · sha256:9aedef8d43dd4514

Overzicht

Toon expliciet gekoppelde advertentieaccounts, valuta, tijdzone, taken en huidige machtigingsstatus. De organische social_account_id is geen advertentieaccount.

Een geslaagd HTTP-antwoord kan acceptatie betekenen in plaats van voltooiing. Bewaar bij achtergrondwerk de teruggegeven ID en controleer dezelfde bewerking totdat die klaar is. Een ingepland of geaccepteerd bericht is pas gepubliceerd na platformbevestiging; een client-time-out bepaalt het resultaat niet.

Authenticatie en machtigingen

Toegestane soorten inloggegevens
user_session, delegated_oauth, personal_access_token
Gedelegeerde bevoegdheid
agent:advertising_read
Minimale werkruimterol
viewer
Toegangsbereik
Resources waartoe deze gebruiker toegang heeft
Toestemming voor alle werkruimten vereist
Nee
Wijzigt status
Nee
Wanneer de bewerking voltooid is
synchronous_http_response

Een token kan alleen rechten van de eigenaar gebruiken. Elk verzoek controleert werkruimtelidmaatschap, resource-eigendom, geselecteerde werkruimten en verleende bevoegdheden. De profielen core en full bepalen welke tools zichtbaar zijn; ze verlenen geen toegang.

Verzoekvelden

Verplicht betekent verplicht binnen het bovenliggende object en de gekozen variant. Een verplicht onderliggend veld maakt een optioneel bovenliggend object niet verplicht. Onderstaande regels en veldnamen zijn uit het contract gekopieerd.

Verzoekvelden
Veld / variantType / verplichtBeperkingen
$objectVerplicht in bovenliggend object
  • additionalProperties: false
workspace_idstringVerplicht in bovenliggend object
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
Volledig JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "workspace_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    }
  },
  "required": [
    "workspace_id"
  ],
  "additionalProperties": false
}

Antwoord en voltooiing

HTTP-statuscodes bij succes: 200. Wanneer de bewerking voltooid is: synchronous_http_response.

Een geslaagd HTTP-antwoord kan acceptatie betekenen in plaats van voltooiing. Bewaar bij achtergrondwerk de teruggegeven ID en controleer dezelfde bewerking totdat die klaar is. Een ingepland of geaccepteerd bericht is pas gepubliceerd na platformbevestiging; een client-time-out bepaalt het resultaat niet.

Verplicht betekent verplicht binnen het bovenliggende object en de gekozen variant. Een verplicht onderliggend veld maakt een optioneel bovenliggend object niet verplicht. Onderstaande regels en veldnamen zijn uit het contract gekopieerd.

Antwoord en voltooiing
Veld / variantType / verplichtBeperkingen
$objectVerplicht in bovenliggend object—
contract_versionstringVerplicht in bovenliggend object
  • const: "advertising/v1"
accountsarrayVerplicht in bovenliggend object
  • maxItems: 100
accounts[]objectOptioneel / item—
accounts[].idstringVerplicht in bovenliggend object
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
accounts[].workspace_idstringVerplicht in bovenliggend object
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
accounts[].grant_idstringVerplicht in bovenliggend object
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
accounts[].provider_account_idstringVerplicht in bovenliggend object
  • pattern: "^[1-9]\\d{1,24}$"
accounts[].provider_app_idstringVerplicht in bovenliggend object
  • pattern: "^[1-9]\\d{1,24}$"
accounts[].provider_principal_idstringVerplicht in bovenliggend object
  • pattern: "^[1-9]\\d{1,24}$"
accounts[].namestringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 200
accounts[].currencystringVerplicht in bovenliggend object
  • pattern: "^[A-Z]{3}$"
accounts[].timezonestringVerplicht in bovenliggend object
  • minLength: 1
  • maxLength: 100
accounts[].account_statusintegerVerplicht in bovenliggend object
  • minimum: -9007199254740991
  • maximum: 9007199254740991
accounts[].tasksarrayVerplicht in bovenliggend object
  • maxItems: 50
accounts[].tasks[]stringOptioneel / item
  • maxLength: 100
accounts[].granted_permissionsarrayVerplicht in bovenliggend object
  • maxItems: 100
accounts[].granted_permissions[]stringOptioneel / item
  • maxLength: 100
accounts[].access_modestringVerplicht in bovenliggend object
  • enum: ["read","manage"]
accounts[].statestringVerplicht in bovenliggend object
  • enum: ["ready","action_required","disconnected"]
accounts[].generationintegerVerplicht in bovenliggend object
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
accounts[].observed_atstringVerplicht in bovenliggend object
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
Volledig JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "contract_version": {
      "type": "string",
      "const": "advertising/v1"
    },
    "accounts": {
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "workspace_id": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "grant_id": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "provider_account_id": {
            "type": "string",
            "pattern": "^[1-9]\\d{1,24}$"
          },
          "provider_app_id": {
            "type": "string",
            "pattern": "^[1-9]\\d{1,24}$"
          },
          "provider_principal_id": {
            "type": "string",
            "pattern": "^[1-9]\\d{1,24}$"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "currency": {
            "type": "string",
            "pattern": "^[A-Z]{3}$"
          },
          "timezone": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          },
          "account_status": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "tasks": {
            "maxItems": 50,
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 100
            }
          },
          "granted_permissions": {
            "maxItems": 100,
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 100
            }
          },
          "access_mode": {
            "type": "string",
            "enum": [
              "read",
              "manage"
            ]
          },
          "state": {
            "type": "string",
            "enum": [
              "ready",
              "action_required",
              "disconnected"
            ]
          },
          "generation": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "observed_at": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
          }
        },
        "required": [
          "id",
          "workspace_id",
          "grant_id",
          "provider_account_id",
          "provider_app_id",
          "provider_principal_id",
          "name",
          "currency",
          "timezone",
          "account_status",
          "tasks",
          "granted_permissions",
          "access_mode",
          "state",
          "generation",
          "observed_at"
        ]
      }
    }
  },
  "required": [
    "contract_version",
    "accounts"
  ]
}

Fouten en veilig opnieuw proberen

Controleer de HTTP-status en antwoordinhoud. Een 400-validatiefout kan een ZodError bevatten; afhandelingsfouten gebruiken de velden error, message en code. Bewaar request_id of x-request-id voor diagnose, zonder inloggegevens. Los 401/403-toegangsfouten op voordat je opnieuw probeert en volg Retry-After bij 429. Lees bij een onzekere schrijfhandeling of 5xx eerst het bestaande resultaat. Hergebruik een idempotentiesleutel alleen waar dit wordt ondersteund; het gedrag bij opnieuw proberen verschilt per bewerking en garandeert geen precies eenmalige aflevering.

Handleiding voor probleemoplossing

Voorbeelden

Deze voorbeelden gebruiken fictieve waarden die tegen de schema's zijn gecontroleerd. Vervang IDs door toegestane IDs, media door gereedstaande bestanden en datums door je bevestigde publicatietijd. Controleer accountgeschiktheid vóór een schrijfhandeling. Deze pagina verstuurt geen API-verzoeken.

Stel SOSOAPI_ACCESS_TOKEN op je server in op inloggegevens die deze bewerking accepteert en houd deze uit browsercode. Gebruik voor een AI-agent sosoapi auth login om via de browser aan te melden en laat de CLI de inloggegevens vernieuwen.

request.json

{
  "workspace_id": "11111111-1111-4111-8111-111111111111"
}

cURL

curl --request POST \
  "https://gqeshlawtcexsapabaui.supabase.co/functions/v1/advertising-api/accounts/list" \
  -H "Authorization: Bearer $SOSOAPI_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  --data-binary @request.json

JavaScript

// Server-side JavaScript. Do not print tokens or credential-bearing responses.
const token = process.env.SOSOAPI_ACCESS_TOKEN;
if (!token) throw new Error("Set an accepted credential for this operation");
const response = await fetch("https://gqeshlawtcexsapabaui.supabase.co/functions/v1/advertising-api/accounts/list", {
  method: "POST",
  headers: { "Content-Type": "application/json", Authorization: "Bearer " + token },
  body: JSON.stringify({
  "workspace_id": "11111111-1111-4111-8111-111111111111"
})
});
const result = await response.json();
// Check response.ok, the operation-specific body and completion state before continuing.

CLI

npx sosoapi api post /advertising-api/accounts/list < request.json

Voorbeeld van een synthetisch antwoord

{
  "contract_version": "advertising/v1",
  "accounts": []
}

MCP: sosoapi_ads_accounts_list