Import-Schnittstelle Anzeigen
Die Anzeigendaten können wahlweise über einen XML-Datei-Import (Hotfolder) oder über einen REST Webservice als JSON- oder XML-Struktur übergeben werden.
Import Hotfolder
Folgende Konfigurationseinträge sind verfügbar:
Schalter | Optional | Bedeutung/Wert | Anmerkung |
|---|---|---|---|
portal.imports.importer-enabled | N | true/false | De-/Aktivierung des Importers |
portal.imports.import-points[0].name | N | 'Auftragsbearbeitung' | Der Name für den Importpoint |
portal.imports.import-points[0].component-name | N | AdvertImportModule | Klassenname des Importmoduls |
portal.imports.import-points[0].initial-delay | J | 15 | Wartezeit in Sekunden bevor der erste Import startet |
portal.imports.import-points[0].interval | J | 20 | Poll-Abstand in Sekunden |
portal.imports.import-points[0].parameters.input-directory | N | Eingangs-/Poll-Verzeichnis für Gestaltungsaufträge (*.xml) und Motivdateien | |
portal.imports.import-points[0].parameters.error-directory | N | Fehlerverzeichnis; Neben den Dateien aus dem Eingangsverzeichnis wird hier eine | |
portal.imports.import-points[0].parameters.archive-directory | N | Archivverzeichnis | |
portal.imports.import-points[0].parameters.xsl-transformation | J | Transformationsvorschrift (.xsl) vom Eingangsformat zum Importformat |
Beispielhafte Konfiguration
portal:
imports:
# Aktivierung des Importes
importer-enabled: true
import-points:
-
name: 'Anzeigenimport'
enabled: true
component-name: AdvertImportModule
initial-delay: 15
interval: 20
parameters:
input-directory: D:/HupOne/hup-portal-intelliJ/Anzeigenimport/input
error-directory: D:/HupOne/hup-portal-intelliJ/Anzeigenimport/error
archive-directory: D:/HupOne/hup-portal-intelliJ/Anzeigenimport/archive
# Transformationsdatei (XSL)
#xsl-transformation: Import über Rest-Schnittstelle
URL: Hostname:Port/service/public/designorder/import
Methoden:
Import / Update einer Anzeige
POST
Body-Content-Typ: multipart/formdata
Text-Part "advert" als JSON (application/json) oder XML-Format (application/xml)
Array von File-Parts "assetData" für Motive
Die Dateinamen müssen mit den Attributen NormalAssetFileName, TabletAssetFileName und MobileAssetFileName in der XML- bzw. JSON-Struktur korrespondieren.
Stornierung einer Anzeige
DELETE
Parameter: orderNo
Attributen der Importstruktur
JSON-Attribut | XML | Datentyp / Wertebereich / Format | Pflicht | Beschreibung |
|---|---|---|---|---|
cancelled | Attribut von Advert | boolean | nein | Default false, Wenn true wird nur das Attribut orderNo ausgewertet und die Anzeige storniert. Dieses Attribut ist für die XML-Datei-Schnittstelle vorsehen, funktioniert aber auch bei der POST-Methode über Rest als Alternative zu DELETE |
orderNo | Advert.OrderNo | String | ja | Freitext; Auftrags bzw. Anzeigennummer; Diese muss eindeutig sein. |
description | Advert.Description | String | ja | Freitext; Beschreibung |
customer | Advert.Customer | String | nein | Freitext; Kundenname |
| Advert.StartDate | "yyyy-MM-dd" | nein | Startdatum für Gültigskeitszeitraum |
endDate | Advert.EndDate | "yyyy-MM-dd" | nein | Enddatum für Gültigskeitszeitraum |
| Advert.Priority | int (0 -100) | ja | Priorität |
| Advert.MaxImpressions | int (>= 0) | nein | Maximale Anzahl der Impressions |
maxClicks | Advert.MaxClicks | int (>= 0) | nein | Maximale Anzahl der Klicks |
|
| Mögliche Werte: "BANNER", "BUTTON", "TITLE_HEADER", "VERTICAL_BANNER" | nein | Zugeordnete Anzeigentypen im Portal |
|
| String (Tagname) | nein | Anzeigekriterien für Stichworte der Seite |
|
| String (Tagname) | nein | Ausschlusskriterien für Stichworte der Seite |
|
| String (Ressortname) | nein | Anzeigekriterien für Ressorts der Seite |
|
| String (Ressortname) | nein | Ausschlusskriterien für Ressorts der Seite |
| Advert.ValidLocations.Location | String (Ortsname) | nein | Anzeigekriterien für Orte der Seite |
| Advert.InvalidLocations.Location | String (Ortsname) | nein | Ausschlusskriterien für Orte der Seite |
|
| String (Name der Region) | nein | Anzeigekriterien für Regionen der Seite |
validGeoRegions[] | Advert.ValidGeoRegions.GeoRegion | String (Name der Region) | nein | Ausschlusskriterien für Regionen der Seite |
|
| String (URL) | ja | Link der Anzeige |
|
| String | ja | Dateiname der Standardmotivs |
|
| String | nein | Dateiname des Motivs für Tabletts |
|
| String | nein | Dateiname des Motivs für Smartphones |
placement | Advert.Placement | String | nein | Positioniierung bei Hochformatbanner |
name | Advert.Name | String | nein | Anzeige Kundenname |
Advert.Mail | String | nein | Kunden E-Mail | |
phone | Advert.Phone | String | nein | Kunden Telefonnummer |
address | Advert.Address | String | nein | Kundenadresse |
noteLabel | Advert.NoteLabel | String | nein | Hinweis Anzeigename |
noteText | Advert.NoteText | String | nein | Hinweis |
fullscreen | Advert.Fullscreen | Boolean | nein | Print2Online Kennzeichen |
XML-Format
Schemadefinition XSL:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Advert">
<xs:complexType>
<xs:attribute name="cancelled" type="xs:boolean" />
<xs:sequence>
<xs:element name="OrderNo" type="xs:string" />
<xs:element name="Description" type="xs:string" />
<xs:element name="Customer" type="xs:string" />
<xs:element name="Priority" type="xs:unsignedByte" />
<xs:element name="NormalAssetFileName" type="xs:string" />
<xs:element name="TabletAssetFileName" type="xs:string" />
<xs:element name="MobileAssetFileName" type="xs:string" />
<xs:element name="MaxImpressions" type="xs:unsignedShort" />
<xs:element name="MaxClicks" type="xs:unsignedShort" />
<xs:element name="StartDate" type="xs:date" />
<xs:element name="EndDate" type="xs:date" />
<xs:element name="AdvertTypes">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="AdvertType" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="LinkUrl" type="xs:string" />
<xs:element name="ValidTags">
<xs:complexType>
<xs:sequence>
<xs:element name="Tag" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="InvalidTags">
<xs:complexType>
<xs:sequence>
<xs:element name="Tag" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ValidDepartments">
<xs:complexType>
<xs:sequence>
<xs:element name="Department" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="InvalidDepartments">
<xs:complexType>
<xs:sequence>
<xs:element name="Department" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ValidLocations">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="Location" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="InvalidLocations">
<xs:complexType>
<xs:sequence>
<xs:element name="Location" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ValidGeoRegions">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="GeoRegion" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="InvalidGeoRegions">
<xs:complexType>
<xs:sequence>
<xs:element name="GeoRegion" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>Beispiel:
<Advert cancelled = "false">
<OrderNo>imp_123456</OrderNo>
<Description>Importtest 1</Description>
<Customer>Testkunde</Customer>
<Priority>100</Priority>
<NormalAssetFileName>image1.png</NormalAssetFileName>
<TabletAssetFileName>image2.png</TabletAssetFileName>
<MobileAssetFileName>image2.png</MobileAssetFileName>
<MaxImpressions>50000</MaxImpressions>
<MaxClicks>10000</MaxClicks>
<StartDate>2021-06-31</StartDate>
<EndDate>2021-08-25</EndDate>
<AdvertTypes>
<AdvertType>BUTTON</AdvertType>
<AdvertType>TITLE_HEADER</AdvertType>
</AdvertTypes>
<LinkUrl>http://www.hup.de</LinkUrl>
<ValidTags>
<Tag>Tag des Hundes</Tag>
</ValidTags>
<InvalidTags>
<Tag>Haare</Tag>
</InvalidTags>
<ValidDepartments>
<Department>Sport</Department>
</ValidDepartments>
<InvalidDepartments>
<Department>Fußball</Department>
</InvalidDepartments>
<ValidLocations>
<Location>Leipzig</Location>
<Location>Dresden</Location>
</ValidLocations>
<InvalidLocations>
<Location>Berlin</Location>
</InvalidLocations>
<ValidGeoRegions>
<GeoRegion>Sachsen</GeoRegion>
<GeoRegion>Baden-Baden</GeoRegion>
</ValidGeoRegions>
<InvalidGeoRegions>
<GeoRegion>Mecklenburg-Vorpommern</GeoRegion>
</InvalidGeoRegions>
<LinkUrl>https://www.hup.de/</LinkUrl>
<Placement>ANY</Placement>
<Name>Tannenbaum und Zweige GmbH</Name>
<Mail>tannenbaum@hup.de</Mail>
<Phone>0176 12345678</Phone>
<Address>Donahnyistraße 15\n04103 Leipzig\nDeutschland</Address>
<NoteLabel></NoteLabel>
<NoteText>Montag und Donnerstag 11 - 17 Uhr\nSonntag 12 - 14 Uhr</NoteText>
<Fullscreen>true</Fullscreen>
</Advert>