Nowa wersja znacznie różni się od poprzednich. Wygląda na to, że będziemy mieli więcej serwisów, w każdym serwisie tylko 2 metody. Np CampaignService w wersji 13 udostępniał szereg metod:
- addCampaign
- addCampaignList
- getCampaign
- getCampaignList
- getCampaignStats
- updateCampaign
- ...
Metoda get zastępuje w zasadzie wszystkie metody z wersji 13 zaczynające się od get.... Mutate zastępuje metody add oraz update.
Metodą get możemy pobrać zarówno dane kampanii jak i jej statystyki. Jako parametr metody podajemy CampaignSelector, w którym to możemy zdefiniować o jakie kampanie i jakie dane nam chodzi. Np wybieramy tylko kampanie o statusie "ACTIVE" albo ID mieszczącym się w zbiorze 1,2,3,4,5.
Zanim przejdziemy do przykładu, najpierw kilka rzeczy które musimy mieć aby skorzystać z API:
- Konto Google
- Auth Token (autoryzacja była inaczej rozwiązana w v13)
- Zainicjalizowane konto adwords sandbox
W moim przykładzie korzystam z rozszerzenia php5-soap.
Dane do nagłówka/autoryzacji:
$headers = array (
'authToken' => 'xxxxxxxxxxx',
'clientEmail' => 'client_1+webdevday.sandbox@gmail.com',
'userAgent' => 'webdevday',
'developerToken' => 'webdevday.sandbox@gmail.com++EUR',
'applicationToken' => 'token',
);
Inicjalizacja klienta i header:
$ns = 'https://adwords.google.com/api/adwords/cm/v200906';
$service = 'https://adwords-sandbox.google.com/api/adwords/cm/v200906/CampaignService';
$client = new SoapClient($service .'?wsdl', array('trace' => true, 'connection_timeout' => 60, 'exceptions' => 1));
$soapHeaders = array(new SOAPHeader($ns, 'RequestHeader', $headers));
Przykład zapytania - odpowiednik metody getAllAdWordsCampaigns() z wersji 13:
$selector = array('ids' => array());
$params = array('selector' => $selector);
$method = 'get';
try {
$response = $client->__soapCall($method, array($params), null, $soapHeaders);
} catch (Exception $e)
{
var_dump($e->getMessage());
var_dump($client->__getLastRequest());
var_dump($client->__getLastResponse());
}
var_dump($response);
Witam,
OdpowiedzUsuńProszę o kontakt na viaro [at] @o2.pl
Mam dla Pana - (autora tego bloga) bardzo ciekawą propozycję współpracy.
Pozdrawiam!
Dość pomocna, chodź stara publikacja. Pomogła mi co nieco wykonać na stronę internetowa mojej firmy
OdpowiedzUsuń