Author: phpiando
PHPiando #6 – Operadores e Condições
PHPiando #5 – Operadores Aritméticos, Lógicos, Literais e Relacionais
PHPiando #4 – Comandos (Entrada e Saída de dados)
Pessoal, segue o novo vídeo falando sobre tipos de Entradas e Saídas que temos na programação.
Qualquer dúvida já sabe, deixa nos comentários.
PHPiando #3 – Tipos de dados em Variáveis
E ai meu povo!
Segue o terceiro vídeo falando sobre Tipos de Dados nas variáveis…
Obs: Ignore meu irmão me chamando para jogar Dota… kkkk
PHPiando #2 – O que é Variável, Constantes e Comentários
Fala pessoal!!!!!
Estou seguindo frenetico nas aulas que prometi, e estou colocando um segundo vídeo explicando sobre Variáveis, constantes e como usar comentários no sistema.
Sem mais delongas, assistam e espero seu feedback.
PHPiando #1 – Começando pelo básico!
E ai pessoal, como comentei, quero começar uma série de vídeos explicando e mostrando na prática o desenvolvimento de um projeto web com aplicativo móvel, mas antes de meter os dedos no teclado, vamos iniciar pelo básico, Lógica de Programação, Algoritmos, Arquiteturas e por final algumas Dicas de Programação.
Vamos lá…
Criando Aplicativo Cordova + PHP + MYSQL – Video
Fala galera!!!!! Tudo bem??
Algum tempo atrás fiz uma postagem no blog falando sobre o aplicativo Híbrido e como conectar em um WebService. Porém refiz ele de forma mais resumida em um vídeo…
Segue abaixo:
Espero o seu feedback!!!
Powered by YouTube Video Embed
Você que manda!
Hi Guys!!!!
E ai meus amigos, tudo bem? Estou querendo fazer algumas postagens, porém, estou sem criatividade nos Posts. Estou tentando voltar a ser mais ativo por aqui e quero ajuda de vocês!
Quais postagens que vocês que gostariam de ver aqui no Blog? Ou, no que eu posso tentar ajudar vocês?
Coloquem nos comentários ou me mande um e-mail com alguns temas! Estou esperando você!
Usando API PHP do Google Adwords – AWQL
E ai meu povo, tudo bom?
Putz… estou anos luzes sem postar nada aqui no fórum, inclusive fiz algumas promessas no passado mas não consegui realizar, porém, neste novo ano tentarei ser um pouco mais ativo no blog!
Bom, estive envolvido em vários projetos, entre eles mudei de empresa (sempre estive envolvido no setor Automobilístico trabalhando em Concessionárias, passei por um período na Fábrica da Case New Holland e hoje voltei para o setor de concessionárias, melhor dizendo, hoje desenvolvo soluções para esse setor em uma empresa focada nisso).
Neste novo desafio que estou precisei fazer algumas integrações no Google Analytics, SEO e Adwords. Baixei o SDK da Google em PHP e particularmente achei muito complexo para realizar coisas um tanto ‘simples’. E nisso resolvi compartilhar e guardar aqui no Blog a forma que realizo essas integrações usando o recurso AWQL.
Começando pelo Google Adwords…
1° Baixem a biblioteca do Google Adwords
https://github.com/googleads/googleads-php-lib
2° Sigam os passos de autenticação oAuth2 que o Google faz neste link:
https://developers.google.com/adwords/api/docs/guides/authentication?hl=pt-br
3° Realizado os passos 1 e 2, vamos configurar o arquivo ‘adsapi_php.ini’ que está dentro da pasta que você baixou.
Obs.: Estarei fazendo os testes dentro da pasta GoogleAds-Php-Lib.
<?php [ADWORDS] ; Required AdWords API properties. Details can be found at: ; https://developers.google.com/adwords/api/docs/guides/basic-concepts#soap_and_xml developerToken = "SEU_TOKEN" clientCustomerId = "CLIENT_ID VOCÊ PEGA NA CONTA DO ADWORDS" ; Optional. Set a friendly application name identifier. ; userAgent = "INSERT_USER_AGENT_HERE" ; Optional additional AdWords API settings. ; endpoint = "https://adwords.google.com/" ; isPartialFailure = false ; Optional setting for utility usage tracking in the user agent in requests. ; Defaults to true. ; includeUtilitiesInUserAgent = true [ADWORDS_REPORTING] ; Optional reporting settings. ; isSkipReportHeader = false ; isSkipColumnHeader = false ; isSkipReportSummary = false ; isUseRawEnumValues = false [OAUTH2] ; Required OAuth2 credentials. Uncomment and fill in the values for the ; appropriate flow based on your use case. See the README for guidance: ; https://github.com/googleads/googleads-php-lib/blob/master/README.md#getting-started ; For installed application or web application flow. clientId = "CLIENT ID DO PROJETO CRIADO NO CONSOLE DEVELOPER" clientSecret = "SENHA CRIADO NO PROJETO DO CONSOLE DEVELOPER" refreshToken = "ESSE ITEM VOCÊ CONSEGUE PEGANDO OAUTH2 PLAYGROUD (SEGUIR O PASSO 2)" ; For service account flow. ;jsonKeyFilePath = "" ;scopes = "https://www.googleapis.com/auth/adwords" ;impersonatedEmail = "" [SOAP] ; Optional SOAP settings. See SoapSettingsBuilder.php for more information. ; compressionLevel = [CONNECTION] ; Optional proxy settings to be used by requests. ; If you don't have username and password, just specify host and port. ; proxy = "protocol://user:pass@host:port" ; Enable transparent HTTP gzip compression for all reporting requests. ; enableReportingGzip = false [LOGGING] ; Optional logging settings. ; soapLogFilePath = "path/to/your/soap.log" ; soapLogLevel = "INFO" ; reportDownloaderLogFilePath = "path/to/your/report-downloader.log" ; reportDownloaderLogLevel = "INFO" ; batchJobsUtilLogFilePath = "path/to/your/bjutil.log" ; batchJobsUtilLogLevel = "INFO" ?>
Feito isto, vamos ao primeiro código, na pasta raiz do Google crie um arquivo chamado ‘index.php’.
<?php ini_set('display_errors',1); ini_set('display_startup_erros',1); error_reporting(E_ALL); require __DIR__ . '/vendor/autoload.php'; use Google\AdsApi\AdWords\AdWordsServices; use Google\AdsApi\AdWords\AdWordsSessionBuilder; use Google\AdsApi\AdWords\ReportSettingsBuilder; use Google\AdsApi\AdWords\v201705\cm\CampaignService; use Google\AdsApi\AdWords\v201702\cm\ReportDefinitionReportType; use Google\AdsApi\AdWords\v201702\cm\ReportDefinitionService; use Google\AdsApi\AdWords\Reporting\v201705\ReportDownloader; use Google\AdsApi\AdWords\v201705\cm\OrderBy; use Google\AdsApi\AdWords\v201705\cm\Paging; use Google\AdsApi\AdWords\v201705\cm\Selector; use Google\AdsApi\Common\OAuth2TokenBuilder; class Adwords { public static function getData(){ $oAuth2Credential = (new OAuth2TokenBuilder()) ->fromFile() ->build(); /* Aqui você pode recuperar dados de outro clientId, diferente do que informou no adsapi_php.ini porém pode retirar o método "withClientCustomerId" para pegar os dados padrões do clientId do arquivo adsapi */ $session = (new AdWordsSessionBuilder()) ->fromFile() ->withOAuth2Credential($oAuth2Credential) ->withClientCustomerId('CLIENT_ID_CUSTOMER') ->build(); #Utilizando AWQL poderá ver os exemplos e combinações no link: https://developers.google.com/adwords/api/docs/appendix/reports $reportQuery = 'SELECT Impressions,Clicks, Cost, AverageCpc, Conversions, ConversionRate, CostPerConversion FROM ACCOUNT_PERFORMANCE_REPORT DURING 20171101,20171130'; $reportFormat = 'XML'; $reportDownloader = new ReportDownloader($session); $reportDownloadResult = $reportDownloader->downloadReportWithAwql( $reportQuery, $reportFormat); $datatest = $reportDownloadResult->getAsString(); $xml = simplexml_load_string($datatest); $json = json_encode($xml); //return array echo ($json); } } AdWords::getData(); ?>
O retorno que você terá será algo parecido com isto:
{ "report-name":{ "@attributes":{ "name":"ACCOUNT_PERFORMANCE_REPORT" } }, "date-range":{ "@attributes":{ "date":"Nov 1, 2017-Nov 30, 2017" } }, "table":{ "columns":{ "column":[ { "@attributes":{ "name":"impressions", "display":"Impressions" } }, { "@attributes":{ "name":"clicks", "display":"Clicks" } }, { "@attributes":{ "name":"cost", "display":"Cost" } }, { "@attributes":{ "name":"avgCPC", "display":"Avg. CPC" } }, { "@attributes":{ "name":"conversions", "display":"Conversions" } }, { "@attributes":{ "name":"convRate", "display":"Conv. rate" } }, { "@attributes":{ "name":"costConv", "display":"Cost \/ conv." } } ] }, "row":{ "@attributes":{ "impressions":"752389", "clicks":"16051", "cost":"2246940000", "avgCPC":"139988", "conversions":"137.00", "convRate":"0.85%", "costConv":"16401022" } } } } |
Muito simples não é? Desta maneira achei mais rápido e fácil realizar as integrações e retorno de dados do Google Adwords.
Bônus: Os valores monetários, por exemplo, “costConv” (Custo de conversões) é retornado em microunidades monetárias então é necessário realizar um cálculo para encontrar o valor ‘real’, um exemplo disso:
//(16401022 / 1000000) = R$ 16,40 $costConv / 1000000; |
Está e outras dicas poderá ser visto no link:
https://developers.google.com/adwords/api/docs/guides/reporting?hl=pt-br
Até a próxima galera!