Geräte-API
Die Geräte-API registriert Geräte in einer Pushwoosh-Anwendung und erfasst ihre Aktivität: Tag-Werte, App-Öffnungen, Push-Öffnungen und Push-Zustellungen. Das Pushwoosh SDK ruft die meisten dieser Methoden automatisch auf. Rufen Sie sie daher direkt auf, wenn Sie Geräte von Ihrem eigenen Server oder einem benutzerdefinierten Client aus verwalten. Um viele Geräte in einer Anfrage zu registrieren oder zu taggen, verwenden Sie die Audience API.
registerDevice
Anchor link toPOST https://api.pushwoosh.com/json/1.3/registerDevice
Wird intern vom SDK aufgerufen. Registriert das Gerät für die Anwendung.
Anfrage-Header
Anchor link to| Name | Erforderlich | Wert | Beschreibung |
|---|---|---|---|
| Authorization | Ja | Token XXXX | API-Geräte-Token für den Zugriff auf die Geräte-API. Ersetzen Sie XXXX durch Ihr tatsächliches API-Geräte-Token. |
Anfrage-Body
Anchor link to| Name | Typ | Beschreibung |
|---|---|---|
| application* | string | Pushwoosh-Anwendungscode |
| push_token | string | Push-Token für das Gerät. |
| language | string | Sprach-Locale des Geräts. Muss ein zweibuchstabiger Kleinbuchstabencode gemäß dem ISO-639-1-Standard sein. |
| hwid* | string | Eindeutige Zeichenfolge zur Identifizierung des Geräts (IDFV bei iOS, zufällig generierter Wert bei Android). Mehr erfahren |
| timezone | integer | Zeitzonen-Offset in Sekunden für das Gerät. |
| device_type* | integer | Gerätetyp. Siehe mögliche Werte unten. |
| string | E-Mail-Adresse zur Registrierung (für E-Mail-Benutzer anstelle von HWID und Push-Token verwenden). | |
| tags | object | Tag-Werte, die dem registrierten Gerät zugewiesen werden sollen. |
{ "status_code": 200, "status_message": "OK", "response": null}{ "request": { "application": "XXXXX-XXXXX", // erforderlich. Pushwoosh-Anwendungscode "push_token": "dec301908b9ba8XXXXX57a58e40f96f5XXXXX2068674f5XXXXa25cdc250a2a41", // optional. "hwid": "1CA6XXXXX-8DAC-XXXXX-XXXXX-B756288B6D3C", // erforderlich. Hardware-Geräte-ID "idfa": "AEBE52E7-0XXXXX-455A-XXXXX-E57283966239", // optional. "timezone": 3600, // optional. Offset in Sekunden "device_type": 1, // erforderlich. Siehe die möglichen Werte unten. Für E-Mails, // verwenden Sie die "emails"-Parameter wie unten beschrieben. "email": "email_address@domain.com", // anstelle von "hwid" und "push_token" verwenden, um // die E-Mail-Adresse für Ihr E-Mail-Projekt zu registrieren "language": "en", // optional. ISO 639-1|639-2 Sprachcode "userId": "Alex", // optional. "tags": { // optional. Tag-Werte, die für das registrierte Gerät festgelegt werden sollen "StringTag": "string value", "IntegerTag": 42, "ListTag": ["string1", "string2"], // legt die Liste der Werte für Tags vom Typ Liste fest "DateTag": "2024-10-02 22:11", // beachten Sie, dass die Zeit in UTC sein sollte "BooleanTag": true // gültige Werte sind: true, false },
// System-Tags, optional "app_version": "1.2.3", "device_model": "Samsung SM-G355H", "os_version": "2.3",
// optionale Verschlüsselungsschlüssel für Chrome/Firefox "public_key": "BNmDO4BTKEMJqaqprTf7t/HBXXXXX/orcXXXXX/scS5CFP6XXXXXHI1/GgRQD8c4kTxTEEF0quvIUiLQqoBY0/Qo=", "auth_token": "RlRmCXXXXX/s7XXXXXjKFzoQ==",
// optionale FCM-Schlüssel für Chrome (für XMPP) "fcm_token": "BNmDO4BTKEMJXXXXXprTf7t/XXXXXBQ/orXXXXXc/scS5CFP6zhQGIHI1/GgRQD8c4kTxTEEF0quvIUiLQqoBY0/Qo=", "fcm_push_set": "RlXXXXXGM/s7XXXXXjKFzoQ==" }}Mögliche Gerätetypen:
- 1 – iOS
- 3 – Android
- 7 – Mac OS X
- 8 – Windows
- 9 – Amazon
- 10 – Safari
- 11 – Chrome
- 12 – Firefox
- 13 – Internet Explorer
- 14 – E-Mail
- 17 – Huawei
- 18 – SMS
- 20 – Web
- 21 – WhatsApp
- 22 – Line
- 23 – Kakao Talk
- 24 – Telegram
- 25 – Apple Wallet
- 26 – Google Wallet
- 27 – Viber
Registrierung von E-Mail-Geräten
Anchor link toUm einen E-Mail-Abonnenten für Ihre App zu registrieren, senden Sie den Parameter "email": "email_address@domain.com" in Ihrer /registerDevice- oder /registerEmail-Anfrage wie folgt:
Anfragebeispiel
Anchor link to{ "request":{ "application": "XXXXX-XXXXX", // erforderlich. Pushwoosh-Anwendungscode "email": "email_address@domain.com", // erforderlich. E-Mail-Adresse zur Registrierung für Ihr E-Mail-Projekt "language": "en", // optional. ISO 639-1|639-2 Sprachcode "userId": "Alex", // optional. "tags": { // optional. Tag-Werte, die für das registrierte Gerät festgelegt werden sollen "StringTag": "string value", "IntegerTag": 42, "ListTag": ["string1", "string2"], // legt die Liste der Werte für Tags vom Typ Liste fest "DateTag": "2024-10-02 22:11", // beachten Sie, dass die Zeit in UTC sein sollte "BooleanTag": true // gültige Werte sind: true, false } }}Registrierung von WhatsApp-Geräten
Anchor link toUm ein WhatsApp-Gerät für Ihre App zu registrieren, befolgen Sie diese Richtlinien:
-
hwid: Stellen Sie sicher, dass dieses Feld das Präfix
whatsapp:gefolgt von der Telefonnummer im E.164-Format enthält (z. B.whatsapp:+0000000000). Die Telefonnummer muss gültig sein, was Pushwoosh überprüfen wird. -
Push-Token: Ein Push-Token ist nicht erforderlich, da die
hwidautomatisch als Push-Token fungiert. -
device_type: Setzen Sie dieses Feld auf
21, um WhatsApp als Plattform anzugeben.
Anfragebeispiel
Anchor link to{ "request": { "application": "XXXXX-XXXXX", // erforderlich. Pushwoosh-Anwendungscode "hwid": "whatsapp:+0000000000", // erforderlich. WhatsApp-Präfix und gültige Telefonnummer "timezone": 3600, // optional. Zeitversatz in Sekunden "device_type": 21, // erforderlich. WhatsApp-Gerätetyp ist 21 "language": "en", // optional. ISO 639-1|639-2 Sprachcode "userId": "Alex", // optional. Benutzerkennung "tags": { // optional. Tag-Werte für benutzerdefinierte Segmentierung "StringTag": "string value", "IntegerTag": 42, "ListTag": ["string1", "string2"], "DateTag": "2024-10-02 22:11", // UTC-Format "BooleanTag": true }, "app_version": "1.2.3", // optional. Anwendungsversion "device_model": "Samsung SM-G355H", // optional. Gerätemodell "os_version": "2.3" // optional. Betriebssystemversion }}Registrierung von SMS-Geräten
Anchor link toUm ein SMS-Gerät für Ihre App zu registrieren, befolgen Sie diese Richtlinien:
-
hwid: Stellen Sie sicher, dass dieses Feld die Telefonnummer im E.164-Format enthält (z. B.
+0000000000). Die Telefonnummer muss gültig sein, was Pushwoosh überprüfen wird. -
Push-Token: Ein Push-Token ist nicht erforderlich, da die
hwidautomatisch als Push-Token fungiert. -
device_type: Setzen Sie dieses erforderliche Feld auf
18, um SMS als Plattform zu bestimmen.
Anfragebeispiel
Anchor link to{ "request": { "application": "XXXXX-XXXXX", // erforderlich. Pushwoosh-Anwendungscode "hwid": "+0000000000", // erforderlich. Gültige Telefonnummer im E.164-Format "timezone": 3600, // optional. Zeitversatz in Sekunden "device_type": 18, // erforderlich. SMS-Gerätetyp ist 18 "language": "en", // optional. ISO 639-1|639-2 Sprachcode "userId": "Alex", // optional. Benutzerkennung "tags": { // optional. Tag-Werte für benutzerdefinierte Segmentierung "StringTag": "string value", "IntegerTag": 42, "ListTag": ["string1", "string2"], "DateTag": "2024-10-02 22:11", // UTC-Format "BooleanTag": true }, "app_version": "1.2.3", // optional. Anwendungsversion "device_model": "Samsung SM-G355H", // optional. Gerätemodell "os_version": "2.3" // optional. Betriebssystemversion }}Statuscodes:
| HTTP-Statuscode | status_code | Beschreibung |
|---|---|---|
| 200 | 200 | Gerät erfolgreich registriert |
| 200 | 210 | Argumentfehler. Siehe status_message für weitere Informationen. |
| 400 | N/A | Fehlerhafte Anfragezeichenfolge |
| 500 | 500 | Interner Fehler |
unregisterDevice
Anchor link toPOST https://api.pushwoosh.com/json/1.3/unregisterDevice
Entfernt das Push-Token des Geräts. Das abgemeldete Gerät wird weiterhin in den Gesamtgeräten gezählt und kann mit In-Apps erreicht werden. Wird intern vom SDK aufgerufen.
Anfrage-Header
Anchor link to| Name | Erforderlich | Wert | Beschreibung |
|---|---|---|---|
| Authorization | Ja | Token XXXX | API-Geräte-Token für den Zugriff auf die Geräte-API. Ersetzen Sie XXXX durch Ihr tatsächliches API-Geräte-Token. |
Anfrage-Body
Anchor link to| Name | Typ | Beschreibung |
|---|---|---|
| application* | string | Pushwoosh-Anwendungscode |
| hwid* | string | Hardware-Geräte-ID, die in der /registerDevice-Anfrage verwendet wurde. |
{ "status_code": 200, "status_message": "OK", "response": null}{ "request": { "application": "XXXXX-XXXXX", // erforderlich. Pushwoosh-Anwendungscode "hwid": "8f65b16XXXXXe7a6beceXXXXX530fb2" // erforderlich. Hardware-Geräte-ID, die in der /registerDevice-API verwendet wurde }}Statuscodes:
| HTTP-Statuscode | status_code | Beschreibung |
|---|---|---|
| 200 | 200 | Gerät erfolgreich abgemeldet |
| 200 | 210 | Argumentfehler. Siehe status_message für weitere Informationen. |
| 400 | N/A | Fehlerhafte Anfragezeichenfolge |
| 500 | 500 | Interner Fehler |
deleteDevice
Anchor link toPOST https://api.pushwoosh.com/api/v2/device-api/deleteDevice
Löscht ein Gerät und alle zugehörigen Daten, die durch die angegebene HWID innerhalb der Anwendung identifiziert werden. Im Gegensatz zu /unregisterDevice, das nur das Push-Token entfernt und den Gerätedatensatz beibehält, entfernt /deleteDevice das Gerät vollständig. Die Anfrage wird asynchron verarbeitet, und der Endpunkt gibt 200 OK zurück, sobald die Löschanfrage zur Verarbeitung angenommen wurde.
Anfrage-Header
Anchor link to| Name | Erforderlich | Wert | Beschreibung |
|---|---|---|---|
| Authorization | Ja | Token XXXX | API-Geräte-Token für den Zugriff auf die Geräte-API. Ersetzen Sie XXXX durch Ihr tatsächliches API-Geräte-Token. |
| Content-Type | Ja | application/json |
Anfrage-Body
Anchor link to| Name | Erforderlich | Typ | Beschreibung |
|---|---|---|---|
| application | Ja | string | Pushwoosh-Anwendungscode |
| hwid | Ja | string | Hardware-Geräte-ID des zu löschenden Geräts. |
Anfragebeispiel
Anchor link to{ "application": "XXXXX-XXXXX", // erforderlich. Pushwoosh-Anwendungscode "hwid": "8f65b16df378e7a6bece9614e1530fb2" // erforderlich. Hardware-Geräte-ID des zu löschenden Geräts}Antwortbeispiel
Anchor link to{ "status_code": 200, "status_message": "OK", "response": null}Statuscodes
Anchor link to| HTTP-Statuscode | status_code | Beschreibung |
|---|---|---|
| 200 | 200 | Löschanfrage angenommen |
| 200 | 210 | Argumentfehler. Siehe status_message für weitere Informationen. |
| 400 | N/A | Fehlerhafte Anfragezeichenfolge |
| 401 | N/A | Fehlendes oder ungültiges Autorisierungs-Token |
| 500 | 500 | Interner Fehler |
setTags
Anchor link toPOST https://api.pushwoosh.com/json/1.3/setTags
Setzt Tag-Werte für das Gerät. Wird vom SDK aufgerufen.
Anfrage-Header
Anchor link to| Name | Erforderlich | Wert | Beschreibung |
|---|---|---|---|
| Authorization | Ja | Token XXXX | API-Geräte-Token für den Zugriff auf die Geräte-API. Ersetzen Sie XXXX durch Ihr tatsächliches API-Geräte-Token. |
Anfrage-Body
Anchor link to| Name | Typ | Beschreibung |
|---|---|---|
| application* | string | Pushwoosh-Anwendungscode |
| hwid* | string | Hardware-Geräte-ID, die in der /registerDevice-Anfrage verwendet wurde. |
| tags* | object | JSON-Objekt der zu setzenden Tags, senden Sie “null”, um den Wert zu entfernen. |
{ "status_code": 200, "status_message": "OK", "response": null}{ "request":{ "application": "XXXXX-XXXXX", // erforderlich. Pushwoosh-Anwendungscode "hwid": "8f65b16XXXXXe7a6becXXXXXe1530fb2", // erforderlich. Hardware-Geräte-ID, die in der /registerDevice-API verwendet wurde "tags": { // erforderlich. "StringTag": "string value", "IntegerTag": 42, "ListTag": ["string1", "string2"], // legt die Liste der Werte für Tags vom Typ Liste fest "DateTag": "2024-10-02 22:11", // beachten Sie, dass die Zeit in UTC ist "BooleanTag": true // gültige Werte sind - true, false } }}Integer-Tag-Werte inkrementieren
Anchor link toUm einen Wert des Integer-Tags zu inkrementieren, verwenden Sie den operation-Parameter mit dem Wert “increment” wie folgt:
{ "request":{ "application": "12345-67890", // erforderlich. Pushwoosh-Anwendungscode "hwid": "21AB7628-XXXX-XXXX-CCC0-PO287CS24CA4", // erforderlich. Hardware-Geräte-ID, die in der /registerDevice-API verwendet wurde "tags": { // erforderlich. "Level": { // Tag-Name "operation": "increment", // überschreibt das Integer-Tag in Schritten des folgenden Werts "value": 1 // Inkrement für den Tag-Wert } } }}Integer-Tag-Werte dekrementieren
Anchor link toUm zu dekrementieren, verwenden Sie negative Zahlen als Wert für die “increment”-Operation (-1, -2, -3,-n):
{ "request":{ "application": "12345-67890", // erforderlich. Pushwoosh-Anwendungscode "hwid": "21AB7628-XXXX-XXXX-CCC0-PO287CS24CA4", // erforderlich. Hardware-Geräte-ID, die in der /registerDevice-API verwendet wurde "tags": { // erforderlich "Level": { // Tag-Name "operation": "increment", // überschreibt das Integer-Tag in Dekrementen des folgenden Werts "value": -1 // Dekrement für den Tag-Wert } } }}Listen-Tag-Werte anhängen
Anchor link toUm das Listen-Tag mit neuen Werten zu erweitern, verwenden Sie den operation-Parameter mit dem Wert “append” wie folgt:
{ "request": { "hwid": "3d124a79XXXXf189XXXX7dfd9XXXXafd", // erforderlich. Hardware-Geräte-ID, die in der /registerDevice-API verwendet wurde "application": "6XXXX-XXXX3", // erforderlich. Pushwoosh-Anwendungscode "tags": { // erforderlich. "ListTag": { // Tag-Name "operation": "append", // hängt die folgenden Werte an die Werteliste des Tags an "value": [ // anzuhängende Werte "tag2", "tag3" ] } } }}Listen-Tag-Werte entfernen
Anchor link toUm einige Werte aus dem Listen-Tag zu entfernen, verwenden Sie die “remove”-Operation wie folgt:
{ "request":{ "application": "12345-67890", // erforderlich. Pushwoosh-Anwendungscode "hwid": "21AB7628-XXXX-XXXX-CCC0-PO287CS24CA4", // erforderlich. Hardware-Geräte-ID, die in der /registerDevice-API verwendet wurde "tags": { // erforderlich. "In-app Product": { // Tag-Name "operation": "remove", // entfernt die folgenden Werte aus dem Listen-Tag "value": "outwear_02" // zu entfernender Wert oder Werte } } }}Tags nach UserID setzen
Anchor link toUm Tags für alle Geräte zu setzen, die einer bestimmten User ID zugeordnet sind, verwenden Sie den “userId”-Parameter anstelle von “hwid”.
{ "request":{ "application": "AAAAA-BBBBB", // Pushwoosh-App-Code "userId": "some_user", // User-ID, für die Sie Tags setzen möchten "tags": { // zu setzende Tags und Werte "Language": "es" } }}Statuscodes:
| HTTP-Statuscode | status_code | Beschreibung |
|---|---|---|
| 200 | 200 | Tags wurden erfolgreich gesetzt |
| 200 | 210 | Argumentfehler. Siehe status_message für weitere Informationen. |
| 400 | N/A | Fehlerhafte Anfragezeichenfolge |
| 500 | 500 | Interner Fehler |
getTags
Anchor link toPOST https://api.pushwoosh.com/json/1.3/getTags
Ruft eine Liste von Tags mit den entsprechenden Werten für das spezifische Gerät ab.
Anfrage-Header
Anchor link to| Name | Erforderlich | Wert | Beschreibung |
|---|---|---|---|
| Authorization | Ja | Token XXXX | API-Geräte-Token für den Zugriff auf die Geräte-API. Ersetzen Sie XXXX durch Ihr tatsächliches API-Geräte-Token. |
Anfrage-Body
Anchor link to| Name | Typ | Beschreibung |
|---|---|---|
| application* | string | Pushwoosh-Anwendungscode |
| userId | string | User ID, die anstelle von “hwid” verwendet werden soll. Wenn zusammen mit einer “hwid” verwendet, hat die “hwid” Vorrang. |
| hwid | string | Hardware-Geräte-ID, die in der /registerDevice-Anfrage verwendet wurde. |
{ "status_code": 200, "status_message": "OK", "response": { "result": { "Language": "fr" } }}{ "request":{ "application": "XXXXX-XXXXX", // erforderlich. Pushwoosh-Anwendungscode "hwid": "HWID", // optional. Hardware-Geräte-ID, die in der /registerDevice-API verwendet wurde "userId": "USER_ID" // optional. Kann anstelle von "hwid" verwendet werden, um Tags für einen bestimmten Benutzer abzurufen }}setBadge
Anchor link toPOST https://api.pushwoosh.com/json/1.3/setBadge
Anfrage-Header
Anchor link to| Name | Erforderlich | Wert | Beschreibung |
|---|---|---|---|
| Authorization | Ja | Token XXXX | API-Geräte-Token für den Zugriff auf die Geräte-API. Ersetzen Sie XXXX durch Ihr tatsächliches API-Geräte-Token. |
Anfrage-Body
Anchor link to| Name | Typ | Beschreibung |
|---|---|---|
| application* | string | Pushwoosh-Anwendungscode |
| hwid* | string | Hardware-Geräte-ID, die in der /registerDevice-Anfrage verwendet wurde. |
| badge* | integer | Aktueller Badge der Anwendung. |
{ "status_code": 200, "status_message": "OK"}{ "request":{ "application": "XXXXX-XXXXX", // erforderlich. Pushwoosh-Anwendungscode "hwid": "8f65b16dXXXXe7a6XXXX9614XXXX0fb2", // erforderlich. Hardware-Geräte-ID, die in der /registerDevice-API verwendet wurde "badge": 4 // erforderlich. Aktueller Badge der Anwendung }}Diese Methode wird NICHT verwendet, um den Badge-Wert auf dem Gerät zu aktualisieren. Bitte verwenden Sie stattdessen die /createMessage-Anfrage mit dem "ios_badges"-Parameter.
applicationOpen
Anchor link toPOST https://api.pushwoosh.com/json/1.3/applicationOpen
Registriert ein App-Öffnungsereignis. Wird intern vom SDK aufgerufen.
Anfrage-Header
Anchor link to| Name | Erforderlich | Wert | Beschreibung |
|---|---|---|---|
| Authorization | Ja | Token XXXX | API-Geräte-Token für den Zugriff auf die Geräte-API. Ersetzen Sie XXXX durch Ihr tatsächliches API-Geräte-Token. |
Anfrage-Body
Anchor link to| Name | Typ | Beschreibung |
|---|---|---|
| application* | string | Pushwoosh-Anwendungscode |
| hwid* | string | Hardware-Geräte-ID, die in der /registerDevice-Anfrage verwendet wurde. |
{ "status_code": 200, "status_message": "OK"}{ "request": { "application": "XXXXX-XXXXX", // erforderlich. Pushwoosh-Anwendungscode "hwid": "8f65b16dXXXXe7a6XXXX9614eXXXXfb2" // erforderlich. Hardware-Geräte-ID, die in der /registerDevice-API verwendet wurde }}pushStat
Anchor link toPOST https://api.pushwoosh.com/json/1.3/pushStat
Registriert ein Push-Öffnungsereignis. Wird intern vom SDK aufgerufen.
Anfrage-Header
Anchor link to| Name | Erforderlich | Wert | Beschreibung |
|---|---|---|---|
| Authorization | Ja | Token XXXX | API-Geräte-Token für den Zugriff auf die Geräte-API. Ersetzen Sie XXXX durch Ihr tatsächliches API-Geräte-Token. |
Anfrage-Body
Anchor link to| Name | Typ | Beschreibung |
|---|---|---|
| application* | string | Pushwoosh-Anwendungscode |
| hwid* | string | Hardware-Geräte-ID, die in der /registerDevice-Anfrage verwendet wurde. |
| userId | string | User ID, die mit dem Push-Öffnungsereignis verknüpft werden soll. |
| hash | string | Hash-Tag, das in der Push-Benachrichtigung empfangen wurde (“p”-Parameter der Push-Payload). |
{ "status_code": 200, "status_message": "OK", "response": null}{ "request": { "application": "XXXXX-XXXXX", // erforderlich. Pushwoosh-Anwendungscode "hwid": "8f65b16dfXXXX7a6beXXXX14e1530fb2", // erforderlich. Hardware-Geräte-ID, die in der /registerDevice-API verwendet wurde "userId": "USER012345", // optional. Die User-ID, die mit dem Push-Öffnungsereignis verknüpft werden soll "hash": "HASH_TAG" // optional. Hash-Tag, das in der Push-Benachrichtigung empfangen wurde // ("p"-Parameter in der Push-Payload) }}messageDeliveryEvent
Anchor link toPOST https://api.pushwoosh.com/json/1.3/messageDeliveryEvent
Registriert ein Push-Zustellungsereignis für das Gerät. Wird intern vom SDK aufgerufen.
Anfrage-Header
Anchor link to| Name | Erforderlich | Wert | Beschreibung |
|---|---|---|---|
| Authorization | Ja | Token XXXX | API-Geräte-Token für den Zugriff auf die Geräte-API. Ersetzen Sie XXXX durch Ihr tatsächliches API-Geräte-Token. |
Anfrage-Body
Anchor link to| Name | Typ | Beschreibung |
|---|---|---|
| application* | string | Pushwoosh-Anwendungscode |
| hwid* | string | Hardware-Geräte-ID, die in der /registerDevice-Anfrage verwendet wurde. |
| hash | string | Hash-Tag, das in der Push-Benachrichtigung empfangen wurde (“p”-Parameter der Push-Payload). |
{ "status_code": 200, "status_message": "OK", "response": null} { "request": { "application": "XXXXX-XXXXX", // erforderlich. Pushwoosh-Anwendungscode "hwid": "8f65b16dfXXXX7a6bece9XXXX1530fb2", // erforderlich. Hardware-Geräte-ID, die in der /registerDevice-API verwendet wurde "hash": "HASH_TAG" // optional. Hash-Tag, das in der Push-Benachrichtigung empfangen wurde // ("p"-Parameter in der Push-Payload) }}