Академический Документы
Профессиональный Документы
Культура Документы
programmationAdWordsde
Googleavec la bibliothèquePHP
APllity
Niveau de difficulté : o
ThomasSteiner
e présentarticlea pour objectifde cas sur les mots clés vélos, vélos pas
vous présenterI'accèsà I'interface chers, excursionsà vélos Londres ou
de programmationAdWords de même magasinv/os (vous aurezremar-
Googleau moyende la bibliothèque PHP qué la faute d'orthographe).Supposons
intituléeAPllity,elle-mêmeproposéepar maintenant qu'Alicene soit pas la seule
Googlesousformede projetopen source de magasinde vélos.Bobet
propriétaire
hébergésur SourceForge. net. Cameronont égalementdécidéd'utiliser
Sur les moteursde recherche,I'utili- le Web afin de prospecterde nouveaux
sateurexprimede façontrès précisece clients. Mais, qui décide des textes
qu'ilsouhaitetrouver.PrenonsI'exemple à afficheren premièrepositiondes sites
d'un internautesitué à Londres cher- les plus visités? La réponse à cette
chant à acheterun nouveauvélo. Une questionfondamentale résidedans une
requêtede rechercheoptimaleconsiste- simpleformule:
rait dans ce cas à taper magasin vélos
Londres.Supposonsmaintenant qu'Alice Ad Rank = Cost Per Click * Quality Score
Interfacede Program-
mation AdWords
Afin de gérer un sYstème aussi com-
plexe, Google s'est adapté aux besotns
des annonceurs en leur proposant une
interfaceplus efficacequ'une simple ap-
plication Web frontale. Google propose
donc une interface de programmation
permettantà une agence publicitairede
téléchargeren une seule fois une quan-
tité énorme de mots clé, sur laquelle
toutes les campagnes d'un annonceur
peuvent être automatiquementsuspen-
groupe d'annonces comporte une liste dues en cas d'évènements imPrévus,
Les annonceurs peuvent choisir le coût
de mots clé ou de critèresde sites Web, et permettant à I'entrepÔtd'une société
maximumpar clic (CPC)qu'ilssont prêtsà
ainsi qu'une liste de créations (annonces d'interagiravec le prix des mots clé cor-
payer,alors que la note de qualitéest dé-
textuellesapparaissantsur le moteur de respondants.L'interfacede programma-
terminée par le taux de clics (clickthrough
recherche).Alice peut choisrrle CPC maxi- tion de Google permet de nombreuses
rate, ou CTR) sur chaque mot clé, la per-
tinence du texte de I'annonce,la perfor- mum par mot clé qu'elleest prête à payer, utilisations.
Structured'un compte
TrafficE stimate PhP TrafficE strmate php
AdWords Google
Un compte AdWords Google se compose
de différentescampagnes.SuivantI'exem-
ple précédent, Alice devrait posséder
TrafficE strmate phP
différentescampagnespour les WT et les
vélos de course. Chaque campagne con-
tient un ou plusieursgroupesd'annonces'
Your Application
Ainsi, la campagne d'Alice sur les vélos
de course peut comprendredes groupes
d'annonces par fabricant. Enfin, chaque Figure 1. Structuredes c/asses de la bibliothèqueAPllity
WSDL(WebServicesDefinition Language, : T,: svntâxe'le ce fichi.er est d'une srmplicité extrême' Les lignes
. ^^mmôn-âni n:r iln noinf rriroille e' t- 1^^ ^^-^^^^ Ll-^^^ ^ônf fôrt c i m n l ê Lmt r rev rnr rt
J r r " y f
: iono.és en silence.
en XML.Le fichierWSDLdécritles opéra- E m a i l = " y o u r E m a l I G s o m e I S Pt .l d "
tionsque le serviceWeb en questionpeut password = "y0uR5ecR3L"
chaqueopération.Afln de pouvoirutiliser
Listing 2. Extrait des données de sortie de l'application hello wotld
I'interfacede programmation AdWords,les
utilisateursrâligentdes programmes clients Array (
la bibliothèqueAPllity
La bibliotheque APllityutiliseune version Listing 4. Etape 1, créationd'une listede fous/es critèrespar motsclé d'un
adaptéede NuSoapde DietrichAyalaafin compte
de pouvoir interagir avec l'interfacede
programmation php
AdWords.Son centre est
// inclure La btbliothèque APIlity
(vert),lequelcomprendtoutesles
apility.php
require once'apility.php' ;
difiérentesclassespossibles.Chaqueservi- function getAllCriteriaOfAccount rr :
ce Webest représentéparsa propreclasse // obtenir toutes Jes campaçrnes
(aune).Ce systèmepermetainsià quicon- // en cas d'échec de cette etape fondanentale, retourner La vaLeur fausse
les objetsPHP de niveausupérieurde la // et donc pour chaque groupe d'dnnonces, obtenir tous .les nots clé contenus
PHPSolutions
N'4/2006 www.phpsolmag.org
Toutes les fonctionnalitésde la biblio- print r ( $ a l l C a m p a i g n s ); sons d'un tableaude campagnes(en
thèque APllity sont désormais dispo- echo "</pre>"; supposantque nous utilisonsles varia-
nibles. Nous pouvons donc procéder ?> précédent)
blesde I'exemple :
à l'application hello world, qui consiste,
sous AdWords, en une liste de toutes sousfor-
Lesdonnéesde sorties'affichent / / aaaoàor À
q fI ua ny rr o
Lm, Li ' r u À r o nrmn:one r]ans
les campagnes d'un client. Commen- me de clichébrutdu tableaudes campa- // le tableau des campagnes
/ / raatt i rc
! e Y u r r L
o
v rn
, eeu p I\ r :u n i
y t t
li rrr
r v I . Y t L Y
nhnr\ t
:
t Unefoistoutesles campagnes obte- echo "(pre)",'
S O A PX M L Asynchronous
XML
Or JSONResponse
WebBrowserOftheAPlltAxUser
"Virtualization"Of the AdWordsAPI By the Web Server
Figure 3. Extrait d'une application APllitAx utilisant la bibliothèque APllity combinée à AJAX
PHPSolutions
N'4/2006 www.phpsolmag.org
sauts de ligne, puis remplissezce fichier mêmesuspendre complètement I'annonce)
très flexibledans la mesureoù la pile de
au moyendes fonctionsd'ajoutde la biblio- pendantla périodecreuse.
fautes stocke les fautes dans un format
d'objetde fautesgénérique,et permetainsi thequeAPllity.La bibliothequepermetaux Objectif: notre tâche ici va consister
annonceurs,certiainement satisfaitsde la à programmer un démonde partagede la
de convertirà temps ces objetsfautesen
capacitéd'APllity,de fairedéjàbeaucoupde jouméetrès élémentairecenséfonctionner
mesffigesd'eneurHTML,en texte simple,
ou en XML, ou en rien du tout, selonles choses.Mais le travaildevientvraiment inté- toute la joumée,et toujoursaugmenterle
besoinsspécifiques du développeur. ressantau moment d'ajouterde I'interaction CPC par critèrede mot clé entrellheures
et de I'automatisme. et 13 heures,disonsde 0,20 Ê (Alicevit
Nouveaustatut à Londres).Étape 1 : Afin de faire fonc-
Avecce que vousvenezd'apprendre, vous Premierprogramme tionnerce programme, il faut retoumerau
pouvezdésormaiscréervotrepropreappli- sérieux niveaudes critèrespar motsclé du compte
cationftontaleWeb selonvos goûts,votre En termesd'annonces en ligne(maispas d'Alice. ll suffit pour ce faire d'étendre
propreprogrammede téléchargement vers seulement), diviserla joumée en plusieurs l'exemplehello wofld, exposé plus haut.
le serveur,ou uneapplicationde lancement tanchesd'affichagede difiérentstypesd'an- Comme nous n'avonsbesoinque d'une
de rapportexécutableen un seulclic. Et la noncesest un conceptimportant.Les an- listede tous les critèrespar motsclé, il est
llvous
listedesoutilsà créerpeuts'allonger. noncesciblentgénéralement unepopulation inutilede stockerI'originede chaquecritère
de connecterlesfonctions particulière et ce que cetteaudienceciblée par mot clé au moyend'unestructurecom-
suffitsimplement
puisde transformerlesdonnées retientplusparticulièrement selonle créneau plexede tableaux(nous pounionsmême
disponibles
APllityen HTML
de sortiede la bibliothèque horaire.Rappelez-vousdAlice et de son remonter les conespondances,si nous
ou de renseignercertainsélémentsde for- magasinde vélos. Les cyclistestravaillent le souhaitions,avec la propriétéde I'objet
généralement dur pendantla joumée,puis belongsToAdGroupld de chaquecritèrepar
mulairesavec les donnéesrestituées.Ou
surle Webpendantleurpause mot clé).Nousutiliserons toutefoisune pro'
encore,si vousoptez,parexemple,pourun se détendent
versle serveur,divi- déjeuner. ll sembledoncplusintéressant de grammationdéfensivepar soucide flabilité.
outilde téléchargement
fixerle nombremaximumde CPCdans cet- Veuillezconsulter le Listing4.
sez un fichierExcelavectabulationcomme
te tranchehoraireafinde générerle plusde Bien que fondamentalepour retrouver
séparateurau moyen d'un grand nombre
de motsclésaux anêtsde tabulationet aux conversions possibles, et râluire le CPC(ou les donnéesla premièrefois,cettepremière
API|IT Dctno
fnra/lLr S.û.
Logùook
Entrr Your LogrhrDatet
rffi]
\-es!rl-,,
I No412006
PHPSolutions
les eneursde I'interfacede programmation
Créerun compteAdWordset s'inscrireà un accès AdWordsseronttoujoursinterceptées dans
à I'interfacede programmation la piledes eneurs,sansêtreaffichées.ll est
Vous aurez tout d'abord besoin d'un compte AdWords.Allez sur la page d'accueildu assezutilede choisirXML commeformat
site d'AdWords,puis suivez les instructionsde I'assistantde créationde compte: httpsl/ d'eneurau momentde lancerAPllityen
adwords.googIe.com/seIecUstarter/ signup/Fork- Parnature,le
tantquebibliothèque integrée.
Une fois votre compte AdWords créé et confirmé, il vous faut envoyer vos données
bancairesafin d'activervotre compte.Vos annoncesprendrontensuiteforme,et vous pou- mode SilenceSteafthMode rendradifficile
vez continueren vous inscrivantà un accèsà I'interfacede programmation. Allez sur le site à trouverles eneurs ne découlantpas de
httpst/adwords.google.com/select/ApiWelcome, puis entrez vos données de connexionau En règle gé-
I'interfacede programmation.
compte.Un assistantvous aideraensuiteà créer un compteMy ClientCenter(MCC).Vous doitgé-
nérale,le fichierPHPintermédiaire
trouverezensuitedans l'ongletintituléMy Account(Mon compte)une nouvellepage sous
le titre de AdWords APt Center (Centre de I'interfacede programmationAdWords).Votre nérerdu XMLau moinsvalide,mêmelors-
marquede développeurainsique les informationssur I'utilisation de I'interfacede program- que aucunparamètrePOSTn'estenvoyé.
mation,y comprissur les quotas,y serontaffichés.Les troistutoriauxmultimédiassuivants, Vouspouveztestercettefonctionen lançant
davantagevos premierspas avec l'interface:
disponiblesen ligne,vousfaciliteront
le fichierindépendamment. Désactivezpuis
. http!/seru ices.google.com/awp/en_us/breeze/264836/index.html réactivezle mode SilenceSfea/thMode
. http://services.google.com/awp/en _u s/breeze/267718/index.htmI pendantla sessionde déboguage peutper-
. http://services.google.com/awp/en_us/breeze/264848/index.html mettrede trouverde simplesereurs de type
pour de plus amplesinformations, n'hésitezpas à postervos questionssur le forum des vaiables non4éclarées.
développeursde I'interfacede programmation AdWords:
Fi chi er P H P
. hftp://groups.google.com/group/adwords-api
intermédiaire exemplaire
Nous allonsdécriredans cette partieun
lisateurne voit rien à l'écranpendantle Javascript.Commentdes techniquesdifié- fichier PHP intermédiaire exemplaireafin
de program- rentespeuvent-elles fonctionner ensemble ? d'éclaircir le concept fondamental. Nous
traitementréalisépar I'interface
mationAdWords.ll est impossibled'accé- L'idéeesttrèssimple.Nousavonsd'uncôté devons tout d'abord paramétrer I'en{ête de
lérerle tempsde réponsede I'interface de I'interfacede programmation AdWords,le sorte à déclarer le contenu sous le format
programmation AdWords,mais plutôt de navigateur de I'autre,et XML.À partirde maintenant,
Web de I'utilisateur noussommes
cumulerplusieurs de
requêtesde I'interface la bibliothèque APllityentreles deux.Dans entièrement liésà cette déclaration. Chaque
programmation AdWordsen une seulefois, le navigateurWeb,nousavonsun siteWeb donnée en texte simple produira une elreur
tout à fait normalcontenantdes formulaires d'analyse. La requête XML HTTP ne trou-
de manièreà pouvoircontinuerà travailler
et du texte.ChaquefoisqueI'utilisateur sou- veradonc jamais son résultat et attendra in-
utilementpendantle traitementd'une re-
quête.Une requêtepounait,par exemple, met certainesmodifications ou programme définiment. La méthode de programmation
consisterà chargerun rapportimportant, un rapport,etc.,une requêtede type XML défensiveexposéeplushautprendicitoute
pendantqu'uneautreseraitde soumettre HTTP,contenantles paramètresde la fonc- sonimportance dansla restitution desrésul-
campagnes. Malgrél'absence tionAPllitysousformede donnéesnorma- tats attendus. L'authentification est désor-
de nouvelles
les HTTPPOSI est alorslancée.Unepage maisréalisée de manière dynamique grâce
de traitementen plusieursunitésd'exécu-
tion des séquencesutilisateurs sous PHP, PHP intermédiaire analyse les données à I'objet global $authenticationcontext
une combinaison de
intelligente plusieurs POSTpuisappellela fonctionnativeAPllity ainsiquelesdonnéesHTTPPOST.En cas
techniques pounait permettred'adapterdes conespondante.Cette page intermédiaire d'eneurs,le snippetdu code intermédiaire
requêtes de de
l'interface programmationen foumit le résultatde la fonctionau format afficheun messaged'eneurde I'interface
traitementmulti-processus. XMLou JSON,de manièreà faciliterI'ana- de programmation AdWords.Lorsquetout
lyseréaliséepar le navigateur Web de I'uti- se passeconectement,I'objetAPllityresti-
APllity+ AJAX = APllitAx lisateursur la réponse.Dansla mesureoù tué campagneest alorsconvertiau format
Un des termespharede cetteannéepro- la page PHP se situesur un serveurWeb XML
bablement le plusutilisé, AJAX(acronyme ellevirtualise
(local)où APllityest installée,
pour Javascriptet XML), permet,comme en quelquesofte I'interface de programma- Sur lnternet
son nom I'indique, de transférer tion AdWords pour permettreà I'utilisateur
des don-
. Paged'accueild'APllity
nées de manière asynchrone. d'y placerplusieurs
C'est ce requêtes. - sourceforge.neU
http://google-apility.
que signifiele 'A' dans AJAX. Or, c'est . Page consacréeau projetAPllitysur
besoin. Exigences SourceForge
exactementce dont nous avons - httpst/sou rceforge.neUprojects/google-
Maisqueveutdirele'X'? La bibliothèque Afinde fairefonctionner le principeAPllitAx' apilM
APllity ne doit absolument pas être ver- . Référencesà APllity
APllityproposedes objets PHP facilement
- httpt/goog IeapiI ity.sourceforge.neUAPIIity-
convertissables en XML: beuse. En efiet, chaque alerteproduite par
Reference Standalone.html
PHP détruiraitla structureXML dans le fi- . Forumconsacréau supportd'APllity
- http://groups-beta.google.com/group/
$ s o m e A PlIi t Y O b j e c t - > t o x m l ( ) ; chierPHPintermédiaire. C'estla raisonpour
adwords-api-php
laquelleAPllity proposeun mode appelé . Page d'accueilde I'interfacede programma-
Stea/fhMode dans lequel toutes tion AdWords
Les objetsAPllitypeuventainsiêtre passés Si'Tence - httpl/www.google.com/apis/adwords/
sousformede réponseà unerequêteA"JAX. les alertes PHP et les propresmessages index.html
Restentle 'A' pourasynchrone et le'J' pour d'alertesd'AP Ilitysontdésactivés.Toutefois,