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.
- Was enthält der Brand Analytics Suchbegriff-Bericht?
- Wie findet man fehlende Keywords?
- Welche Daten werden benötigt?
- Keyword-Ideen für ein Produkt ermitteln
- 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.
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 ...
- ... für welche Suchbegriffe das eigene Produkt geklickt wird
- ... welche anderen ASINs für diese Suchbegriffe aus 1. angeklickt werden
- ... für welche Suchbegriffe die ASINs aus 2. angeklickt werden
- ... welche Suchbegrifffe in 3. enthalten sind, aber in 1. nicht
- ... 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:
- Einen (aktuellen) Brand Analytics Suchbegriff-Bericht. Dieser steht allen Markeninhabern auf Amazon zur Verfügung und kann in Brand Analytics heruntergeladen werden
- 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".
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):
searchterm | rank | position | ASIN |
---|---|---|---|
auslaufhahn 3/4 zoll | 363709 | 3 | B00SWKL7UW |
coros apex | 123402 | 2 | B07XKW73D7 |
beanie mütze | 184043 | 1 | B06XS14S7Q |
bose qc35 ohrpolster | 96365 | 1 | B00OCL621Y |
Listingdaten laden
Jetzt benötigen wir noch die Listing-Informationen. Wir nehmen an, dass diese bereits in einem Dataframe namens df_products
geladen wurden:
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:
searchterm | rank | position | ASIN |
---|---|---|---|
schlagcreme | 236213 | 1 | B003SNIRXI |
ruf tortencreme | 370376 | 2 | B003SNIRXI |
sahnepulver | 175608 | 3 | B003SNIRXI |
sprühsahne ohne zucker | 336804 | 3 | B003SNIRXI |
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.
Das gesamte Notebook können Sie hier herunterladen.