E-Commerce-Empfehlungssystem mit BigQuery ML erstellen

Erfahren Sie, wie Sie mithilfe von BigQuery ML ein Empfehlungssystem erstellen, um Produkt- oder Dienstempfehlungen aus Kundendaten in BigQuery zu generieren. Lesen Sie danach, wie Sie diese Daten für andere Produktionssysteme verfügbar machen, indem Sie sie nach Google Analytics 360 oder Cloud Storage exportieren oder sie aus der BigQuery-Tabelle programmatisch lesen.

Dies ist die empfohlene Vorgehensweise, wenn sich Daten bereits in BigQuery befinden. Bei BigQuery ML können Sie mithilfe von Standard-SQL-Abfragen ein Modell für maschinelles Lernen erstellen, es mit Kundendaten in BigQuery trainieren und es bereitstellen. Sie müssen weder Ihre Daten in ein anderes Produkt exportieren noch eine Modelltrainings- und Bereitstellungspipeline erstellen. BigQuery skaliert automatisch für alle benötigten Rechenressourcen.

Das ML-Modell, das Sie in dieser Anleitung erstellen, verwendet die Matrixfaktorisierung. Dies ist eine häufige und effektive Methode zum Erstellen eines Empfehlungssystems, das auf den Daten der Nutzerpräferenzen beruht. Weitere Informationen zu diesem Ansatz finden Sie unter Matrixfaktorisierung.

In dieser Anleitung wird das Google Analytics-Beispiel-Dataset verwendet, das öffentlich in BigQuery gehostet wird. Dieses Dataset bietet verschleierte Analytics 360-Daten aus einem Zeitraum von zwölf Monaten (August 2016 bis August 2017). Diese Daten stammen aus dem Google Merchandise Store, einem echten E-Commerce-Shop, in dem Merchandise-Artikel von Google verkauft werden.

Ziele

  • Beispieldaten in ein Format verarbeiten, das für das Training eines Matrixfaktorisierungsmodells geeignet ist
  • Matrixfaktorisierungsmodell erstellen, trainieren und bereitstellen
  • Vorhersagen aus dem bereitgestellten Modell abrufen, um zu erfahren, welche Produkte Ihre Kunden am wahrscheinlichsten interessieren
  • Vorhersagedaten aus BigQuery in ein oder mehrere Produkte exportieren, um Empfehlungen für Kunden zu erstellen

Kosten

In dieser Anleitung werden die folgenden kostenpflichtigen Komponenten von Google Cloud verwendet:

  • BigQuery
  • BigQuery ML

Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen. Neuen Google Cloud-Nutzern steht möglicherweise eine kostenlose Testversion zur Verfügung.

Hinweis

  1. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  2. Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für Ihr Projekt aktiviert ist.

Nach Abschluss dieser Anleitung können Sie weitere Kosten vermeiden, indem Sie die erstellten Ressourcen löschen. Weitere Informationen finden Sie unter Bereinigen.

Beispieldaten verarbeiten

Bei der Matrixfaktorisierung bewerten Sie explizites oder implizites Nutzerfeedback, um Kundenpräferenzen zu ermitteln. Wenn Sie explizites Feedback verwenden möchten, muss das Dataset Daten zu Produktpräferenzen der Nutzer, z. B. eine Bewertung zwischen 1 und 5, enthalten. Wenn kein explizites Feedback verfügbar ist, müssen Sie zur Ableitung von Kundenpräferenzen andere Verhaltensmesswerte verwenden, z. B. die Zeit, die ein Nutzer insgesamt auf einer Produktdetailseite verbringt. Dies ist der in dieser Anleitung verwendete Ansatz.

Zum Trainieren des Matrixfaktorisierungsmodells benötigen Sie eine Tabelle mit Spalten, die den Kunden, das bewertete Element und die implizite Bewertung identifizieren. In diesem Abschnitt erstellen Sie eine solche Tabelle mit den Spalten userid, itemId und session_duration, wobei die Spalte session_duration die Dauer der Nutzersitzung auf der Produktseite des betreffenden Elements enthält.

