Zum Inhalt

AMP-Sensor

Sie möchten das volle Potential Ihrer Daten über das INFOnline Measurement erheben?

Wir empfehlen Ihnen die pseudonyme Messung zusätzlich in Ihre AMP-Messung einzubinden. Bitte beachten Sie, dass die Teilnahme Ihres Digital-Angebots an der IVW-Ausweisung oder den agof-Studien eine parallele Integration der pseudonymen Messung und Zensusmessung in Ihrer AMP-Messung erfordern kann.

Zensusmessung

Achtung

Sollten Sie die pseudonyme Messung über den INFOnline Measurement Manager aktivieren, ist es zwingend erforderlich das Standalone-Script in Google AMP eingebunden zu lassen.

Voraussetzungen

  • Relay-Client-Container (gehostet von der INFOnline oder einem selbst)
  • Registrierter Domain-Service-Name als CNAME (gehostet von der INFOnline), AAA(A) (selbst gehostet) DNS-Eintrag
  • Angebotskennung (von der INFOnline GmbH bereitgestellt)

Vorbereitungen

AMP-optimierte Webinhalte werden über <amp-analytcis />-Tags gemessen. Dieses CustomElement und seine Implementierung müssen zusammen mit anderen AMP-bezogenen Bibliotheken vom AMP CDN heruntergeladen werden, indem diese Integration genutzt wird:

1
2
3
4
<head>
  <script async src="https://cdn.ampproject.org/v0.js"></script>
  <script async custom-element="amp-analytics" src="https://cdn.ampproject.org/v0/amp-analytics-0.1.js"></script>
</head>

Info

Beide Skripte sollten im <head> der AMP-optimierten Webseite platziert werden.

Die Service-Plattform (Relay-Client) stellt dem Publisher auch den <iframe> für die Kommunikation zwischen AMP und dem Zensus AMP-Sensor zur Verfügung. Der Publisher kann den Site-spezifischen CNAME oder AAA(A) DNS-Eintrag verwenden, um auf diesen <iframe> zuzugreifen. Das Subdomain-Kriterium, das Google in diesem Fall vorgibt, ist damit erfüllt.

Beispiel:

  • AMP-Webseite -> https://www.example.com/start.html
  • <iframe>-Webseite -> https://data-1a79a4d60d.example.com/iomb/latest/html/amp.html
Achtung

Die INFOnline empfiehlt dringend, den <iframe> von der Serviceplattform zu verwenden, da so durch regelmäßige Updates eine stabile Funktionalität garantiert wird.

Messung von AMP-Webseiten

Um AMP-Webseiten zu messen, müssen Sie den Tag <amp-analytics /> mit einer entsprechenden Konfiguration implementieren:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
<amp-analytics type="infonline_base">
  <script type="application/json">
  {
    "vars": {
      "st": "example",
      "cp": "foo",
      "dn": "data-1a79a4d60d.example.com"
    },
      "requests": {
        "url": "https://data-1a79a4d60d.example.com/iomb/latest/html/amp.html"
    }
  }
  </script>
</amp-analytics>

Achtung

Bitte stellen Sie sicher, dass Sie den <amp-analytics />-Tag mit dem richtigen <... type="infonline_base" />-Typ ausfüllen.

Die folgenden Parameter können über den <amp-analytics />-Tag übergeben werden:

