Adcontroller: Unterschied zwischen den Versionen

Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(12 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 16: Zeile 16:
Es bestehen zwei Möglichkeiten für das Hosting/Einbindung des AdController Script-Deployments auf Ihren Seiten:
Es bestehen zwei Möglichkeiten für das Hosting/Einbindung des AdController Script-Deployments auf Ihren Seiten:


*Abruf des AC-Script-Deployments vom Web-Server des Seitenbetreibers (empfohlen)
**Für das Hosting und den unmittelbaren Abruf des AC-Deployment vom iq-CDN wird eine direkte Implementierung des Adcontrollers über den Webserver des Seitenbetreibers empfohlen. Voraussetzung ist eine weiterhin flexible Anbindung des AC- Deployment als PRELIVE- und SANDBOX-Version (siehe "Auslieferungsmodus") durch den iq-Entwickler mittels iqdeployment-Parameter. Es gibt hierzu bereits unterschiedliche Umsetzungen im Einsatz, die wir gerne gemeinsam mit Ihnen abstimmen.
*Abruf des AC-Script-Deployments von einem externen Web-Host der iq digital (AWS-CDN)
*Abruf des AC-Script-Deployments von einem externen Web-Host der iq digital (AWS-CDN)
**Hosting und Abruf des AC-Deployment vom iq-CDN
**Sollte die zuvor genannte Variante aus technisch-organisatorischen Gründen nicht möglich sein, bitte Kontakt mit uns aufnehmen. In Absprache kann in Ausnahmefällen hiervon abgewichen werden. Hosting und Abruf des AC-Deployment vom iq-CDN  
*Abruf des AC-Script-Deployments vom Web-Server des Seitenbetreibers (empfohlen)
**Alternativ zum Hosting und unmittelbaren Abruf des AC-Deployment vom iq-CDN wird eine direkte Implementierung des Adcontrollers über den Webserver des Seitenbetreibers empfohlen. Voraussetzung ist eine weiterhin flexible Anbindung des AC- Deployment als PRELIVE- und SANDBOX-Version (siehe "Auslieferungsmodus") durch den iq-Entwickler mittels iqdeployment-Parameter. Es gibt hierzu bereits unterschiedliche Umsetzungen im Einsatz, die wir gerne gemeinsam mit Ihnen abstimmen.


===Caching AdController===
===Caching AdController===
Zeile 46: Zeile 46:


     var iqd_mode = (function () {
     var iqd_mode = (function () {
        var dm = window.location.href.toLowerCase();
      let mode = 'live';
        return (dm.indexOf('iqdeployment=') > 1) ? dm.split('iqdeployment=')[1].split('&')[0] : 'live';
      const currentUrlSearchParams = new URLSearchParams(window.location.search);
 
      if (currentUrlSearchParams.has('iqdeployment')) {
        mode = currentUrlSearchParams.get('iqdeployment').replace(/\W/g, '');
      }
 
      return mode;
     })();
     })();


Zeile 98: Zeile 104:


     var iqd_mode = (function () {
     var iqd_mode = (function () {
        var dm = window.location.href.toLowerCase();
      let mode = 'live';
        return (dm.indexOf('iqdeployment=') > 1) ? dm.split('iqdeployment=')[1].split('&')[0] : 'live';
      const currentUrlSearchParams = new URLSearchParams(window.location.search);
 
      if (currentUrlSearchParams.has('iqdeployment')) {
        mode = currentUrlSearchParams.get('iqdeployment').replace(/\W/g, '');
      }
 
      return mode;
     })();
     })();


Zeile 181: Zeile 193:
         keywords: "[Erfolgt_mit_Abstimmung_iq]",
         keywords: "[Erfolgt_mit_Abstimmung_iq]",
         tma: "[Erfolgt_mit_Abstimmung_iq]",
         tma: "[Erfolgt_mit_Abstimmung_iq]",
         platform: "[desktop | tablet | mobile]"
         platform: "[desktop | tablet | mobile]",
        userData: {
          hashedEmail: "[Hashed Email siehe Erläuterung unten]"
        }
     };
     };