Führen Sie die folgenden Schritte aus, um eine solche Tabelle mit Daten aus dem Google Analytics-Beispiel-Dataset zu erstellen:

  1. Öffnen Sie im Google Cloud Marketplace das Google Analytics-Beispiel-Dataset und klicken Sie auf Dataset aufrufen. Dadurch wird die BigQuery-Konsole mit dem ausgewählten Google Analytics-Beispiel-Dataset geöffnet.
  2. Wählen Sie im Abschnitt Ressourcen das Projekt aus, in dem Sie diese Anleitung durcharbeiten.
  3. Klicken Sie auf Dataset erstellen.

    Position der Schaltfläche "Dataset erstellen" anzeigen

  4. Führen Sie auf der Seite Dataset erstellen die folgenden Schritte aus:

    • Geben Sie als Dataset-ID den String bqml ein.
    • Wählen Sie für Speicherort der Daten den Speicherort aus, der Ihnen am nächsten ist.
    • Klicken Sie auf Dataset erstellen.
  5. Führen Sie diesen Schritt aus, wenn Sie die Daten nach Analytics 360 exportieren möchten. Andernfalls überspringen Sie diesen Schritt.

    Führen Sie im Abfrageeditor die folgende SQL-Anweisung aus, um einen Teil der Google Analytics-Beispieldaten in eine neue Tabelle zu kopieren und das Feld clientId auszufüllen. Dieses Feld verwenden Sie als Schlüssel, um im nächsten Schritt implizites Nutzerfeedback zu aggregieren:

    CREATE OR REPLACE TABLE bqml.ga_clientid_sample AS (
      SELECT *
      FROM `bigquery-public-data.google_analytics_sample.ga_sessions_2017*`
      LIMIT 100000);
    
     UPDATE bqml.ga_clientid_sample
       SET clientId = fullvisitorId
       WHERE true;
    

    Beim Importieren von Zielgruppendaten in Analytics 360 müssen Sie clientId als Schlüsselfeld verwenden. clientId ist normalerweise eine gehashte Version von fullVisitorId. Im Google Analytics-Beispiel-Dataset wird sie jedoch nicht eingefügt. Zum Ausfüllen der clientId in Ihren eigenen Analytics 360-Daten würden Sie eine benutzerdefinierte Dimension erstellen und diese füllen.

  6. Führen Sie die folgende SQL-Anweisung aus, um eine Tabelle mit den Trainingsdaten zu erstellen. Führen Sie die Version aus, die das Feld clientId als Schlüssel verwendet, wenn Sie die Daten nach Analytics 360 exportieren möchten. Führen Sie die Version aus, die das Feld fullVisitorId als Schlüssel verwendet, wenn Sie die Daten in anderen Marketingsystemen verwenden möchten.

    clientId

    CREATE OR REPLACE TABLE bqml.aggregate_web_stats AS (
      WITH
        durations AS (
          --calculate pageview durations
          SELECT
            CONCAT(clientId,'-',
                 CAST(visitNumber AS STRING),'-',
                 CAST(hitNumber AS STRING) ) AS visitorId_session_hit,
            LEAD(time, 1) OVER (
              PARTITION BY CONCAT(clientId,'-',CAST(visitNumber AS STRING))
              ORDER BY
              time ASC ) - time AS pageview_duration
          FROM
            `bqml.ga_clientid_sample`,
            UNNEST(hits) AS hit
        ),
        prodview_durations AS (
          --filter for product detail pages only
         SELECT
            CONCAT(clientId,'-',CAST(visitNumber AS STRING)) AS userId,
            productSKU AS itemId,
            IFNULL(dur.pageview_duration,
             1) AS pageview_duration,
          FROM
            `bqml.ga_clientid_sample` t,
            UNNEST(hits) AS hits,
            UNNEST(hits.product) AS hits_product
          JOIN
            durations dur
          ON
            CONCAT(clientId,'-',
                   CAST(visitNumber AS STRING),'-',
                   CAST(hitNumber AS STRING)) = dur.visitorId_session_hit
          WHERE
          eCommerceAction.action_type = "2"
        ),
        aggregate_web_stats AS(
          --sum pageview durations by userId, itemId
          SELECT
            userId,
            itemId,
            SUM(pageview_duration) AS session_duration
          FROM
            prodview_durations
          GROUP BY
            userId,
            itemId )
        SELECT
         *
       FROM
          aggregate_web_stats
    );
    

    fullVisitorId

    CREATE OR REPLACE TABLE bqml.aggregate_web_stats AS (
      WITH
        durations AS (
          --calculate pageview durations
          SELECT
            CONCAT(fullVisitorId,'-',
                 CAST(visitNumber AS STRING),'-',
                 CAST(hitNumber AS STRING) ) AS visitorId_session_hit,
            LEAD(time, 1) OVER (
              PARTITION BY CONCAT(fullVisitorId,'-',CAST(visitNumber AS STRING))
              ORDER BY
              time ASC ) - time AS pageview_duration
          FROM
            `bigquery-public-data.google_analytics_sample.ga_sessions_2017*`,
            UNNEST(hits) AS hit
        ),
        prodview_durations AS (
          --filter for product detail pages only
         SELECT
            CONCAT(fullVisitorId,'-',CAST(visitNumber AS STRING)) AS userId,
            productSKU AS itemId,
            IFNULL(dur.pageview_duration,
             1) AS pageview_duration,
          FROM
            `bigquery-public-data.google_analytics_sample.ga_sessions_2017*` t,
            UNNEST(hits) AS hits,
            UNNEST(hits.product) AS hits_product
          JOIN
            durations dur
          ON
            CONCAT(fullVisitorId,'-',
                   CAST(visitNumber AS STRING),'-',
                   CAST(hitNumber AS STRING)) = dur.visitorId_session_hit
          WHERE
          eCommerceAction.action_type = "2"
        ),
        aggregate_web_stats AS(
          --sum pageview durations by userId, itemId
          SELECT
            userId,
            itemId,
            SUM(pageview_duration) AS session_duration
          FROM
            prodview_durations
          GROUP BY
            userId,
            itemId )
        SELECT
         *
       FROM
          aggregate_web_stats
    );
    
  7. Führen Sie die folgende SQL-Anweisung aus, um ein Beispiel des Datums in der resultierenden Tabelle bqml.aggregate_web_stats anzusehen:

    SELECT
     *
    FROM
      bqml.aggregate_web_stats
    LIMIT
      10;
    

    Die Ergebnisse sollten in etwa so aussehen:

    Die ersten zehn Zeilen der verarbeiteten Trainingsdaten

