Adcontroller: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
| (7 dazwischenliegende Versionen von 4 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) | ||
** | **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 | ||
===Caching AdController=== | ===Caching AdController=== | ||
| Zeile 46: | Zeile 46: | ||
var iqd_mode = (function () { | var iqd_mode = (function () { | ||
let mode = '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 () { | ||
let mode = '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 ' | 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. | |||
<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=== | ||