# Page API

URL: https://docs.ablyft.com/de/developers/reference/page-api/

> Aktiviere und deaktiviere Pages aus deinem eigenen Code mit dem API-Trigger.



Eine **Page** in ABlyft legt fest, auf welchen URLs ein Experiment läuft. Normalerweise prüft ABlyft Pages automatisch. Mit dem
**API**-Trigger entscheidest du selbst, wann eine Page geprüft wird, indem du das Snippet aus deinem Code aufrufst. Das ist nützlich, wenn ein
Zustand deiner Website nicht an der URL erkennbar ist, zum Beispiel ein Schritt im Checkout, der die Adresse nicht ändert.

Zum Konzept von Pages und URL-Regeln siehe [Pages & URL-Targeting](https://docs.ablyft.com/de/guides/audiences-and-delivery/pages/).

## Eine Page für die API einrichten

1. Öffne die Page (in deinem Project unter **Pages**) und suche den Bereich **Trigger**.
2. Wähle bei **Trigger** die Option **API (manual activation by an API / JavaScript call)**.
3. Öffne **Advanced Settings** und prüfe den **API Name**. Er darf Buchstaben, Zahlen, Bindestriche und Unterstriche enthalten und muss im
   Project eindeutig sein. Dieser Name identifiziert die Page in deinem Code.
4. Kopiere den Code aus **API trigger code**. Er aktualisiert sich mit dem API Name, den du eingibst.

```html
<script>
window['ablyft'] = window['ablyft'] || [];
window['ablyft'].push({
    eventType: 'activatePage',
    pageApiName: 'checkout-step-2'
});
</script>
```

`checkout-step-2` ist ein Beispiel für einen API Name.

> Das Feld **API Name** wird bei jedem Trigger angezeigt, daher kannst du `activatePage` auch für Pages mit einem anderen Trigger aufrufen.
> Der **API trigger code** wird nur angezeigt, wenn der Trigger **API** ist.

## Eine Page aktivieren

Rufe `activatePage` mit dem API Name oder der ID der Page auf. Wenn du beides übergibst, wird die ID verwendet.

```js
// By API name
ablyft.push({ eventType: 'activatePage', pageApiName: 'checkout-step-2' });

// By ID
ablyft.push({ eventType: 'activatePage', pageId: 12345678 });
```

Beim Aufruf prüft das Snippet wie gewohnt die URL-Regeln und Bedingungen der Page. Wenn sie zutreffen, wird die Page aktiv,
ihre Pageview-Goals werden ausgelöst und die Experiments auf der Page werden ausgewertet. Ist die Page bereits aktiv, wird der Aufruf
ignoriert.

Existiert die Page nicht, wird ein Fehler in der Konsole protokolliert.

## Eine Page deaktivieren

```js
ablyft.push({ eventType: 'deactivatePage', pageApiName: 'checkout-step-2' });
```

Was passiert, hängt vom [Deactivation Mode](https://docs.ablyft.com/de/guides/audiences-and-delivery/pages/#deactivation-mode) der Page ab. Das Reset-
JavaScript ihrer Experiments läuft in den Modi **Reset** und **Force-reset**. Im Modus **Persistent** hat ein `deactivatePage`-Aufruf
keine Wirkung: Die Page wird nie deaktiviert.

## Aufruf vor dem Laden des Snippets

`push`-Aufrufe funktionieren bereits, bevor das Snippet geladen ist, weil sie in eine Warteschlange gestellt werden. Siehe
[die JavaScript API](https://docs.ablyft.com/de/developers/reference/javascript-api/#use-the-api-before-the-snippet-has-loaded).

## Reference

Siehe [`activatePage` / `deactivatePage`](https://docs.ablyft.com/de/developers/reference/javascript-api/push/#activatepage) in der `push`-Reference.

## Nächste Schritte

- [SPA navigation](https://docs.ablyft.com/de/developers/application-integration/spa-navigation/): Single-Page-Apps und andere Page-Trigger.
- [ablyft.push()](https://docs.ablyft.com/de/developers/reference/javascript-api/push/): Alle Event-Typen.

