Dynamische Prijzen en Kortingen in Adwords Advertenties
Ons wordt vaak gevraagd om product informatie in advertentieteksten te updaten vanuit een Product Feed. Soms is het aanpassen van enkel de prijzen echter al genoeg. In zo’n geval is het niet nodig om de gehele advertentietekst te updaten maar kan gebruik gemaakt worden van de “AdParams” functie van de Adwords API. Hiermee kun je een variabele waarde in een advertentietekst invoeren, ongeveer gelijk aan de dynamische keyword functie van Adwords.
Hoe werken AdParams?
Ad Parameters lijken veel op de meer gebruikelijke “Dynamic Keyword Insertion”. Echter wordt nu geen zoekwoord maar een waarde ingevoerd. Deze waarde kan staan voor een prijs, een kortingspercentage, datum, tijd en nog veel meer. De stappen voor het opstellen van zo’n advertentie zijn als volgt:
- Maak een advertentie met de plaatshouder voor de parameter
- Koppel elk zoekwoord in de advertentiegroep aan een waarde die ingevuld moet worden als de advertentie getoond wordt
- Als dit zoekwoord een advertentie activeert, zal de plaatshouder in de advertentietekst worden vervangen door de waarde die gekoppeld is aan dit zoekwoord
Een advertentie schrijven met een parameter
We beginnen door een voorbeeld advertentie op te stellen. De syntax voor de parameter is {param1:default}. We geven dus bijvoorbeeld de volgende advertentietekst in:
Gezien er nog geen parameters gespecificeerd zijn, zal de advertentie worden weergegeven met de standaard (default) waarde van 20%:
Een parameter specificeren per zoekwoord
De volgende stap is het invoeren van een waarde voor de parameter van het gebruikte zoekwoord. Dit gaat via de Adwords API. Wij maakten gebruik van het volgende PHP Script:
<?php
require_once 'Google/Api/Ads/AdWords/Lib/AdWordsUser.php';
// AdWords API Credentials
$username = "test@example.com";
$password = "vulhierjewachtwoordin";
$customerId = "123-456-7890";
$developerToken = "vulhierjedevelopertokenin";
// Create an AdWords API user
$user = new AdWordsUser(null, $username, $password, $developerToken);
$user->SetClientId($customerId);
// Get a reference to the AdParam service
$adParamService = $user->GetService('AdParamService', 'v201109');
// Create an AdParam for a specific keyword
$adGroupId = "KEYWORD_ADGROUP_ID";
$criterionId = "KEYWORD_ID";
$insertionText = "30%";
$paramIndex = "1";
$adParam = new AdParam($adGroupId, $criterionId, $insertionText, $paramIndex);
// Upload the new AdParam to AdWords
$operation = new AdParamOperation();
$operation->operand = $adParam;
$operation->operator = "SET";
$operations = array($operation);
$adParams = $adParamService->mutate($operations);
?>
Als je in dit script de juiste variabelen aanpast en het uitvoert zal Google binnen ca. vijf minuten de nieuwe kortingswaarde van 30% tonen in de zoekresultaten.
Hoe werkt deze code?
Het eerste deel van het script is de gebruikelijke code om toegang tot de Adwords API te krijgen. Hiervoor heb je je developer token nodig, je Google email adres en wachtwoord en de customer ID van het account waar je toegang tot wilt hebben. Hieronder wordt een referentie naar de API service gemaakt.
$adParamService = $user->GetService('AdParamService', 'v201109');
Vervolgens komt het belangrijkste deel van het script. Hier wordt de Advertentie Parameter gemaakt.
$adGroupId = "KEYWORD_ADGROUP_ID";
$criterionId = "KEYWORD_ID";
$insertionText = "30%";
$paramIndex = "1";
$adParam = new AdParam($adGroupId, $criterionId, $insertionText, $paramIndex);
Voor dit stukje code heb je de API Id’s van de advertentiegroep en het zoekwoord nodig waarvoor je de parameter wilt specificeren. Deze kun je verkrijgen door een rapport uit te draaien in de Adwords user interface. Vervolgens moet je een parameterwaarde invoeren bij de variabele: “$insertionText”. Daarnaast moet je de “$paramIndex” op 1 of 2 zetten. Wat deze twee variabelen betekenen volgt op de volgende pagina.
De $insertionText variabele
Dit is de belangrijkste variabele van de PHP code. Hiermee geef je de vervangende waarde aan voor de plaatshouder in de advertentietekst. Geef hier bijvoorbeeld 30% in. Je kunt deze variabele echter voor veel meer dan alleen prijzen en kortingspercentages gebruiken:
- Je kunt punten en commas gebruiken: 2.999,50
- Je kunt valutasymbolen toevoegen voor en na het getal: €30 en 30€
- Je kunt plus en min symbolen gebruiken: +20 en -10
- Je mag twee getallen scheiden door een “forward slash”: 50/50
Het maximaal aantal toegestane cijfers en letters in een parameter is 25. Daarnaast moet de advertentie natuurlijk ook voldoen aan de standaard voorwaarden voor het aantal letters per regel.
De $paramIndex variabele
Met deze variabele kun je wisselen tussen de twee mogelijke parameters “param1” en “param2”. Je kunt per advertentie namelijk twee parameters invoeren. Het is dus mogelijk om tegelijk bijvoorbeeld een prijs en een korting te noemen. Zet hiervoor de $paramIndex variabele op 1 danwel 2.
Een Advertentie Parameter verwijderen
Je kunt eenvoudig een eerder ingestelde waarde voor een parameter verwijderen met dezelfde code. Verander hiervoor de “service operation” van “ADD” naar “REMOVE”:
// Upload the new AdParam to AdWords
$operation = new AdParamOperation();
$operation->operand = $adParam;
$operation->operator = "REMOVE";
$operations = array($operation);
$adParams = $adParamService->mutate($operations);
?>
De voordelen van AdParams boven het aanpassen van hele advertenties
Het maken van kleine veranderingen aan advertentieteksten heeft een aantal nadelen. Hoe klein de verandering ook is, je maakt hiermee altijd een nieuwe advertentie. Hierdoor verlies je alle klik en conversiedata en moet de advertentie opnieuw door het goedkeuringsproces. Met bovengenoemde methode worden deze nadelen ontweken en zal de advertentie veel sneller bijgewerkt worden. Verder verslint deze methode tevens veel minder API units dan het aanpassen van de hele advertentie (40 vs. 0.1). Tot slot is er met de AdParams methode mogelijkheid tot het integreren van dynamische prijzen in advertenties met een product feed. Er is dus veel potentie voor automatisering en er kunnen grote campagnes mee onderhouden worden.