Flex-Slots erwerben

Wenn Sie On-Demand-Preise für BigQuery verwenden, müssen Sie Flex-Slots erwerben und dann Reservierungen und Zuweisungen für diese erstellen, um ein Matrixfaktorisierungsmodell zu trainieren. Sie können diesen Abschnitt überspringen, wenn Sie in BigQuery Pauschalpreise verwenden.

Sie benötigen die Berechtigung bigquery.reservations.create, um Flex-Slots erwerben zu können. Diese Berechtigung wird dem Projektinhaber sowie den vordefinierten Rollen bigquery.admin und bigquery.resourceAdmin für die Identitäts- und Zugriffsverwaltung erteilt.

  1. Klicken Sie in der BigQuery-Konsole auf Reservierungen.
  2. Wenn Sie zur Seite BigQuery Reservation API weitergeleitet werden, um die API zu aktivieren, klicken Sie auf Aktivieren. Andernfalls fahren Sie mit dem nächsten Schritt fort.
  3. Klicken Sie auf der Seite Reservierungen auf Slots erwerben.
  4. Legen Sie auf der Seite Slots erwerben die folgenden Optionen fest:

    1. Wählen Sie unter Zusicherungsdauer die Option Flex aus.
    2. Wählen Sie unter Speicherort den Ort aus, den Sie beim Erstellen des Datasets während der Verarbeitung der Beispieldaten ausgewählt haben.
    3. Wählen Sie unter Anzahl der Slots die Option 500 aus.
    4. Klicken Sie auf Weiter.
    5. Geben Sie unter Kaufbestätigung CONFIRM ein.

  5. Klicken Sie auf Kaufen.

  6. Klicken Sie auf Slot-Zusicherungen anzeigen.

  7. Es kann bis zu 20 Minuten dauern, bis die Kapazität bereitgestellt wird. Nachdem die Kapazität bereitgestellt wurde, wird der Slot-Zusicherungsstatus grün und zeigt ein Häkchen an.

  8. Klicken Sie auf Reservierung erstellen.

  9. Legen Sie auf der Seite Reservierung erstellen die folgenden Optionen fest:

    1. Geben Sie unter Name der Reservierung den Wert model ein.
    2. Wählen Sie unter Speicherort den Ort aus, an dem Sie die Flex-Slots gekauft haben.
    3. Geben Sie unter Anzahl der Slots den Wert 500 ein.
    4. Klicken Sie auf Speichern. Dadurch kehren Sie zur Seite Reservierungen zurück.
  10. Wählen Sie den Tab Zuweisungen aus.

  11. Klicken Sie unter Organisation, Ordner oder Projekt auswählen auf Durchsuchen.

  12. Geben Sie den Namen des Projekts ein, in dem Sie diese Anleitung durcharbeiten.

  13. Klicken Sie auf Auswählen.

  14. Wählen Sie unter Reservierung die erstellte model-Reservierung aus.

  15. Klicken Sie auf Erstellen.

  16. Klicken Sie auf BigQuery, um zur BigQuery-Konsole zurückzukehren.

