Zeigen Sie Preise in dynamischen Google Ads-Anzeigen an
Google Ads-Feeds können mehr als einen Preis für einen Artikel enthalten, z. B. den regulären Preis und einen Sonderangebotspreis. Sie können den dynamischen Google Ads-Anzeigen in Google Web Designer Funktionen hinzufügen, um festzulegen, welcher Preis für jeden Feed-Artikel angezeigt werden soll.
Erfahren Sie mehr über das Erstellen dynamischer Anzeigen für Google Ads in Google Web Designer.
Zeigen Sie einen einzigen Preis für jeden Artikel an
Wenn Ihr Feed nur einen einzigen Preis für jeden Artikel enthält, binden Sie den Textinhalt des Preiselements an das Preisattribut, das Sie anzeigen möchten, z. B. Einzelhandel 0 > Regulärer Preis .
Zeigen Sie den Verkaufspreis neben dem regulären Preis an
Sie können Code verwenden, um festzulegen, wie Preise angezeigt werden, je nachdem, ob ein Artikel einen Verkaufspreis hat und ob der Verkaufspreis vom regulären Preis abweicht. Im Beispiel unten wird der Verkaufspreis des Artikels im Angebot unterhalb des regulären Preises angezeigt, der durchgestrichen dargestellt ist.
Die folgenden responsiven Vorlagen für Google Ads enthalten diese Funktion bereits:
- Dynamische Remarketing-Einzelseite mit Panels und individuellen CTA-Buttons
- Dynamisches Remarketing mit ausgerichteten Panels und individuellen CTA-Buttons
- Dynamisches Remarketing mit Headline und individuellen CTA-Buttons
- Dynamisches Remarketing mit Überschrift und einzelnem CTA-Button
- Dynamisches Remarketing mit Paginierung und einzelnem CTA
- Dynamisches Remarketing mit Single CTA II
Andernfalls können Sie, wenn Sie mit der Verwendung von Google Web Designer in der Codeansicht vertraut sind, den erforderlichen Code hinzufügen, indem Sie die folgenden Schritte ausführen. Dieser Prozess funktioniert für das dynamische Einzelhandelsschema, aber Sie können ihn möglicherweise für andere Feedtypen anpassen, indem Sie andere Bindungen verwenden.
1. Erstellen Sie Textelemente für die Preise
Erstellen Sie im Creative drei Textelemente für die folgenden Preistypen:
- Standardpreis - Dieser Preis wird von selbst angezeigt, wenn es keinen Verkaufspreis gibt.
- Aktionspreis – Sofern im Feed angegeben, wird dieser Preis neben dem regulären Preis angezeigt.
- Regulärer Preis – Wenn der Sonderangebotspreis im Feed bereitgestellt wird, wird dieser Preis neben dem Sonderangebotspreis angezeigt, normalerweise durchgestrichen, damit Betrachter die beiden vergleichen können.
Alle drei Textelemente sollten dasselbe Elternelement haben.
2. Bindungen hinzufügen
Fügen Sie im Bereich „Dynamisch" dynamische Bindungen für Textinhalte der Preiselemente zu den folgenden Datenschemaobjekten hinzu:
- Standardpreis - An Einzelhandel binden 0 > Niedrigster Preis
- Verkaufspreis - An Einzelhandel binden 0 > Verkaufspreis
- Regulärer Preis – An Einzelhandel binden 0 > Regulärer Preis
Für andere Datenschemas als Einzelhandel müssen Sie möglicherweise den Standardpreis und den regulären Preis an dasselbe Datenschemaobjekt binden.
3. Klassen hinzufügen
Fügen Sie in der Codeansicht die folgenden Klassen hinzu:
- Übergeordnetes Element, das die Preise enthält - Fügen Sie dem übergeordneten Element die Klasse
js-item
hinzu. Wenn Ihre Preise Teil einer Swipeable Gallery-Gruppe sind, fügen Sie diese Klasse der Gruppeninstanz hinzu. - Standardpreis - Fügen Sie dem Textelement die Klasse
js-item-price
hinzu. - Verkaufspreis – Fügen Sie dem Textelement die Klasse
js-item-saleprice
hinzu. - Regulärer Preis – Fügen Sie dem Textelement die Klasse
js-item-regularprice
hinzu.
4. Funktionen hinzufügen
Kopieren Sie in der Codeansicht den entsprechenden Code von unten und fügen Sie ihn in Ihr Dokument innerhalb des <head>
-Tags ein, je nachdem, ob Ihre Elemente in einer Swipe-Galerie angezeigt werden oder nicht.
Funktioniert, wenn es eine Swipeable Gallery gibt
Dieser Code geht davon aus, dass Ihre Swipeable Gallery die ID von swipegallery-items
hat. Wenn dies nicht der Fall ist, ändern Sie den hervorgehobenen Text in die richtige ID.
<script>
initItemDisplay_ = function(item) {
gwd.myGallery = document.getElementById('swipegallery-items');
elems = document.querySelectorAll('#' + gwd.myGallery.id + ' [data-gwd-grp-id=item-name]');
elemsCta = document.querySelectorAll('#' + gwd.myGallery.id + ' [data-gwd-grp-id=cta-on]');
var itemPrice = item.querySelector('.js-item-price');
var itemSalePrice = item.querySelector('.js-item-saleprice');
var itemRegularPrice = item.querySelector('.js-item-regularprice');
displayCorrectPrices(itemPrice, itemSalePrice, itemRegularPrice);
// turn off all item highlights.
for (let i = 0; i < elems.length; i++) {
elems[i].style.opacity = 0;
}
};
displayCorrectPrices = function(defaultPrice, salePrice, regularPrice) {
var priceValues = {
defaultPrice: defaultPrice && defaultPrice.textContent || null,
salePrice: salePrice && salePrice.textContent || null,
regularPrice: regularPrice && regularPrice.textContent || null
};
showSalePrice(true, defaultPrice, salePrice, regularPrice);
if (isSalePriceEnabled_(priceValues)) {
showSalePrice(true, defaultPrice, salePrice, regularPrice);
} else {
showSalePrice(false, defaultPrice, salePrice, regularPrice);
}
function showSalePrice(state, defaultPrice, salePrice, regularPrice) {
showElement(defaultPrice, !state);
showElement(salePrice, state);
showElement(regularPrice, state);
function showElement(el, state) {
if (!el) return;
if (state) {
el.style.opacity = 1;
el.style.visibility = 'visible';
} else {
el.style.opacity = 0;
el.style.visibility = 'hidden';
}
};
};
function isSalePriceEnabled_(item) {
var isEnabled = item.salePrice && item.regularPrice &&
!isEmptyString(item.salePrice) && !isEmptyString(item.regularPrice) &&
stringValuesAreUnique(item.salePrice, item.regularPrice);
return isEnabled;
function isEmptyString(str) {
if (!str) {
return true;
}
str = str.trim();
return !str || !str.length;
};
function stringValuesAreUnique(value1, value2) {
var valuesNotEqual = value1 != value2;
var valuesBothEmpty = isEmptyString(value1) && isEmptyString(value2);
return valuesNotEqual && !valuesBothEmpty;
};
};
};
</script>
Funktioniert, wenn keine Swipeable Gallery vorhanden ist
<script>
initItemDisplay_ = function(item) {
var itemPrice = item.querySelector('.js-item-price');
var itemSalePrice = item.querySelector('.js-item-saleprice');
var itemRegularPrice = item.querySelector('.js-item-regularprice');
displayCorrectPrices(itemPrice, itemSalePrice, itemRegularPrice);
};
displayCorrectPrices = function(defaultPrice, salePrice, regularPrice) {
var priceValues = {
defaultPrice: defaultPrice && defaultPrice.textContent || null,
salePrice: salePrice && salePrice.textContent || null,
regularPrice: regularPrice && regularPrice.textContent || null
};
showSalePrice(true, defaultPrice, salePrice, regularPrice);
if (isSalePriceEnabled_(priceValues)) {
showSalePrice(true, defaultPrice, salePrice, regularPrice);
} else {
showSalePrice(false, defaultPrice, salePrice, regularPrice);
}
function showSalePrice(state, defaultPrice, salePrice, regularPrice) {
showElement(defaultPrice, !state);
showElement(salePrice, state);
showElement(regularPrice, state);
function showElement(el, state) {
if (!el) return;
if (state) {
el.style.opacity = 1;
el.style.visibility = 'visible';
} else {
el.style.opacity = 0;
el.style.visibility = 'hidden';
}
};
};
function isSalePriceEnabled_(item) {
var isEnabled = item.salePrice && item.regularPrice &&
!isEmptyString(item.salePrice) && !isEmptyString(item.regularPrice) &&
stringValuesAreUnique(item.salePrice, item.regularPrice);
return isEnabled;
function isEmptyString(str) {
if (!str) {
return true;
}
str = str.trim();
return !str || !str.length;
};
function stringValuesAreUnique(value1, value2) {
var valuesNotEqual = value1 != value2;
var valuesBothEmpty = isEmptyString(value1) && isEmptyString(value2);
return valuesNotEqual && !valuesBothEmpty;
};
};
};
</script>
5. Fügen Sie ein Ereignis hinzu
Wechseln Sie in der Entwurfsansicht zum Bedienfeld „Ereignisse" und fügen Sie ein neues Ereignis hinzu, um den Code aus dem vorherigen Schritt auszulösen. Konfigurieren Sie das Ereignis gemäß einer der folgenden Tabellen, je nachdem, ob Sie eine Swipe-Galerie haben oder nicht:
Ereignis, wenn eine Swipe-Galerie vorhanden ist
Ändern Sie bei Bedarf die ID für Ihre Swipeable Gallery im benutzerdefinierten Code.
Ziel | swipegallery-items |
---|---|
Fall | Wischbare Galerie > Bilder geladen |
Aktion | Benutzerdefiniert > Benutzerdefinierte Aktion hinzufügen |
Benutzerdefinierter Code | var gallery = document.getElementById(' swipegallery-items '); var gallery = document.getElementById(' swipegallery-items '); var gallery = document.getElementById(' swipegallery-items '); |
Ereignis, wenn keine Swipe-Galerie vorhanden ist
Ziel | page1 |
---|---|
Fall | Seite > Bereit, die Seite zu präsentieren |
Aktion | Benutzerdefiniert > Benutzerdefinierte Aktion hinzufügen |
Benutzerdefinierter Code | var items = document.querySelectorAll('.js-item'); |
No comments:
Post a Comment