# Werbemittel API

# Admedia API (V6) - POST (Create)

## Einleitung
Um Werbemittel nicht manuell, sondern durch einen automatisierten Prozess im easy.affiliate-System zu erstellen, stellt die easy Marketing GmbH eine Webservice-API bereit. Hierfür steht jedem User ein Authentifizierungs-Token und eine Login_id zur Verfügung. Der Authentifizierungs-Token sowie die Login_id werden dem User über das Frontend bereitgestellt.

**User-ID:** Wo ist die User-ID hinterlegt?

**Access-Token:** Wo ist der Access-Token hinterlegt?

**Endpoint für Admin:**

https://SUBDOMAIN.de/ws/V6/admin/JSON/Admedia

**Endpoint für Advertiser:**

https://SUBDOMAIN.de/ws/V6/advertiser/JSON/Admedia

---

### Beispiel mit cURL

```text
curl -X POST -H "Content-Type: application/json" -H "X-Network-ID: -1" -H "X-Auth-Token: ADMIN_APIUSER_TOKEN" -H "X-Auth-ID: ADMIN_APIUSER_LOGIN_ID" -d "$EXAMPLE_JSON_DATA" <https://DOMAIN/ws/V6/admin/JSON/Admedia>
```
---

### Codebeispiel
Mit der folgenden Methode können Werbemittel erstellt werden. Ein Beispielaufruf sieht folgendermaßen aus:

**Headers:**

```text
Content-Type: application/json
X-Network-ID: -1
X-Auth-Token: ADMIN_APIUSER_TOKEN
X-Auth-ID: ADMIN_APIUSER_LOGIN_ID
```

**Body:**

```text
{
    "campaign_id": 1,
    "project_ids": [50012],
    "title": "Werbemittel Titel",
    "deeplink": "https://example.de/link",
    "category_id": 5,
    "mediatype": "text",
    "linktext": "Klicken Sie hier",
    "status": 1
}
```
---

## Variablenerläuterung

### Headers

| Variable | Bedeutung | Datentyp |
| :--- | :--- | :--- |
| **Content-Type** | Der Content-Type des Requests | String |
| **X-NETWORKID** | ID des Mandanten oder "-1" | Integer |
| **X-AUTH-TOKEN** | API-Authentifizierungs-Token des Admin Nutzers | String |
| **X-AUTH-ID** | ID des Admin Nutzers | Integer |

---

### Body

| Parameter | Erklärung | Datentyp | Pflichtfeld |
| :--- | :--- | :--- | :--- |
| **campaign_id** | ID der Kampagne | Integer | Ja |
| **project_ids** | Whitelist von Projekt-IDs | JSON-ARRAY | Nein |
| **title** | Titel des Werbemittels | String | Ja |
| **deeplink** | Deeplink des Werbemittels | String | Ja |
| **category_id** | ID der Kategorie | Integer | Ja |
| **click_tracking_getparameter** | Click Tracking Parameter | String | Nein |
| **valid_from** | Gültig ab Datum | String | Nein |
| **valid_until** | Gültig bis Datum | String | Nein |
| **mediatype** | Typ des Werbemittels (z.B. text, banner) | String | Ja |
| **linktext** | Linktext (nur bei mediatype = text) | String | Ja, wenn Typ “text” |
| **imageurl** | Bild-URL (nur bei mediatype = banner) | String | Ja, wenn Typ “banner” |
| **size_width** | Breite des Banners | String | Ja, wenn Typ “banner” |
| **size_height** | Höhe des Banners | String | Ja, wenn Typ “banner” |
| **status** | Status des Werbemittels | Integer | Ja |


---

### Response

Nach erfolgreicher Erstellung gibt die API folgende Informationen als JSON zurück:

- Werbemittel-ID: Integer

- Werbemittel-Titel: String

- Werbemittel-Kategorie: String

- View-Link: String

- Click-Link: String

- View-Link (Shortener): String 

- Click-Link (Shortener): String 

- Adcode: String

# Admedia API (V6) - GET (Read)

## Abfrage generierter Werbemittel über die V6 REST-API

Um eine einfache und effiziente Verwaltung der generierten Werbemittel zu gewährleisten, stellt die V6 REST-API eine Abfragefunktion zur Verfügung. Mit dieser Funktion können Nutzer relevante Daten zu den Werbemitteln und den zugehörigen Trackinglinks abrufen.

## Endpoint
**Für Admins:**
`<https://SUBDOMAIN.de/ws/V6/admin/JSON/Admedia>`

**Erforderliche Parameter:**
- `campaign_id`: ID der betreffenden Kampagne (Pflichtfeld)

- `project_id`: ID des betreffenden Projekts (Optional)

### Beispielaufruf mit cURL

```text
curl -X GET -H "Content-Type: application/json" -H "X-Network-ID: -1" -H "X-Auth-Token: ADMIN_APIUSER_TOKEN" -H "X-Auth-ID: ADMIN_APIUSER_LOGIN_ID" <https://DOMAIN/ws/V6/admin/JSON/Admedia?params[campaign_id]=1&params[project_id]=50001>
```

### Erwartete Antwort
Nach erfolgreichem Aufruf gibt die API die folgenden Informationen zu den Werbemitteln im JSON-Format zurück:

- **id**: ID des Werbemittels (Integer)

- **title**: Titel des Werbemittels (String)

- **campaign_id**: ID der zugeordneten Kampagne (Integer)

- **project_id**: ID des zugeordneten Projekts (Integer, falls angegeben)

- **clicklink**: Clicklink des Werbemittels (String)

- **viewlink**: Viewlink des Werbemittels (String)

- **adcode**: Javascriptcode/HTML-Code des Trackinglinks (String)

## Fehlerbehandlung
Bei fehlendem oder ungültigem `campaign_id` wird ein entsprechender Fehler zurückgegeben.

Bei nicht vorhandenen Daten für die angegebenen Parameter wird ein leerer Datensatz zurückgegeben.