Modell erstellen, trainieren und bereitstellen

Führen Sie die SQL-Anweisung CREATE MODEL aus, um das Matrixfaktorisierungsmodell zu erstellen, zu trainieren und bereitzustellen:

      CREATE OR REPLACE MODEL bqml.retail_recommender
      OPTIONS(model_type='matrix_factorization',
            user_col='userId',
            item_col='itemId',
            rating_col='session_duration',
            feedback_type='implicit'
            )
      AS
      SELECT * FROM bqml.aggregate_web_stats;

Nach Abschluss des Trainings wird das trainierte Modell als bqml.retail_recommender bereitgestellt.

Trainiertes Modell für Vorhersagen verwenden

Verwenden Sie die SQL-Funktion ML.RECOMMEND, um Vorhersagen aus dem bereitgestellten bqml.retail_recommender-Modell abzurufen.

  1. Wenn Sie ein Beispiel für die Empfehlungsdaten sehen möchten, führen Sie die folgende SQL-Anweisung aus, um Vorhersagen abzurufen, die die fünf besten Empfehlungen für eine angegebene userId darstellen:

    DECLARE MY_USERID STRING DEFAULT "0824461277962362623-1";
    
    SELECT
      *
    FROM
      ML.RECOMMEND(MODEL `bqml.retail_recommender`,
      (SELECT MY_USERID as userID)
                  )
    ORDER BY predicted_session_duration_confidence DESC
    LIMIT 5;
    

    Die Ergebnisse sollten in etwa so aussehen:

    Die fünf besten Empfehlungen für eine bestimmte Nutzer-ID

  2. Führen Sie die folgende SQL-Anweisung aus, um die fünf besten Vorhersagen für alle Nutzer zu erhalten. Dabei wird eine große Anzahl von Zeilen generiert. Deshalb wird die Ausgabe in eine Tabelle geschrieben und die ersten zehn Datensätze werden abgerufen, damit Sie ein Beispiel der Daten sehen können.

    -- Create output table of top 5 predictions
    CREATE OR REPLACE TABLE bqml.prod_recommendations AS (
    WITH predictions AS (
        SELECT
          userId,
          ARRAY_AGG(STRUCT(itemId,
                           predicted_session_duration_confidence)
                    ORDER BY
                      predicted_session_duration_confidence DESC
                    LIMIT 5) as recommended
        FROM ML.RECOMMEND(MODEL bqml.retail_recommender)
        GROUP BY userId
    )
    
    SELECT
      userId,
      itemId,
      predicted_session_duration_confidence
    FROM
      predictions p,
      UNNEST(recommended)
    );
    
    -- Show table
    SELECT
     *
    FROM
      bqml.prod_recommendations
    ORDER BY
      userId
    LIMIT
      10;
    

    Die Ergebnisse sollten in etwa so aussehen:

    Die ersten zehn Empfehlungen für alle Nutzer

Vorhergesagte Empfehlungen in der Produktionsumgebung verwenden

Nachdem Sie die Empfehlungen haben, hängt es von Ihrem Anwendungsfall ab, wie Sie diese für Ihre Produktionspipeline verfügbar machen. In den folgenden Abschnitten wird beschrieben, wie Sie Vorhersagedaten nach Analytics 360 oder Cloud Storage exportieren oder Daten aus BigQuery programmatisch in einen Pandas DataFrame lesen.