</script>
</script>
Zeile 195: Zeile 210:


Enthalten seitenspezifische Informationen für die erforderliche Inventarisierung der Publisher-Site im Ad Server und den AdRequest- URL-Builder zur Anforderungen der auf dieses Inventar gebuchten Anzeigen. Die Level-Informationen sind in Abhängigkeit der Ressort- bzw. Umfeld-Tiefen zu füllen insofern vermarktungsrelevant.  
Enthalten seitenspezifische Informationen für die erforderliche Inventarisierung der Publisher-Site im Ad Server und den AdRequest- URL-Builder zur Anforderungen der auf dieses Inventar gebuchten Anzeigen. Die Level-Informationen sind in Abhängigkeit der Ressort- bzw. Umfeld-Tiefen zu füllen insofern vermarktungsrelevant.  
Beispiel: Wenn die Seite eine Rubrik 'Politik' hat und diese eine Unterrubrik 'Außenpoltik', dann wäre den Wert für level2:'politik' und für level3:'aussenpolitik'
Beispiel: Wenn die Seite eine Rubrik 'Politik' hat und diese eine Unterrubrik 'Außenpolitik', dann wäre den Wert für level2:'politik' und für level3:'aussenpolitik'
 
<span style="color:red;">'''Achtung:'''</span> Es fehlt absichtlich level1, da dieser Teil der Adunit von der iqdigital innerhalb des Adcontrollers festgelegt wird.


====Schlüssel: isWrapperApp====
====Schlüssel: isWrapperApp====
Zeile 213: Zeile 230:
Hier sind folgende Werte möglich: desktop, tablet oder mobile
Hier sind folgende Werte möglich: desktop, tablet oder mobile
Je nachdem auf welchen Device der User unterwegs ist sollte der entsprechende Wert übergeben werden.
Je nachdem auf welchen Device der User unterwegs ist sollte der entsprechende Wert übergeben werden.
====Schlüssel: userData====
"userData" ist das Sammelobjekt für alle nötigen UserInformationen sowohl im  Rahmen von Clean Room Cases als auch unserer ID-Lösungen.
=====Schlüssel: userData:hashedEmail=====
Vorherige Normalisierung und Übergabe der via SHA256 erstellten Hashes der E-Mail Adressen über Publisher-CMS-/Mandantenobjekt (AdController) nach User Anmeldung/ Newsletter Registrierung.
userData.hashedEmail muss nicht unmittelbar vorliegen. Wir prüfen wiederholt und verarbeiten den Wert, sobald er verfügbar ist.
<syntaxhighlight lang='javascript'>
//Beispiel eines SHA256 Hashes
const userData:{
        hashedEmail: "21bd991f8b25a57075dd2489b4eebda1a5d956bbf52f961fe5289c6d5a0a2b5c"
}
</syntaxhighlight>
'''Normalisierung''':
Vor dem Hashing der E-Mail-Adresse Normalisierung der Zeichenfolge, indem „überflüssige“ Zeichen entfernt werden:
# Entfernen führender und nachgestellter Leerzeichen
# Alle ASCII-Zeichen in Kleinbuchstaben umwandeln
# Entfernen von "." (ASCII-Code 46) aus dem Benutzernamen der E-Mail-Adresse
  à z.B. jane.smith@gmail.com wird normalisiert zu janesmith@gmail.com
# Entfernen von "+" (ASCII-Code 43) und alle nachfolgenden Zeichen aus dem Benutzernamen der E-Mail-  Adresse
  à  z.B. janesmith+test@gmail.com wird normalisiert zu janesmith@gmail.com


===Zeichenlimitierung===
===Zeichenlimitierung===
Zeile 273: Zeile 319:
<div class="page-break"></div>
<div class="page-break"></div>


==Neues Anzeigen-Containermodell==
==Anzeigen-Containermodell==


