jueves, 17 de septiembre de 2015

Operaciones básicas con API AdWords

Hola a todos.

A continuación os voy a enseñar un poco de código para realizar algunas de las operaciones más básicas que se pueden hacer con la API de AdWords.

Obtener todas las campañas de un cliente:

$user = new AdWordsUser();
$campaignService = $user->GetService('CampaignService', ADWORDS_VERSION);

$selector = new Selector();
$selector->fields = array('Id', 'Name');
$selector->ordering[] = new OrderBy('Name', 'ASCENDING');
$page = $campaignService->get($selector);

if (isset($page->entries)) {
 $campaigns = array();
 foreach ($page->entries as $campaign) {
  array_push($campaigns, $campaign);
 }
}



Obtener todos los grupos de anuncios de una campaña:


$adGroupService = $user->GetService('AdGroupService', ADWORDS_VERSION);

$selector = new Selector();
$selector->fields = array('Id', 'Name');
$selector->ordering[] = new OrderBy('Name', 'ASCENDING');

$selector->predicates[] = new Predicate('CampaignId', 'IN', array($campaign->id));
$page = $adGroupService->get($selector);

if (isset($page->entries)) {
 $AdGroups = array();
    foreach ($page->entries as $adGroup) {
     array_push($AdGroups, $adGroup);
    }
}



Obtener todos los anuncios de texto de un grupo de anuncios:


$adGroupAdService = $user->GetService('AdGroupAdService', ADWORDS_VERSION);

$selector = new Selector();
$selector->fields = array('Headline', 'Id');
$selector->ordering[] = new OrderBy('Headline', 'ASCENDING');

$selector->predicates[] = new Predicate('AdGroupId', 'IN', array($adGroup->id));
  $selector->predicates[] = new Predicate('AdType', 'IN', array('TEXT_AD'));
// By default disabled ads aren't returned by the selector. To return them
// include the DISABLED status in a predicate.
$selector->predicates[] = new Predicate('Status', 'IN', array('ENABLED', 'PAUSED', 'DISABLED'));

$page = $adGroupAdService->get($selector);

if (isset($page->entries)) {
 $textAds = array();
 foreach ($page->entries as $adGroupAd) {
    array_push($textAds, $adGroupAd->ad);
   }
}



Obtener todas las keywords de un grupo de anuncios:


$adGroupCriterionService = $user->GetService('AdGroupCriterionService', ADWORDS_VERSION);


$selector = new Selector();
$selector->fields = array('Id', 'CriteriaType', 'KeywordMatchType','KeywordText');
$selector->ordering[] = new OrderBy('KeywordText', 'ASCENDING');

$selector->predicates[] = new Predicate('AdGroupId', 'IN', array($this->info->id));
$selector->predicates[] = new Predicate('CriteriaType', 'IN', array('KEYWORD'));
$page = $adGroupCriterionService->get($selector);

if (isset($page->entries)) {
   $keywords = array();
  foreach ($page->entries as $adGroupCriterion) {
   array_push($keywords, $adGroupCriterion->criterion);

  }
}


Podéis bajaros un proyecto completo dónde se usan estos scripts en https://github.com/nural/API-AdWords

Un saludo!

viernes, 11 de septiembre de 2015

Configuración API AdWords: Paso 6/6

Hola a todos.

En el post anterior vimos como configurar la librería PHP de la API de AdWords y a continuación veremos un par de ejemplos de uso de la API.

Para realizar los ejemplos nos vamos a apoyar en los ejemplos que nos da la librería de PHP. Lo que vamos a hacer es crear un par de campañas y dentro de una de esas campañas crear un par de grupo de anuncios y dentro de uno de los grupos crearemos 5 anuncios.

Para crear las campañas tenemos que lanzar uno de los scripts que vienen en la carpeta examples de la librería de PHP:

php -f ./examples/AdWords/v201506/BasicOperations/AddCampaigns.php

En el prompt saldrá un par de líneas diciéndonos que se han añadido dos campañas, es más si nos vamos a nuestra cuenta de AdWords veremos las dos campañas creadas.



Una vez creadas las campañas vamos añadir dos grupos de anuncios en la primera campaña. Para ello primero debemos saber cuál es el ID de la misma.
Si nos hemos fijado bien, en el prompt de la ejecución anterior, salía los IDs de cada campaña pero si no los has vistos puedes lanzar el siguiente script para ver los IDs de cada campaña:

php -f ./examples/AdWords/v201506/BasicOperations/GetCampaigns.php



Una vez que conocemos los IDs de las campañas copiamos el primer ID y lo copiamos en el script de creación de los grupos de anuncios. Para ello tenemos que abrir el script AddAdGroups.php que se encuentra en la misma carpeta que los anteriores y cambiamos la siguiente línea con el ID de la campaña:


// Enter parameters required by the code example.
$campaignId = 'ID_CAMPAÑA';

A continuación lanzamos este script:

php -f ./examples/AdWords/v201506/BasicOperations/AddAdGroups.php

Al igual que antes nos mostrará dos mensajes con la creación de grupos de anuncios y con un ID para cada grupo de anuncio, además en nuestra cuenta de AdWords deberían mostrarse:



Por último, vamos a crear cinco anuncios para uno de estos grupos. Al igual que antes necesitamos un ID en este caso será el ID de uno de estos dos grupos. Para conseguir el ID de los grupos podemos verlo en el prompt de la creación de los grupos o llamando al siguiente script (recuerda que tienes que cambiar la variable campaignId dentro del script para obtener los IDs):

php -f ./examples/AdWords/v201506/BasicOperations/GetAdGroups.php

Una vez que tenemos el ID lo copiamos en el script AddTextAds.php:

// Enter parameters required by the code example.
$adGroupId = 'ID_GROUP';

Para terminar habrá que lanzar el script:

php -f ./examples/AdWords/v201506/BasicOperations/AddTextAds.php

Una vez lanzado se muestra que se han creado 5 anuncios y si nos vamos a la cuenta de AdWords los podremos ver:





Como veis no hemos tocado casi nada de código y solo nos hemos dedicado a lanzar script ya creados pero nos sirve de punto de inicio para empezar a hacer cosas mucho más complejas.

Con el fin de este post terminamos con el tutorial de configuración de la API AdWords, si tenéis cualquier duda o sugerencia no dudéis en escribir.

Un saludo!

lunes, 7 de septiembre de 2015

Configuración API AdWords: Paso 5/6

Hola a todos.

En el post anterior vimos autenticar nuestro proyecto en OAuth 2.0 para poder usar la API de AdWords y ahora vamos, por fin, a meternos con algo de código para hacer una llamada a la API.

Para ello tenemos que usar una de las librerías que nos proporciona Google sobre su API de AdWords, https://developers.google.com/adwords/api/docs/clientlibraries. En mi caso, usaré la librería de PHP que podéis encontrar aquí https://github.com/googleads/googleads-php-lib.

No hay una razón especifica de porqué usar una librería u otra, en mi caso elegí PHP porque es el lenguaje con el que me siento más cómodo. Todos los ejemplos y tutoriales que encontréis en este blog serán sobre PHP, incluido este post.

Una vez que tengamos la librería en nuestro servidor habrá que meter nuestros credenciales. Para ello tendremos que ir al siguiente fichero:

./lib/Google/Api/Ads/AdWords/auth.ini




Y habrá que rellenar cada campo con nuestros credenciales (lo valores siempre entre comillas):



  • developerToken: Se encuentra en el panel de AdWords en el "Centro de la API de AdWords" de nuestra cuenta MCC.
  • userAgent: Se encuentra en el panel de AdWords en el "Centro de la API de AdWords"  de nuestra cuenta MCC.


  • clientCustomerId: Sera el Id de la cuenta del cliente. Lo podemos ver en la cuenta de AdWords que tenga a ese cliente. En el caso de que estés usando una cuenta de prueba, tendrás que crear una nueva cuenta de AdWords y de ahí coger el Id.


  • client_id: Se encuentra en las credenciales creadas en Google Developers Console.
  • client_secret: Se encuentra en las credenciales creadas en Google Developers Console.
  • refresh_token: Para conseguir este token habrá que realizar una serie de pasos:
  1. Guardamos el fichero auth.ini con los datos anteriores.
  2. Abrimos una shell y lanzamos el siguiente php: php -f ./examples/AdWords/Auth/GetRefreshToken.php
  3. Si todo es correcto debería aparecer en el prompt una URL, la cual tendremos que abrir en el navegador con la cuenta de AdWords que hayamos usado para crear los credenciales OAuth.
  4. En esta URL aparecerá otro token que tendremos que copiar en el prompt de la shell para continuar el proceso.
  5. Si el token es correcto el proceso habrá terminado y nos mostrará el refresh_token.




  6. Por último copiamos el refresh_token en el auth.ini y lo guardamos.


Para comprobar que hemos configurado bien el auth.ini podemos lanzar uno de los ejemplos de scripts que nos viene en la librería.

php -f ./examples/AdWords/v201506/BasicOperations/GetCampaigns.php

Si todo ha ido bien, tardará unos segundos en mostrarnos todas las campañas del cliente (si todavía no tiene campañas mostrará "No campaigns were found").

Una vez finalizado con la comprobación pasaremos al último post en el que haremos un ejemplo muy sencillo de llamada a la API.

Un saludo.

miércoles, 2 de septiembre de 2015

Configuración API AdWords: Paso 4/6

Hola a todos.

En el post anterior vimos como crear una cuenta de prueba para poder usar la API de AdWords y ahora vamos a autenticarnos con OAuth 2.0 para poder realizar las llamadas a la API.

OAuth 2.0 es un método que usa Google para autorizar las llamadas que se hagan a su API, si no tenemos esta autorización no podremos hacer nada con ella.