Empfehlungen nach Analytics 360 exportieren

Wenn Sie Daten nach Analytics 360 exportieren möchten, sollten Sie für jedes Produkt eine eigene Spalte zur Verfügung zu stellen, mit der die Wahrscheinlichkeit, dass der Kunde das Produkt kauft, bewertet wird. Beispiel:

clientId likelihoodProductA likelihoodProductB
123 ,6527238 ,3464891
456 ,8720673 ,2750274
789 ,5620734 ,9127595

Zum Erstellen einer Spalte "Kaufwahrscheinlichkeit" pro Produkt legen Sie eine pivot()-Methode an, wie unter Easy Pivot() in BigQuery in einem Schritt beschrieben.

  1. Führen Sie die folgende SQL-Anweisung aus, um die pivot-Vorgehensweise zu erstellen:

    CREATE OR REPLACE FUNCTION
    `bqml.normalize_col_name`(col_name STRING) AS (
      REGEXP_REPLACE(col_name,r'[/+#|]', '_'
    ));
    
    CREATE OR REPLACE PROCEDURE `bqml.pivot`(
      table_name STRING
      , destination_table STRING
      , row_ids ARRAY<STRING>
      , pivot_col_name STRING
     , pivot_col_value STRING
      , max_columns INT64
      , aggregation STRING
      , optional_limit STRING
      )
    
    BEGIN
    
      DECLARE pivotter STRING;
    
      EXECUTE IMMEDIATE (
       "SELECT STRING_AGG(' "||aggregation
        ||"""(IF('||@pivot_col_name||'="'||x.value||'", '||@pivot_col_value||', null)) e_'||bqml.normalize_col_name(x.value))
       FROM UNNEST((
           SELECT APPROX_TOP_COUNT("""||pivot_col_name||", @max_columns) FROM `"||table_name||"`)) x"
      ) INTO pivotter
      USING pivot_col_name AS pivot_col_name, pivot_col_value AS pivot_col_value, max_columns AS max_columns;
    
      EXECUTE IMMEDIATE (
       'CREATE OR REPLACE TABLE `'||destination_table
       ||'` AS SELECT '
       ||(SELECT STRING_AGG(x) FROM UNNEST(row_ids) x)
       ||', '||pivotter
       ||' FROM `'||table_name||'` GROUP BY '
       || (SELECT STRING_AGG(''||(i+1)) FROM UNNEST(row_ids) WITH OFFSET i)||' ORDER BY '
       || (SELECT STRING_AGG(''||(i+1)) FROM UNNEST(row_ids) WITH OFFSET i)
       ||' '||optional_limit
      );
    
    END;
    
  2. Führen Sie die folgende SQL-Anweisung aus, um eine Tabelle mit der clientId und einer Spalte "Kaufwahrscheinlichkeit" für jedes Produkt zu erstellen:

    CALL bqml.pivot(
      'bqml.prod_recommendations' # source table
      , 'bqml.prod_recommendations_export' # destination table
      , ['userId'] # row IDs
      , 'itemId' # pivot column name
      , 'predicted_session_duration_confidence' # pivot column value
      , 30 # max number of columns
      , 'AVG' # aggregation
      , '' # optional_limit
    );
    
  3. Führen Sie die folgende SQL-Anweisung aus, um ein Beispiel des Datums in der resultierenden Tabelle bqml.prod_recommendations_export anzusehen:

    SELECT
      *
    FROM
      bqml.prod_recommendations_export
    ORDER BY
      userId
    LIMIT
      10;
    

    Die Ergebnisse sollten in etwa so aussehen:

    Die ersten zehn Empfehlungen für alle Nutzer

Wenn die Daten im richtigen Format vorliegen, speichern Sie sie als CSV-Datei. Importieren Sie die Daten anschließend mit dem Datenimport in Analytics 360. Beachten Sie, dass die Spaltennamen in den exportierten Empfehlungsdaten dem Analytics 360-Datenimportschema entsprechen müssen. Wenn das Schema für den Datenimport beispielsweise ga:clientId, ga:dimension1, ga:dimension2 lautet, sollten die Spaltennamen in Ihren Daten ga:clientId, ga:dimension1, ga:dimension2 heißen. Die Verwendung von Doppelpunkten in Spaltennamen ist in BigQuery nicht zulässig. Sie müssen die Spaltennamen daher in der exportierten CSV-Datei vor dem Import aktualisieren.

