Cover Image
Trutz Fries

Fehlende Amazon Listing Keywords mit Hilfe von Brand Analytics ermitteln

03.11.2021 • Lesezeit: ca. 6 min • von Trutz Fries

Im Rahmen der Suchmaschinen-Optimierung auf Amazon (Amazon SEO) ist es nach wie vor entscheidend, dass relevante Suchbegriffe im Listing platziert werden.

In diesem Artikel zeigen wir Ihnen, wie Sie mit Hilfe des Brand Analytics Suchbegriff-Berichtes fehlende Keywords für Ihre Listings auf Knopfdruck ermitteln.

  1. Was enthält der Brand Analytics Suchbegriff-Bericht?
  2. Wie findet man fehlende Keywords?
  3. Welche Daten werden benötigt?
  4. Keyword-Ideen für ein Produkt ermitteln
    1. Brand Analytics Daten laden
    2. Listingdaten laden
    3. Für welche Keywords rankt unser Produkt? (Schritt 1)
    4. Welche ASINs ranken zu den Keywords aus Schritt 1? (Schritt 2)
    5. Für welche Keywords ranken diese ASINs? (Schritt 3)
    6. Welche Keywords sind neu? (Schritt 4)
    7. Welche Keywords fehlen im Listing? (Schritt 5)
  5. Fazit

Was enthält der Brand Analytics Suchbegriff-Bericht?

Der Brand Analytics Suchbegriff-Bericht wird von Amazon wöchentlich veröffentlich. Er enthält für Deutschland die ca. 500.000 am häufigsten genutzten Suchbegriffe auf Amazon. Zudem zeigt er an, welche 3 ASINs am häufigsten von den Kunden angeklickt werden, nachdem diese nach dem jeweiligen Suchbegriff gesucht haben. Mehr Infos zu dem Bericht finden Sie in unserem Artikel zum Thema Brand Analytics Suchbegriffbericht.

Amazon Brand Analytics Suchbegriffe-Bericht
Auszug aus dem Bericht

Wie findet man fehlende Keywords?

Die Idee, fehlende Keywords für das eigene Listing zu ermitteln, ist eigentlich ganz einfach und lässt sich in 5 Schritte gliedern:

Wir ermitteln ...

  1. ... für welche Suchbegriffe das eigene Produkt geklickt wird
  2. ... welche anderen ASINs für diese Suchbegriffe aus 1. angeklickt werden
  3. ... für welche Suchbegriffe die ASINs aus 2. angeklickt werden
  4. ... welche Suchbegrifffe in 3. enthalten sind, aber in 1. nicht
  5. ... welche Suchbegriffe aus 4. nicht im Listing verwendet werden

Einmal programmiert, lässt sich dieses Skript nicht nur für ein, sondern für alle Produkte ausführen. Doch dazu später mehr.

Welche Daten werden benötigt?

Um die Keyword-Ideen zu ermitteln, benötigt man zwei Datensätze:

  1. Einen (aktuellen) Brand Analytics Suchbegriff-Bericht. Dieser steht allen Markeninhabern auf Amazon zur Verfügung und kann in Brand Analytics heruntergeladen werden
  2. Eine CSV Datei mit den eigenen Listingdaten.

Die CSV Datei mit den Listingdaten sollte die folgenden Spalten enthalten:

  • Marktplatz (z.B. "DE")
  • ASIN
  • Titel
  • Bullet 1
  • Bullet 2
  • Bullet 3
  • Bullet 4
  • Bullet 5

Wer mag, kann das Skript noch um die Allgemeinen Schlüsselwörter ergänzen (auch "hidden keywords" genannt), wenn auch diese geprüft werden sollen.

Keyword-Ideen für ein Produkt ermitteln

Gehen wir die Schritte anhand eines Beispiels durch. Hier nehmen wir als Produkt die "RUF Schlagcreme".

Beispiel Produkt RUF Schlagcreme
Beispiel Produkt RUF Schlagcreme

Gehen wir jetzt also die o.g. Schritte einmal durch. Vorher müssen wir jedoch noch unsere Daten laden.

