Google AdWords API – Teil 4
Im 4. Teil meiner AdWords Artikel Reihe geht es um das TargetingIdeaService. Für ein Projekt sollte ich für bereits importierte Keywords die Werte für das Suchvolumen (SEARCH_VOLUME) und Competition (COMPETITION) einlesen. Das ist etwas komplizierter als mit den bisherigen vorgestellten Services, vor allem da hier eher wenig im Internet dazu zu finden ist.
Problem
Leider kann man diese beiden Werte nicht einfach mit dem AdGroupCriterionService abfragen. Aus diesem Grund müssen wir hier extra ein anderes Service abfragen und das ist das TargetingIdeaService.
Lösung
Ich habe die Abfrage an das Service so gestellt, dass es zu einem Keyword als Text die dazugehörigen Werte für das Suchvolumen und Competition liefert. Beim Aufruf gebe ich der Funktion sowohl mein AdWords User Objekt mit, als auch die aktuelle AdWords Version und das Keyword als Text. Zurück bekomme ich ein Array mit den gesuchten Werten:
$values = GetTargetingIdea($user, $adwords_version, $keyword);
Die Funktion schaut folgendermaßen aus:
function GetTargetingIdea(AdwordsUser $user, $adwords_version, $keyword) { // Load the service, so that the required classes are available. $targetingIdeaService = $user->GetTargetingIdeaService($adwords_version); // Create selector. $selector = new TargetingIdeaSelector(); $selector->requestType = "STATS"; $selector->ideaType = 'KEYWORD'; $selector->requestedAttributeTypes = array('SEARCH_VOLUME','COMPETITION'); $relatedToQuerySearchParameter = new RelatedToQuerySearchParameter(); $relatedToQuerySearchParameter->queries = array($keyword); $selector->searchParameters[] = $relatedToQuerySearchParameter; // Create paging controls. $selector->paging = new Paging(0, AdWordsConstants::RECOMMENDED_PAGE_SIZE); $ret = array(); do { // Make the get request. $page = $targetingIdeaService->get($selector); // Display results. if (isset($page->entries)) { foreach ($page->entries as $adGroupAd) { $ret[] = array( 'searchvolume' => $adGroupAd->data[0]->value->value, 'competition' => $adGroupAd->data[1]->value->value ); } } // Advance the paging index. $selector->paging->startIndex += AdWordsConstants::RECOMMENDED_PAGE_SIZE; } while ($page->totalNumEntries > $selector->paging->startIndex); return $ret; }
Anders als bei den bisherigen Services gibt es hier eine eigene Selector Klasse. Hier setzen wir den requestType auf STATS, da wir Daten von bereits existierenden Keywords haben wollen und als ideaType klarerweise KEYWORD. Im requestedAttributeTypes Array definieren wir noch alle Felder die wir von der API geliefert bekommen wollen. Ganz wichtig ist zum Abschluss noch das searchParameters Array wo wir gezielt angeben, dass wir nur die Werte eines einzigen Keywords haben wollen.
Teil 1 | Teil 2 | Teil 3 | Teil 4 | Teil 5 | Teil 6