Auf Wunsch können Sie die Referenzimplementierung MoDeM (Model Deployment for Marketing) für BigQuery ML-Modelle verwenden, um das Laden von Daten in Analytics 360 zu vereinfachen. Verwenden Sie als Einstieg die interaktive Anleitung im Notebook für die BQML-Bereitstellungsvorlage.

Empfehlungen nach Cloud Storage exportieren

Exportieren Sie die Empfehlungsdaten aus der BigQuery-Tabelle nach Cloud Storage. Folgen Sie dazu der Anleitung unter Tabellendaten exportieren.

Empfehlungen programmatisch lesen

Lesen Sie die Empfehlungsdaten aus der BigQuery-Tabelle in ein Pandas DataFrame mithilfe der BigQuery Storage API. Folgen Sie dazu der Anleitung unter Tabellendaten mithilfe der BigQuery-Clientbibliothek herunterladen. Alternativ können Sie eine der BigQuery-Clientbibliotheken verwenden, um Ihre eigene Lösung zu programmieren.

Fazit

Sie haben die Anleitung abgeschlossen und wissen nun, wie Sie Ihr Empfehlungssystem mit BigQuery ML trainieren, das Modell bereitstellen und die Ergebnisse in der Produktionsumgebung verwenden.

Bereinigen

Damit Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen nicht in Rechnung gestellt werden, löschen Sie entweder das Projekt, das die Ressourcen enthält, oder behalten Sie das Projekt bei und löschen Sie nur diese Ressourcen.

In beiden Fällen sollten Sie diese Ressourcen entfernen, damit sie Ihnen nicht weiter in Rechnung gestellt werden. In den folgenden Abschnitten erfahren Sie, wie Sie diese Ressourcen löschen.

Projekt löschen

Am einfachsten vermeiden Sie weitere Kosten, wenn Sie das für die Anleitung erstellte Projekt löschen.

  1. Wechseln Sie in der Cloud Console zur Seite Ressourcen verwalten.

    Zur Seite „Ressourcen verwalten“

  2. Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.
  3. Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Shut down (Beenden), um das Projekt zu löschen.

Komponenten löschen

Wenn Sie das Projekt nicht löschen möchten, verwenden Sie die folgenden Abschnitte, um die abrechenbaren Komponenten dieser Anleitung zu löschen.

BigQuery-Dataset löschen

  1. Öffnen Sie die BigQuery Console.
  2. Maximieren Sie im Abschnitt Ressourcen das Projekt, in dem Sie diese Anleitung durcharbeiten, und wählen Sie das Dataset bqml aus.
  3. Klicken Sie im Header-Bereich des Datasets auf Dataset löschen.
  4. Geben Sie im eingeblendeten Fenster bqml ein und klicken Sie dann auf Löschen.

Flex-Slots löschen

Wenn Sie Flex-Slots erstellt haben, können Sie diese so löschen:

  1. Klicken Sie in der BigQuery-Konsole auf Reservierungen.
  2. Wählen Sie den Tab Zuweisungen aus.
  3. Suchen Sie die Zeile der Zuweisung, die Sie für die Reservierung model erstellt haben, und klicken Sie in der Spalte Aktionen auf Mehr  und dann auf Löschen.
  4. Wählen Sie den Tab Reservierungen aus.
  5. Suchen Sie die Zeile der Reservierung model und klicken Sie in der Spalte Aktionen auf Mehr  und dann auf Löschen.
  6. Wählen Sie den Tab Slot-Zusicherungen aus.
  7. Suchen Sie die Zeile mit den 500 Flex-Slots, die Sie gekauft haben und klicken Sie in der Spalte Aktionen auf Mehr  und dann auf Löschen.
  8. Geben Sie unter Entfernung von Slot-Zusicherung bestätigen den Wert REMOVE ein.
  9. Klicken Sie auf Fortfahren.

Nächste Schritte