Zum Hauptinhalt springen
Nach der Durchführung einer Auktion für Listings möchten Sie die Gewinner oft mit organischen Ergebnissen kombinieren. Angenommen, Sie erstellen einen Kategoriebereich eines Online-Shops, der auch eine Anzahl gesponserter Produkte anzeigt. Sie benötigen eine Möglichkeit, Ihre Auktionsgewinner in die regulären Kategorieergebnisse “einzufügen”. Diese Seite zeigt die Schritte, die beim Aufbau eines solchen Kategoriebereichs erforderlich sind, aber ähnliche Überlegungen gelten für andere Seiten oder Widgets.

Szenario

Der Kategoriebereich muss Paginierung unterstützen und 3 Produkte pro Seite anzeigen. Wenn möglich, wird das erste Produkt auf jeder Seite ein gesponsertes Produkt sein. Die Produkte auf dieser Kategorieseite haben folgende Struktur:
Die resolvedBidId ist null, wenn das Produkt nicht beworben wird, und enthält eine String-ID, wenn es beworben wird. Unser Ziel ist es, den Pseudocode für einen Endpoint zu haben, der Listen solcher Produkte erstellen könnte.

1. Abfrage Ihrer organischen Ergebnisse

Der erste Schritt besteht darin, Ihre organischen Ergebnisse abzufragen. Die Produkte, die für eine bestimmte Seite und Kategorie angezeigt werden sollten. Der Code dafür könnte so aussehen:
Nehmen wir an, wir müssten diesen Code für die erste Seite der Kategorie Shoes ausführen, und es sind 3 oder mehr Produkte in dieser Kategorie verfügbar. Dieser Code würde dann etwa Folgendes ausgeben:
Beachten Sie, dass diese Produkte noch nicht das resolvedBidId-Feld haben. Fügen wir es hinzu.
Jetzt müssen wir berücksichtigen, was passiert, wenn es keine organischen Ergebnisse für diese Seite und Kategorie gibt. Wir möchten wahrscheinlich einen 404-Fehler zurückgeben und keine Auktionen durchführen. Das gibt uns folgenden Code:
Mit dieser Fehlerbehandlung sind wir bereit, eine Auktion durchzuführen.

2. Durchführung einer Auktion

In unserem Szenario möchten wir eine Auktion für einen einzelnen Slot durchführen:
Sie wissen nicht, wie man eine Auktion für eine Kategorie durchführt? Siehe diese Beispiele.
Wenn es Gewinner gibt, würde die Ausgabe des obigen Codes etwa so aussehen:
Wenn Sie sich die Gewinner ansehen, werden Sie feststellen, dass sie keine Produktdaten enthalten, nur eine Reihe von IDs. Wir müssen die Produktdaten für diese Gewinner abfragen. Außerdem ist es möglich, dass es keine Gewinner gibt. Es kann einfach keine geeigneten aktiven Kampagnen für diese Auktion geben, aber es gibt viele andere potenzielle Gründe. Wie auch immer, wir müssen diesen Fall berücksichtigen und geben einfach die verfügbaren organischen Ergebnisse in products zurück.

3. Abfrage der Produktdaten für Gewinner

Nun, wenn es Gewinner gibt. Wir müssen die Produktdaten für sie abfragen.
Nach unseren vorherigen Beispielen könnte dies etwa Folgendes protokollieren:
Wieder müssen wir die resolvedBidId hinzufügen, um diese Daten zu vervollständigen. Aber diesmal sollten wir sie nicht auf null setzen, da wir jetzt mit beworbenen Produkten arbeiten. Wenn wir annehmen, dass queryProductsByIds Produkte in der gleichen Reihenfolge wie die bereitgestellten ids zurückgibt, können wir die Auktions-IDs wie folgt hinzufügen:
Warum ist diese Auktions-ID erforderlich? Die Auktions-ID ist unerlässlich, damit Topsort Ereignisse Auktionen und Kampagnen zuordnen kann.
Jetzt müssen wir nur noch unsere beworbenen Produkte mit den organischen Ergebnissen zusammenführen.

4. Zusammenführung

Wir möchten die beworbenen Produkte am Anfang der Liste anzeigen. Um dies zu erreichen, müssen wir die promoProducts am Anfang der products hinzufügen. Dies kann jedoch dazu führen, dass products mehr Elemente hat als unsere vorgesehene Seitengröße von 3. Wir müssen es also auf diese Seitengröße zuschneiden.
Jetzt gibt unser Code maximal 3 Produkte zurück, von denen das erste Produkt ein gesponsertes Produkt sein kann.

Vollständiger Code