Sie bauen die Experience. Apointoo bewahrt den Nachweis.
Next.js, Vue, WordPress, eigene Landingpages, Ihr eigenes Formular oder ein Buchungsflow: Apointoo läuft als Attributionsebene dahinter. Handler-first, vollständig typisiert, tree-shakeable. Funktioniert auf Node.js, Deno, Cloudflare Workers und jeder Edge-Runtime mit der Fetch API.
npm install git+https://github.com/vizuh/apointoo-sdk.gitnpmSchnellstart
Erfassen Sie Events über API oder SDK, bewahren Sie GCLID, UTMs und Session-Daten und senden Sie Leads, Buchungen und Ergebnis-Updates über Ihre /api/*-Route in Next.js, Hono oder Express.
import { createBookingHandler } from '@vizuh/apointoo-sdk/server'
import { brevoRestAdapter } from '@vizuh/apointoo-sdk/adapters/notification/brevo-rest'
import { directConfirmAdapter } from '@vizuh/apointoo-sdk/adapters/booking/direct-confirm'
export const app = createBookingHandler({
config: {
projectKey: 'your-clinic',
locale: 'en-US',
timezone: 'America/New_York',
},
booking: directConfirmAdapter(),
notification: brevoRestAdapter({ apiKey: env.BREVO_API_KEY }),
})Adapter
Jede Integration ist ein tree-shakeable Adapter für die Systeme, in denen Conversions tatsächlich stattfinden. Importieren Sie nur, was Sie verwenden.
| Adapter | Typ | Status | Import |
|---|---|---|---|
| BLVD | booking | production | @vizuh/apointoo-sdk/adapters/booking/blvd |
| OpenDental | booking | beta | @vizuh/apointoo-sdk/adapters/booking/open-dental |
| direct-confirm | booking | production | @vizuh/apointoo-sdk/adapters/booking/direct-confirm |
| Brevo REST | notification | production | @vizuh/apointoo-sdk/adapters/notification/brevo-rest |
| Twilio WhatsApp | notification | beta | @vizuh/apointoo-sdk/adapters/notification/twilio-whatsapp |
| Sheets | persistence | production | @vizuh/apointoo-sdk/adapters/persistence/sheets |
| Upstash | dedup | production | @vizuh/apointoo-sdk/adapters/dedup/upstash |
Architektur
Ein Handler ist der Einstiegspunkt. Er führt die Pipeline aus, die die Attribution bei jedem Schritt hält, und sendet die bestätigte Conversion über die konfigurierten Adapter zurück an Google Ads.
Umgebungsvariablen
Die Konfiguration erfolgt über Umgebungsvariablen. Keine SDK-spezifischen Konfigurationsdateien. Schlüssel eintragen, deployen, ausliefern.
| Variable | Erforderlich | Beschreibung |
|---|---|---|
| NEXT_PUBLIC_GTM_ID | Nein | Container-ID des Google Tag Manager. Leer lassen, um GTM zu deaktivieren. |
| HEADLESS_WP_URL | Nein | WordPress-GraphQL-Endpunkt für die Inhalte von /docs und /blog. |
| BREVO_API_KEY | Nein | Brevo (Sendinblue) REST-API-Schlüssel für den Brevo-Benachrichtigungs-Adapter. |
| BLVD_API_KEY | Nein | BLVD API-Schlüssel für den BLVD-Buchungs-Adapter. |
| UPSTASH_REDIS_URL | Nein | Upstash Redis REST-URL für den Dedup-Adapter. |
| UPSTASH_REDIS_TOKEN | Nein | Upstash Redis REST-Token. |
| GOOGLE_SHEETS_SPREADSHEET_ID | Nein | Google Sheets Spreadsheet-ID für den Persistenz-Adapter. |