Vamos a seguir el tutorial que nos proporciona Google, que podéis encontrar aquí, con algunos comentarios.

  1. Visite Google Developers Console. IMPORTANTE, si tienes una cuenta de prueba, entra con la cuenta de prueba, todo el proceso de autenticación se tiene que hacer con la cuenta de prueba. 
  2. Haga clic en CREAR PROYECTO para crear un proyecto nuevo.
    Crear una nueva captura de pantalla del proyecto
  3. Introduzca el nombre del proyecto; seleccione, si lo desea, un ID de proyecto, y haga clic en Crear.
    Captura de pantalla del diálogo de nuevo proyecto
  4. El proyecto que acaba de crear debería abrirse automáticamente. Haga clic en API y autenticación para expandir el menú y, a continuación, haga clic en Credenciales.
    Captura de pantalla del diálogo de nuevo proyecto
  5. Haga clic en CREAR NUEVO ID DE CLIENTE para crear un nuevo identificador de cliente y el secreto de cliente.
    Captura de pantalla de la creación de un nuevo ID de cliente
  6. Hay dos tipos de aplicaciones de uso común cuando se usa OAuth 2.0 con la API de AdWords. En nuestro caso usaremos "Aplicación instalada".
  7. Haga clic en CREAR ID DE CLIENTE para completar el registro.
    Captura de pantalla de la creación de un ID de cliente
  8. Se crearán y mostrarán el ID de cliente y el secreto de cliente.
    Captura de pantalla de ID de cliente y secreto de cliente

Una vez finalizados todos estos pasos ya tendremos un proyecto autenticado con OAuth 2.0 y más tarde usaremos el ID de cliente y el secreto de cliente para conectarnos a la API.

Por lo que, ya podemos pasar al paso 5.

Un saludo.

martes, 1 de septiembre de 2015

Configuración API AdWords: Paso 3/6

Hola a todos.

En el post anterior vimos como solicitar acceso a la API y como conseguir un token de programador y ahora vamos a crearnos una cuenta de prueba para poder hacer pruebas sobre la API.

Antes de crear la cuenta de prueba tienes que tener en cuenta que sólo es necesaria en los siguientes casos:


  • Las cuentas de prueba no afectan a las campañas de producción, por lo que, puedes realizar pruebas sobre estas campañas sin que producción se vea afectado.
  • Las cuentas de prueba no lanzarán ningún anuncio.
  • Las cuentas de prueba no necesitan aprobación del "Token de programador", por lo que puedes probar la API sin esta.

En resumen, las cuentas de prueba sirven para poder hacer pruebas sobre la API sin riesgo de "fastidiar" nada en producción. Por lo tanto, si no quieres tener una cuenta de pruebas sáltate este paso por completo.

Para poder tener una cuenta de prueba tenemos que acceder a https://adwords.google.com/um/Welcome/?sf=mt&hl=es y realizar los mismos pasos que vimos en el paso 1.

Una vez tengamos la cuenta de prueba, tendríamos que ver en ella un titulo en rojo que pusiera "Esta cuenta es de prueba". Además en esta cuenta de prueba NO debería salir en "Configuración de la cuenta" el "Centro de la API de AdWords", tal y como ocurría en la cuenta MCC de producción que creamos.





Una vez tengamos nuestra cuenta de prueba podemos pasar al paso 4.

Un saludo.

Configuración API AdWords: Paso 2/6

Hola a todos.

Cómo vimos en el post anterior nos hemos configurado una cuenta MCC y ahora toca solicitar el acceso a la API y conseguir el token de programador.

Para ello, en nuestra cuenta MCC nos vamos a configuración de la cuenta (botón de la esquina derecha) y desde ahí a "Centro de la API de AdWords".

Veremos en esta pantalla que nos están pidiendo una serie de datos para continuar, los rellenamos y aceptamos las condiciones de uso (si estas empezando con AdWords y no trabajas en una empresa y sólo quieres aprender a usar la API no hace falta que los datos sea fidedignos, ya que, se puede usar la API AdWords con cuentas de prueba).

Una vez solicitado el acceso se actualizará la pantalla y aparecerán nuestros datos junto con el "Token de programador" que será muy importante para hacer funcionar la API.

A parte, Gmail te enviará un correo para que verifiques la información de tu empresa, a través de un formulario. Una vez que Gmail compruebe y acepte los datos de este formulario el "Nivel de acceso" del "Centro de la API de AdWords" aparecerá cómo Aprobado.

Si sólo estas aprendiendo a usar la API y no tienes una empresa por detrás, no hace falta que rellenes el formulario que se te envía por mail y no importa que el "Nivel de acceso" este en Pendiente de aprobación, ya que, se podrá usar la API con cuentas de prueba.



Una vez obtenido el acceso y el token de programador en el siguiente post veremos como crearnos una cuenta de prueba para empezar a usar la API en el paso 3.

Un saludo!