i have mange to make it work if eneyone wont this is the answer
<?php
namespace Google\AdsApi\Examples\AdWords\v201702\BasicOperations;
require $_SERVER['DOCUMENT_ROOT'].'/adwords/vendor/autoload.php';
use Google\AdsApi\AdWords\AdWordsServices;
use Google\AdsApi\AdWords\AdWordsSession;
use Google\AdsApi\AdWords\AdWordsSessionBuilder;
use Google\AdsApi\AdWords\v201702\cm\AdGroupExtensionSettingService;
use Google\AdsApi\AdWords\v201702\cm\ExtensionSetting;
use Google\AdsApi\AdWords\v201702\cm\ExtensionFeedItem;
use Google\AdsApi\AdWords\v201702\cm\SitelinkFeedItem;
use Google\AdsApi\AdWords\v201702\cm\CallFeedItem;
use Google\AdsApi\AdWords\v201702\cm\CalloutFeedItem;
use Google\AdsApi\AdWords\v201702\cm\UrlList;
use Google\AdsApi\AdWords\v201702\cm\CriterionType;
use Google\AdsApi\AdWords\v201702\cm\OrderBy;
use Google\AdsApi\AdWords\v201702\cm\Paging;
use Google\AdsApi\AdWords\v201702\cm\Predicate;
use Google\AdsApi\AdWords\v201702\cm\PredicateOperator;
use Google\AdsApi\AdWords\v201702\cm\Selector;
use Google\AdsApi\AdWords\v201702\cm\SortOrder;
use Google\AdsApi\Common\OAuth2TokenBuilder;
class GetCampaignsWithAwql {
const PAGE_LIMIT = 100;
public static function runExample(AdWordsServices
$adWordsServices,AdWordsSession $session) {
$AdGroupExtensionSettingService = $adWordsServices->get($session,
AdGroupExtensionSettingService ::class);
$adGroupId = floatval($_GET["adgroup"]);
$selector = new Selector();
$selector->setFields( ['AdGroupId', 'ExtensionType', 'Extensions' ]);
$selector->setOrdering([new OrderBy('AdGroupId',
SortOrder::ASCENDING)]);
$selector->setPredicates([
new Predicate('AdGroupId', PredicateOperator::IN, [$adGroupId]),
//new Predicate('ExtensionType',
PredicateOperator::IN,[ExtensionType::SITELINK])
]);
$selector->setPaging(new Paging(0, self::PAGE_LIMIT));
$page = $AdGroupExtensionSettingService->get($selector);
$extenions_arr = array();
$extenions_type = array();
// Display results from the query.
if ($page->getEntries() !== null) {
$totalNumEntries = $page->getTotalNumEntries();
foreach ( $page->getEntries() as $extension) {
$extensions = $extension->getExtensionSetting()->getExtensions();
//foreach extention item
foreach ( $extensions as $ex ) {
switch ( $extension->getExtensionType() ) {
case "SITELINK" :
$urllist = $ex->getSitelinkFinalUrls();
//return print_r( $urllist->getUrls());
$ext_arr = array(
"sitelinkText" => $ex->getSitelinkText() ,
"sitelinkUrl" => $ex->getSitelinkFinalUrls()->getUrls()[0] ,
"type" => $extension->getExtensionType()
);
break;
case "CALL" :
$ext_arr = array(
"phone" => $ex->getCallPhoneNumber() ,
"type" => $extension->getExtensionType()
);
break;
case "CALLOUT" :
$ext_arr = array(
"text" => $ex->getCalloutText()
);
break;
}
array_push( $extenions_type , $ext_arr );
}
}
$array_data = json_encode($extenions_type,true);
exit($array_data);
}
}
public static function main() {
// Generate a refreshable OAuth2 credential for authentication.
$oAuth2Credential = (new OAuth2TokenBuilder())
->fromFile()
->build();
// Construct an API session configured from a properties file and the
OAuth2
// credentials above.
$session = (new AdWordsSessionBuilder())
->fromFile()
->withOAuth2Credential($oAuth2Credential)
->build();
self::runExample(new AdWordsServices(), $session);
}
}
GetCampaignsWithAwql::main();
?>
בתאריך יום שני, 5 ביוני 2017 בשעה 08:57:35 UTC+3, מאת שלומי כהן:
>
>
> hello i have a php code that i have edit from semples
> i need to get all the Extensions from adgroup level , list them and
> retrive their data
>
> on CallFeedItem i need to get :callPhoneNumber
> on SitelinkFeedItem i need to get sitelinkText , sitelinkUrl
> on CalloutFeedItem i need to get calloutText
>
>
>
> use Google\AdsApi\AdWords\AdWordsServices;
> use Google\AdsApi\AdWords\AdWordsSession;
> use Google\AdsApi\AdWords\AdWordsSessionBuilder;
> use Google\AdsApi\AdWords\v201702\cm\AdGroupExtensionSettingService;
> use Google\AdsApi\Common\OAuth2TokenBuilder;
>
>
>
> class GetCampaignsWithAwql {
>
> const PAGE_LIMIT = 100;
>
> public static function runExample(AdWordsServices $adWordsServices,
> AdWordsSession $session) {
> $campaignService = $adWordsServices->get($session,
> AdGroupExtensionSettingService ::class);
>
> $qury = $_GET["adgroup"];
> // Create AWQL query.
> $query = "SELECT AdGroupId, ExtensionType , Extensions WHERE
> AdGroupId = '".$qury."' ";
> // Create paging controls.
> $totalNumEntries = 0;
> $adgroups = array();
> $offset = 0;
> do {
> $pageQuery = sprintf('%s LIMIT %d,%d', $query, $offset,
> self::PAGE_LIMIT);
> $page = $campaignService->query($pageQuery);
>
> // Display results from the query.
> if ($page->getEntries() !== null) {
> $totalNumEntries = $page->getTotalNumEntries();
> foreach ($page->getEntries() as $extension) {
> $arr = array(
> "adgroup_id" => $extension->getAdGroupId() ,
> "extensions" => $extension->getExtensionSetting()->getExtensions(),
> //"sitelinkUrl" => $extension->getSitelinkUrl() ,
> "type" => $extension->getExtensionType()
> );
> array_push($adgroups,$arr );
>
> }
> }
>
> // Advance the paging offset.
> $offset += self::PAGE_LIMIT;
> } while ($offset < $totalNumEntries);
>
> $array_data = json_encode($adgroups,true);
> exit($array_data);
> }
>
> public static function main() {
> // Generate a refreshable OAuth2 credential for authentication.
> $oAuth2Credential = (new OAuth2TokenBuilder())
> ->fromFile()
> ->build();
>
> // Construct an API session configured from a properties file and the
> OAuth2
> // credentials above.
> $session = (new AdWordsSessionBuilder())
> ->fromFile()
> ->withOAuth2Credential($oAuth2Credential)
> ->build();
> self::runExample(new AdWordsServices(), $session);
> }
> }
>
> GetCampaignsWithAwql::main();
>
>
> this is what i get now in json
>
>
> [{"adgroup_id":1900848642,"extensions":[{"ExtensionFeedItem.Type":"SitelinkFeedItem"},{"ExtensionFeedItem.Type":"SitelinkFeedItem"},{"ExtensionFeedItem.Type":"SitelinkFeedItem"},{"ExtensionFeedItem.Type":"SitelinkFeedItem"}],"type":"SITELINK"},{"adgroup_id":1900848642,"extensions":[{"ExtensionFeedItem.Type":"CallFeedItem"}],"type":"CALL"}]
>
>
> thanks
>
>
--
--
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog and Google+:
https://googleadsdeveloper.blogspot.com/
https://plus.google.com/+GoogleAdsDevelopers/posts
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
You received this message because you are subscribed to the Google
Groups "AdWords API Forum" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/adwords-api?hl=en
---
You received this message because you are subscribed to the Google Groups
"AdWords API Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
Visit this group at https://groups.google.com/group/adwords-api.
To view this discussion on the web visit
https://groups.google.com/d/msgid/adwords-api/93df3a5f-3e71-48da-aae0-7887dcf977a5%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.