Im neuen Anzeigen-Containermodell werden nicht mehr die Werbeplätze vom Mandanten/Publisher direkt in die Seite integriert, sondern nur noch Platzhalter Div Container an die nach Vertaggungsplan entsprechenden Stellen, in welche dann jeweils IQD die passenden Werbeplätze integriert.
Die Positionierung der Platzhaltercontainer der Anzeigen in der Publisher Seite erfolgt nach dem im Voraus abgestimmten Vertaggungsplan.
Zur richtigen Identifizierung aller Platzhalter müssen folgende Informationen allen Platzhalter Div-Containern mitgegeben werden:
Die eigentliche Integration der Container sollte dem folgenden Muster gemäß geschehen.
 
# 1. Die Klasse "'''iqdcontainer'''". Durch diese Klasse werden alle Divs Werbeplatzhalter gekennzeichnet.
# 2. Das Data Attribute "'''data-placement'''". Über dieses Data-Attribut können die jeweiligen Positionen in der Seite eindeutig erfasst werden.
# 3. Das Data Attribute "'''data_device'''". Über dieses Data-Attribut wird gekennzeichnet, ob der Werbeplatz für die Desktop, Mobile oder Tablet Werbeausspielung gedacht ist.


<syntaxhighlight lang='html'>
<syntaxhighlight lang='html'>


<div class="iqdcontainer" data-placement="pos_2" data-device="desktop"></div>
<div class="iqdcontainer" data-placement="pos_[N U M M E R]" data-device="[D E V I C E T Y P E]"></div>
<div class="iqdcontainer" data-placement="pos_2" data-device="mobile"></div>
<div class="iqdcontainer" data-placement="pos_2" data-device="tablet"></div>


</syntaxhighlight>


Zur richtigen Identifizierung aller Platzhalter müssen folgende Informationen allen Platzhalter Div-Containern mitgegeben werden:


</syntaxhighlight>
# Die Klasse "'''iqdcontainer'''". Durch diese Klasse werden alle Divs Werbeplatzhalter gekennzeichnet.
# Das Data Attribute "'''data-placement'''". Über dieses Data-Attribut können die jeweiligen Positionen in der Seite eindeutig erfasst werden.
# Das Data Attribute "'''data-device'''". Über dieses Data-Attribut wird gekennzeichnet, ob der Werbeplatz für die Desktop, Mobile oder Tablet Werbeausspielung gedacht ist. Mögliche Werte: '''desktop | tablet | mobile'''


===SonderPositionen===
===SonderPositionen===
Zeile 299: Zeile 343:
<syntaxhighlight lang='html'>
<syntaxhighlight lang='html'>


<div class="iqdcontainer" data-placement="pos_header" data-device="desktop"></div>
<div class="iqdcontainer" data-placement="pos_header" data-device="[D E V I C E T Y P E]"></div>
<div class="iqdcontainer" data-placement="pos_header" data-device="mobile"></div>
<div class="iqdcontainer" data-placement="pos_header" data-device="tablet"></div>
 
 
 
<div class="iqdcontainer" data-placement="pos_footer" data-device="desktop"></div>
<div class="iqdcontainer" data-placement="pos_footer" data-device="mobile"></div>
<div class="iqdcontainer" data-placement="pos_footer" data-device="tablet"></div>


 
<div class="iqdcontainer" data-placement="pos_footer" data-device="[D E V I C E T Y P E]"></div>
</syntaxhighlight>
 
====Topbannerkonstrukt in Pos_01 Desktop====
 
Der Platzhalter für Desktop mit der "data-placement" Nummer "pos_1" stellt unser altes Topbanner-Konstrukt dar und umfasst daher den Einbau mehrerer Werbeplätze (iqadtile1, iqadtile20, iqadtile21). Um dies kenntlich zu machen sind im Vertaggungsplan auch noch "pos_out_1" und "pos_out_2" eingezeichnet.
Auf Ihren Einbau sollte aber verzichtet werden, da Ihre Funktion bereits komplett von "pos_1" übernommen wird.
 
<syntaxhighlight lang='html'>
 
<div class="iqdcontainer" data-placement="pos_1" data-device="desktop"></div>


</syntaxhighlight>
</syntaxhighlight>


==Anzeigenplatzierungen Signalfunktionen==
==Anzeigenplatzierungen Signalfunktionen==


===AdController.finalize(..)===
===AdController.finalize(..)===