Brand Analytics Daten laden

Laden wir also als erstes unsere Brand Analytics Suchbegriff-Daten:

fileNameBA = "./Amazon-Suchbegriffe_DE.csv"
thousandSeparator = "." # DE
columns = ["Suchbegriff","Suchfrequenz-Rang ","#1 der angeklickten ASINs","#2 der angeklickten ASINs","#3 der angeklickten ASINs"] # DE
# columns = ["Search Term","Search Frequency Rank","#1 Clicked ASIN","#2 Clicked ASIN","#3 Clicked ASIN"] # US

# Load data
dfBA = pd.read_csv(fileNameBA, thousands=thousandSeparator, usecols=columns, engine="python", error_bad_lines=True, encoding='utf-8', skiprows=1,  sep=",")

# Rename columns
dfBA.columns = ['searchterm', 'rank', '1', '2', '3']

# Unmelt dfBA from wide to long
dfBA_Long = dfBA.melt(id_vars=["searchterm", "rank"], var_name="position", value_name="ASIN")

# Make position an int
dfBA_Long = dfBA_Long.astype({"position": int})

# Drop N/A
dfBA_Long = dfBA_Long.dropna()

# Reset index and sort
dfBA_Long_WithIndex = dfBA_Long.set_index('searchterm')
dfBA_Long_WithIndex = dfBA_Long_WithIndex.sort_index()

Wir haben die Daten entpivotisiert, so dass diese jetzt im folgenden Format vorliegen (Auszug):

searchtermrankpositionASIN
auslaufhahn 3/4 zoll3637093B00SWKL7UW
coros apex1234022B07XKW73D7
beanie mütze1840431B06XS14S7Q
bose qc35 ohrpolster963651B00OCL621Y

Listingdaten laden

Jetzt benötigen wir noch die Listing-Informationen. Wir nehmen an, dass diese bereits in einem Dataframe namens df_products geladen wurden:

Listing-Daten für unser Produkt
Listing-Daten für unser Produkt

Jetzt haben wir auch schon alles, was wir brauchen. Zeit für unseren 5-Schritte-Ansatz!

Für welche Keywords rankt unser Produkt? (Schritt 1)

Ermitteln wir als erstes, für welche Keywords unser Produkt in dem Brand Analytics Suchbegriffbericht gefunden wird:

# Get "owned keywords", i.e. keywords the ASIN in question is clicked on already
ASIN = 'B003SNIRXI'
ownedKeywords = []
foundKeywords = dfBA_Long[dfBA_Long['ASIN'] == ASIN].searchterm.unique()
ownedKeywords.append(foundKeywords)

Das Ergebnis:

searchtermrankpositionASIN
schlagcreme2362131B003SNIRXI
ruf tortencreme3703762B003SNIRXI
sahnepulver1756083B003SNIRXI
sprühsahne ohne zucker3368043B003SNIRXI

bzw. als Array:

['schlagcreme' 'ruf tortencreme' 'sahnepulver' 'sprühsahne ohne zucker']

Welche ASINs ranken zu den Keywords aus Schritt 1? (Schritt 2)

Schauen wir jetzt, welche anderen ASINs zu diesen Keywords ranken:

# Get other ASINs from competitors for ownedKeywords
otherASINs = []
for searchterm in ownedKeywords[0]:
    # print(searchterm)
    foundASINs = dfBA_Long[dfBA_Long['searchterm'] == searchterm].ASIN.unique().flatten()
    otherASINs.append(foundASINs)

# Flatten array of arrays
flat_list_ASINs = [item for sublist in otherASINs for item in sublist]

# Make array unique
flat_list_ASINs = set(flat_list_ASINs)

# Remove own ASIN
flat_list_ASINs.remove(ASIN)

Als Ergebnis bekommen wir diese ASINs:

{'B004WW9QZW',
 'B01N29KQL6',
 'B06XQM4T25',
 'B07KZPP6JK',
 'B07X9GMZHV',
 'B08DDTPPDW'}

Für welche Keywords ranken diese ASINs? (Schritt 3)