Abkürzung Name Typ Standard Länge Muster Obligatorisch Beschreibung
st site String - 15 ^[a-zA-Z0-9_]*$ yes Site identifier
dn domainServiceName String - - INFOnline CNAME convention1 yes Domain Service Name (CNAME oder AAA(A) Host)2
cn country Enum de - - no INFOnline country (de oder at)
cp code String Leercode_nichtzuordnungsfaehig 256 [^a-zA-Z0-9,_/\-?#.] no Seitencode für den IVW Kat 2.0 Verband
co comment String - 256 /[ -~]/ no Optionaler Kommentar
- requests String - - [domainServiceName]/iomb/latest/html/amp.html yes Einbinden des notwendigen iFrames (auf der Service Plattform gehostet)

1 INFOnline CNAME convention: /^(data-)([a-f0-9]{10})\.([a-zA-Z0-9][a-zA-Z0-9-_]{0,61})(?:\.([a-z]{2,62}))?\.([a-z]{2,62})$/

2 Entspricht die Notation von dn / domainServiceName nicht der genannten INFOnline CNAME convention, findet keine Messung statt.

Achtung

Das Folgende gilt für Parameter:
- Nicht gesetzt und der Parameter ist optional -> Standardwert wird verwendet!
- Nicht gesetzt und der Parameter ist obligatorisch -> Verarbeitung wird abgebrochen und eine Meldung auf der Browser-Konsole im Debug-Modus protokolliert!
- Jeder Parameter wird vor der Verarbeitung abgefragt! |

Messung von AMP-Stories

Die Messung von AMP-Stories erfolgt auf die gleiche Weise wie die Messung von AMP-Webseiten, außer dass Sie die entsprechenden AMP-spezifischen Trigger konfigurieren müssen:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
<amp-analytics type="infonline_base">
  <script type="application/json">
    {
      "vars": {
        "st": "example",
        "cp": "foo",
        "dn": "data-1a79a4d60d.example.com"
    },
    "requests": {
      "url": "https://data-1a79a4d60d.example.com/iomb/latest/html/amp.html"
    },
    "triggers": {
      "storyPageVisible": {
        "on": "story-page-visible",
        "request": "pageview"
      },
    }
  }
  </script>
</amp-analytics>

Pseudonyme Messung

Achtung

Sollten Sie die pseudonyme Messung über den INFOnline Measurement Manager aktivieren, ist es zwingend erforderlich das Standalone-Script in Google AMP eingebunden zu lassen.

Für die Messung der Zugriffe auf AMP-Webseiten (https://www.ampproject.org) ist ein spezieller Analytics-Tag (weiter unten in diesem Kapitel) erforderlich, der um die jeweilige Angebotskennung, den Seitencode und eine URL ergänzt werden muss. Die URL muss auf eine Webseite verweisen, die einen speziellen SZM-Tag enthält und selbst per HTTPS ausgeliefert werden muss. Diese Webseite muss über eine andere Subdomain ausgeliefert werden als die AMP-Webseite und in der Localliste enthalten sein. Auf AMP-Webseiten wird keine Befragungseinladung (agof BFE) ausgeliefert.

Im Header der Webseite einfügen

<script async custom-element="amp-analytics" src="https://cdn.ampproject.org/v0/amp-analytics-0.1.js"></script>

Messung von AMP Webseiten (pageview)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
<amp-analytics type="infonline" id="infonline">
<script type="application/json">
{
 "vars": {
 "st": "angebotskennung",
 "co": "comment",
 "cp": "code"
 },
 "requests": {
 "url": "https://sub.example.com/amp-analytics-infonline.html"
 }
}
</script>
</amp-analytics>
Hinweis

Bitte achten Sie darauf, keine zusätzlichen Zeilenumbrüche einzufügen und die Variablen („vars“) „st“ und „cp“ mit den jeweiligen Werten zu füllen:

st= Angebotskennung
cp= Entsprechender Seitencode der Webseite
co= Kommentar (optional)

Bitte beachten Sie, dass die Eigenschaft „url“ auf eine von Ihnen frei wählbare Subdomäne zeigen und den Inhalt der im Punkt 5 (nachfolgend) gezeigten HTML-Webseite zur Verfügung stellen muss. Der Name der HTML-Datei ist dabei frei wählbar.

Messung von AMP Stories

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
<amp-analytics type="infonline">
 <script type="application/json">
  {
   "vars": {
   "st": "angebotskennung",
   "co": "comment",
   "cp": "code"
  },
   "requests": {
     "url": "https://sub.example.com/amp-analytics-infonline.html"
  },
   "triggers": {
    "storyPageVisible": {
     "on": "story-page-visible",
     "request": "pageview"
     },
   }
 }
 </script>
</amp-analytics>
Hinweis

Bitte achten Sie darauf, keine zusätzlichen Zeilenumbrüche einzufügen und die Variablen („vars“) „st“ und „cp“ mit den jeweiligen Werten zu füllen:

st= Angebotskennung
cp= Entsprechender Seitencode der Webseite
co= Kommentar (optional)

Bitte beachten Sie, dass die Eigenschaft „url“ auf eine von Ihnen frei wählbare Subdomäne zeigen und den Inhalt der im Punkt 5 (nachfolgend) gezeigten HTML-Webseite zur Verfügung stellen muss. Der Name der HTML-Datei ist dabei frei wählbar.

Wenn Sie noch mehr AMP Story-Interaktionen wie Aufrufe des „Bookends“ etc. messen wollen, finden Sie hier eine entsprechende Dokumentation. Wichtig ist nur, dass der request vom Typ „pageview“ sein muss.

Messung von Ereignissen (z.B. Video-Playback)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<amp-analytics type="infonline">
 <script type="application/json">
  {
   "vars": {
   "st": "angebotskennung",
   "co": "comment",
   "cp": "code"
   },
   "requests": {
    "url": "https://sub.example.com/amp-analytics-infonline.html"
   },
   "triggers": {
    "myVideoPlay": {
     "on": "video-play",
     "selector": "#myVideo",
     "request": "event",
     "vars": {
      "ev": "play"
     }
   }
  }
 }
 </script>
</amp-analytics>
Hinweis

Bitte achten Sie darauf, keine zusätzlichen Zeilenumbrüche einzufügen und die Variablen („vars“) „st“ und „cp“ mit den jeweiligen Werten zu füllen:

st= Angebotskennung
cp= Entsprechender Seitencode der Webseite
co= Kommentar (optional)

Bitte beachten Sie, dass die Eigenschaft „url“ auf eine von Ihnen frei wählbare Subdomäne zeigen und den Inhalt der im Punkt 5 (nachfolgend) gezeigten HTML-Webseite zur Verfügung stellen muss. Der Name der HTML-Datei ist dabei frei wählbar.

Bitte beachten Sie, dass der angegebene Selector für Ihr Videoelement von Ihnen angepasst werden muss.

Bitte achten Sie auf die Übergabe der korrekten Ereignisse. Hierzu finden Sie unten ein entsprechendes Mapping:

AMP Video Event INFOnline Video Event
video-play play
video-pause paus
video-ended sple

Spezielle HTML-Webseite mit SZM-Tag

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
< !DOCTYPE html>
< html>
<head>
  <script src=https://script.ioam.de/iam.js></script>
</head>
<body>
<script>
  var match,
      pl     = /\+/g,
      search = /([^&=]+)=?([^&]*)/g,
      decode = function (s) { return decodeURIComponent(s.replace(pl, " ")); },
      query  = window.location.search.substring(1);
  var params = {};
  while (match = search.exec(query)) {
    params[decode(match[1])] = decode(match[2]);
  }
  if (params.type === 'event') {
    iom.i(params, 2);
    iom.e(params.ev);
  } else {
    iom.c(params, 2);
  }
</script>
</body>
</html>
Hinweis

Bitte ändern Sie den oben gezeigten Quelltext nicht ab. Änderungen führen zwangsläufig zu einer Nichtmessung Ihrer AMP-Integration.

AMP Integration mit TCF 2.0

Vorraussetzung

Für die Integration einer TCF 2.0 konformen CMP in Zusammenspiel mit AMP und INFOnline Measurement pseudonymous ist im Vorfeld zu prüfen, ob der Publisher eine CMP einsetzt, von AMP auch unterstützt wird. Ist dies nicht der Fall, kann TCF 2.0 nicht automatisiert verarbeitet werden. Darüber hinaus sollte der Publisher immer die aktuellste Version von AMP einsetzen. Zudem sollte folgender Iframe-Inhalt auf einer Sub-Domain des Digital Angebots vom Publisher gehostet werden:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
<!DOCTYPE html>
<html lang="en">
<head>
  <script src="//script.ioam.de/iam.js?m=1"></script>
  <title>INFOnline AMP integration</title>
</head>
<body>
  <script src="//script.ioam.de/amp.js?m=1"></script>
</body>
</html>

Integration

Für die Integration von TCF 2.0 benötigt der Publisher das Custom Element <amp-consent> und muss diese entsprechend nach den Vorgaben des CMP Herstellers implementieren (hier ein Beispiel mit Consent Manager):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
<amp-consent id="ConsentManager" layout="nodisplay" type="ConsentManager">
  <script type="application/json">
    {
      "postPromptUI": "postPromptUI",
      "clientConfig": {
        "id": "...Your CMP-ID...",
        "params": ""
      }
    }
  </script>
  <div id="postPromptUI">
    <button on="tap:ConsentManager.prompt()" role="button">Manage privacy settings</button>
  </div>
</amp-consent>

Anschließend muss nur noch das Custom Element <amp-analytics> in leicht veränderter Form zum regulären Einbau entsprechend deklariert werden

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
<amp-analytics data-block-on-consent type="infonline" id="infonline">
  <script type="application/json">
  {
    "vars": {
      "st": "angebotskennung",
      "co": "comment",
      "cp": "code"
    },
    "requests": {
      "url": "https://sub.example.com/amp-analytics-infonline.html"
    }
  }
  </script>
</amp-analytics>
Hinweis

Über das HTML Attribut data-block-on-consent wird geregelt, wann eine Messung ausgelöst wird. Der Messimpuls wird nur dann ausgelöst, sobald das CMP eine positive Consent-Entscheidung festgestellt hat.

Bitte beachten Sie, dass in Google AMP nur TCF 2.x konforme CMPs aus der Liste unterstützt werden. Eine manuelle Consentübermittlung ist in diesem Umfeld nicht möglich.


Letztes Update: September 15, 2022