Jetzt prüfen wir, für welche Keywords die o.g. ASINs aus Schritt 2 geklickt werden:

# Get keywords the other ASINs are clicked on
keywordsFromOtherASINs = dfBA_Long[dfBA_Long['ASIN'].isin(flat_list_ASINs)].searchterm.unique()

Wir erhalten als Ergebnis:

['tortencreme' 'sahnepulver' 'torten creme' 'vegane sahne'
 'sprühsahne ohne zucker' 'ruf tortencreme' 'schlagcreme' 'sprühsahne']

Welche Keywords sind neu? (Schritt 4)

Jetzt prüfen wir, welche Keywords in Schritt 3 enthalten sind, aber in Schritt 1 nicht gefunden werden.

# Get keywords which other ASINs are clicked on but not the own ASIN yet
A = np.array(ownedKeywords)
B = np.array(keywordsFromOtherASINs)
missingKeywords = np.setdiff1d(B, A)

Als Ergebnis erhalten wir:

['sprühsahne' 'torten creme' 'tortencreme' 'vegane sahne']

Im nächsten Schritt vereinzeln wir die Begriffe und behalten alle Keywords mit mehr als vier Zeichen:

# Flatten array of arrays and remove duplicates using a set
missingKeywords_flattened = set(' '.join(missingKeywords).split(' '))

# Only get keywords which have a minimum length of 4
missingKeywords_flattened_reduced = [str for str in missingKeywords_flattened if len(str) >= 4]
missingKeywords_flattened_reduced.sort()

Im Ergebnis erhalten wir nun folgendes:

['creme', 'sahne', 'sprühsahne', 'torten', 'tortencreme', 'vegane']

Welche Keywords fehlen im Listing? (Schritt 5)

Jetzt prüfen wir, welche Keywords aus Schritt 4 in unserem Listing fehlen.

Dazu wandeln wir alles in Kleinbuchstaben um und verbinden die Bullet-Points zu einem langen Satz.

# Get the product title for ASIN in question
productTitle = df_Products[df_Products['ASIN (child)'] == ASIN]['Product Title'].values[0].lower()

# Get a string of all 5 bullet points
allBullets = []
currentProduct = df_Products[df_Products["ASIN (child)"] == ASIN]
for i in range (1,6):
    allBullets.append(currentProduct['Bullet Point ' + str(i)].values[0])

allBulletsCombined = ' '.join(allBullets)

Im Anschluss können wir prüfen, ob ein Keyword enthalten ist:

# Check if a term from missingKeywords_flattened_reduced is not in product title or bullet
termsNotFoundInListing = []
for term in missingKeywords_flattened_reduced:
    if (term.lower() not in productTitle) and (term.lower() not in allBulletsCombined.lower()):
        termsNotFoundInListing.append(term)

print("Missing keywords: " + str(termsNotFoundInListing))

Und als Ergebnis erhalten wir folgendes:

Missing keywords: ['sprühsahne', 'tortencreme', 'vegane']

Diese Keywords sollten - sofern passend - noch im Listing ergänzt werden und mit etwas Glück wird das Produkt auch für diese Keywords bald angeglickt. Natürlich sollten die Keywords nicht blind verwendet, sondern nochmal auf Sinnhaftikeit geprüft werden. Das Keyword vegane sollte nur aufgenommen werden, wenn die Schlagcreme auch wirklich vegan ist.

Fazit

Hat man die Daten zur Hand, lässt sich auch ein großer Produktkatalog in wenigen Sekunden auf fehlende Keywords prüfen. Für diesen Zweck wurde das u.a. Skript entwickelt. Es prüft auch für große Produktkataloge in Sekunden, welche Keywords noch ergänzt werden müssten. Das Ergebnis wird dabei in einer Excel-Datei gespeichert.

Keyword Vorschläge in Excel
Keyword Vorschläge in Excel

Das gesamte Notebook können Sie hier herunterladen.

Brauchen Sie mehr Übersicht auf Amazon?
14 Tage kostenlos testen
Haben Sie noch Fragen? Rufen Sie uns an!
Tel. 0221-29 19 12 32 | info@amalytix.com