Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var t = $("#my")
- $.each($("tr", t), (i, v) => { console.log("'" + $("td", v).eq(0).text() + "', //" + $("a", $("td", v).eq(1)).text()); });
- if ($api_ad->getAd() instanceof GoogleAdsApiAdWordsv201802cmImageAd) {
- $api_ad->getAd()->setAdToCopyImageFrom($api_ad->getAd()->getId());
- }
- foreach ($api_ad->getAd()->getImage()->getUrls() as $url) {
- if ($url->getKey() == "FULL") {
- $image = new Image();
- $image->setData(file_get_contents($url->getValue()));
- $image->setType(MediaMediaType::IMAGE);
- $mediaService = $adWordsServices->get($session, MediaService::class);
- $api_ad->getAd()->setImage($mediaService->upload([$image])[0]);
- }
- }
- if (null == $api_ad->getAd()->getMarketingImageDisplayCallToAction()->getText()) {
- $api_ad->getAd()->getMarketingImageDisplayCallToAction()->setText("");
- }
- if (null == $api_ad->getAd()->getMarketingImageDisplayCallToAction()->getText()) {
- $api_ad->getAd()->getMarketingImageDisplayCallToAction()->setText("SHOULD_NOT_BE"); // THERE
- }
- <?php
- require __DIR__ . '/vendor/autoload.php';
- use GoogleAdsApiAdWordsAdWordsSessionBuilder;
- use GoogleAdsApiAdWordsv201802cmSelector;
- use GoogleAdsApiAdWordsv201802cmCampaignService;
- use GoogleAdsApiAdWordsv201802cmAdGroupAd;
- use GoogleAdsApiAdWordsv201802cmAdGroupAdOperation;
- use GoogleAdsApiAdWordsv201802cmAdGroupAdService;
- use GoogleAdsApiCommonOAuth2TokenBuilder;
- use GoogleAdsApiCommonConfiguration;
- use GoogleAdsApiAdWordsAdWordsServices;
- use GoogleAdsApiAdWordsv201802cmOperator;
- use GoogleAdsApiAdWordsv201802cmImage;
- use GoogleAdsApiAdWordsv201802cmMediaMediaType;
- use GoogleAdsApiAdWordsv201802cmMediaService;
- $config = new Configuration([
- 'LOGGING' => [
- 'reportDownloaderLogLevel' => 'NOTICE',
- 'soapLogLevel' => 'NOTICE'
- ],
- 'ADWORDS' => [
- 'developerToken' => 'DEVELOPER_TOKEN',
- 'clientCustomerId' => 'CLIENT_CUSTOMER_ID'
- ],
- 'OAUTH2' => [
- 'clientId' => 'CLIENT_ID.apps.googleusercontent.com',
- 'clientSecret' => 'CLIENT_SECRET',
- 'refreshToken' => 'REFRESH_TOKEN'
- ]
- ]);
- $oAuth2Credential = (new OAuth2TokenBuilder())->from($config)->build();
- $session = (new AdWordsSessionBuilder())->from($config)->withOAuth2Credential($oAuth2Credential)->build();
- $adWordsServices = new AdWordsServices();
- $campaignService = $adWordsServices->get($session, CampaignService::class);
- $selector = new Selector();
- $selector->setFields(['Id', 'Name', 'Status', 'AdvertisingChannelType']);
- $api_campaigns = $campaignService->get($selector);
- foreach ($api_campaigns->getEntries() as $api_campaign) {
- echo $api_campaign->getName() . "n";
- }
- $adGroupAdService = $adWordsServices->get($session, AdGroupAdService::class);
- $selector = new Selector();
- // https://developers.google.com/adwords/api/docs/appendix/selectorfields#v201802
- // 1. Set "id=my" for desired table from the page in HTML firebug editor and launch following script in firebug console
- // to get the list with properties and comments to them
- // var t = $("#my")
- // $.each($("tr", t), (i, v) => { console.log("'" + $("td", v).eq(0).text() + "', //" + $("a", $("td", v).eq(1)).text()); });
- // 2. Copy/Paste result in $selector->setFields below
- // 3. Manually remove duplicate and empty entries
- $selector->setFields([
- 'AccentColor', //ResponsiveDisplayAd.accentColor debugger eval code:1:32
- 'AdGroupId', //AdGroupAd.adGroupId debugger eval code:1:32
- 'AdType', //Ad.type debugger eval code:1:32
- 'AdvertisingId', //Video.advertisingId debugger eval code:1:32
- 'AllowFlexibleColor', //ResponsiveDisplayAd.allowFlexibleColor debugger eval code:1:32
- 'Automated', //Ad.automated debugger eval code:1:32
- 'BaseAdGroupId', //AdGroupAd.baseAdGroupId debugger eval code:1:32
- 'BaseCampaignId', //AdGroupAd.baseCampaignId debugger eval code:1:32
- 'BusinessName', //ResponsiveDisplayAd.businessName debugger eval code:1:32
- 'CallOnlyAdBusinessName', //CallOnlyAd.businessName debugger eval code:1:32
- 'CallOnlyAdCallTracked', //CallOnlyAd.callTracked debugger eval code:1:32
- 'CallOnlyAdConversionTypeId', //CallOnlyAd.conversionTypeId debugger eval code:1:32
- 'CallOnlyAdCountryCode', //CallOnlyAd.countryCode debugger eval code:1:32
- 'CallOnlyAdDescription1', //CallOnlyAd.description1 debugger eval code:1:32
- 'CallOnlyAdDescription2', //CallOnlyAd.description2 debugger eval code:1:32
- 'CallOnlyAdDisableCallConversion', //CallOnlyAd.disableCallConversion debugger eval code:1:32
- 'CallOnlyAdPhoneNumber', //CallOnlyAd.phoneNumber debugger eval code:1:32
- 'CallOnlyAdPhoneNumberVerificationUrl', //CallOnlyAd.phoneNumberVerificationUrl debugger eval code:1:32
- 'CallToActionText', //ResponsiveDisplayAd.callToActionText debugger eval code:1:32
- 'CreationTime', //Media.creationTime debugger eval code:1:32
- 'CreativeFinalAppUrls', //Ad.finalAppUrls debugger eval code:1:32
- 'CreativeFinalMobileUrls', //Ad.finalMobileUrls debugger eval code:1:32
- 'CreativeFinalUrls', //Ad.finalUrls debugger eval code:1:32
- 'CreativeTrackingUrlTemplate', //Ad.trackingUrlTemplate debugger eval code:1:32
- 'CreativeUrlCustomParameters', //Ad.urlCustomParameters debugger eval code:1:32
- 'Description', //ExpandedDynamicSearchAd.description ExpandedTextAd ResponsiveDisplayAd
- 'Description1', //TextAd.description1 DynamicSearchAd
- 'Description2', //TextAd.description2 DynamicSearchAd
- 'DevicePreference', //Ad.devicePreference debugger eval code:1:32
- 'Dimensions', //Media.dimensions debugger eval code:1:32
- 'DisplayUploadAdGmailTeaserBusinessName', //GmailTeaser.businessName debugger eval code:1:32
- 'DisplayUploadAdGmailTeaserDescription', //GmailTeaser.description debugger eval code:1:32
- 'DisplayUploadAdGmailTeaserHeadline', //GmailTeaser.headline debugger eval code:1:32
- 'DisplayUploadAdGmailTeaserLogoImage', //GmailTeaser.logoImage debugger eval code:1:32
- 'DisplayUrl', //Ad.displayUrl debugger eval code:1:32
- 'ExpandingDirections', //ThirdPartyRedirectAd.expandingDirections debugger eval code:1:32
- 'FileSize', //Media.fileSize debugger eval code:1:32
- 'FormatSetting', //ResponsiveDisplayAd.formatSetting debugger eval code:1:32
- 'GmailHeaderImage', //GmailAd.headerImage debugger eval code:1:32
- 'GmailMarketingImage', //GmailAd.marketingImage debugger eval code:1:32
- 'GmailTeaserBusinessName', //GmailTeaser.businessName debugger eval code:1:32
- 'GmailTeaserDescription', //GmailTeaser.description debugger eval code:1:32
- 'GmailTeaserHeadline', //GmailTeaser.headline debugger eval code:1:32
- 'GmailTeaserLogoImage', //GmailTeaser.logoImage debugger eval code:1:32
- 'Headline', //TextAd.headline debugger eval code:1:32
- 'HeadlinePart1', //ExpandedTextAd.headlinePart1 debugger eval code:1:32
- 'HeadlinePart2', //ExpandedTextAd.headlinePart2 debugger eval code:1:32
- 'Height', //Dimensions.height debugger eval code:1:32
- 'Id', //Ad.id debugger eval code:1:32
- 'ImageCreativeName', //ImageAd.name debugger eval code:1:32
- 'IndustryStandardCommercialIdentifier', //Video.industryStandardCommercialIdentifier debugger eval code:1:32
- 'IsCookieTargeted', //ThirdPartyRedirectAd.isCookieTargeted debugger eval code:1:32
- 'IsTagged', //ThirdPartyRedirectAd.isTagged debugger eval code:1:32
- 'IsUserInterestTargeted', //ThirdPartyRedirectAd.isUserInterestTargeted debugger eval code:1:32
- 'Labels', //AdGroupAd.labels debugger eval code:1:32
- 'LandscapeLogoImage', //DynamicSettings.landscapeLogoImage debugger eval code:1:32
- 'LogoImage', //ResponsiveDisplayAd.logoImage debugger eval code:1:32
- 'LongHeadline', //ResponsiveDisplayAd.longHeadline debugger eval code:1:32
- 'MainColor', //ResponsiveDisplayAd.mainColor debugger eval code:1:32
- 'MarketingImage', //ResponsiveDisplayAd.marketingImage debugger eval code:1:32
- 'MarketingImageCallToActionText', //DisplayCallToAction.text debugger eval code:1:32
- 'MarketingImageCallToActionTextColor', //DisplayCallToAction.textColor debugger eval code:1:32
- 'MarketingImageDescription', //GmailAd.marketingImageDescription debugger eval code:1:32
- 'MarketingImageHeadline', //GmailAd.marketingImageHeadline debugger eval code:1:32
- 'MediaId', //Media.mediaId debugger eval code:1:32
- 'MimeType', //Media.mimeType debugger eval code:1:32
- 'Path1', //ExpandedTextAd.path1 debugger eval code:1:32
- 'Path2', //ExpandedTextAd.path2 debugger eval code:1:32
- 'PolicySummary', //AdGroupAd.policySummary debugger eval code:1:32
- 'PricePrefix', //DynamicSettings.pricePrefix debugger eval code:1:32
- 'ProductImages', //GmailAd.productImages debugger eval code:1:32
- 'ProductVideoList', //GmailAd.productVideoList debugger eval code:1:32
- 'PromoText', //DynamicSettings.promoText debugger eval code:1:32
- 'ReadyToPlayOnTheWeb', //Audio.readyToPlayOnTheWeb Video
- 'ReferenceId', //Media.referenceId debugger eval code:1:32
- 'RichMediaAdCertifiedVendorFormatId', //RichMediaAd.certifiedVendorFormatId debugger eval code:1:32
- 'RichMediaAdDuration', //RichMediaAd.adDuration debugger eval code:1:32
- 'RichMediaAdImpressionBeaconUrl', //RichMediaAd.impressionBeaconUrl debugger eval code:1:32
- 'RichMediaAdName', //RichMediaAd.name debugger eval code:1:32
- 'RichMediaAdSnippet', //RichMediaAd.snippet debugger eval code:1:32
- 'RichMediaAdSourceUrl', //RichMediaAd.sourceUrl debugger eval code:1:32
- 'RichMediaAdType', //RichMediaAd.richMediaAdType debugger eval code:1:32
- 'ShortHeadline', //ResponsiveDisplayAd.shortHeadline debugger eval code:1:32
- 'SourceUrl', //Media.sourceUrl debugger eval code:1:32
- 'SquareMarketingImage', //ResponsiveDisplayAd.squareMarketingImage debugger eval code:1:32
- 'Status', //AdGroupAd.status debugger eval code:1:32
- 'SystemManagedEntitySource', //Ad.systemManagedEntitySource debugger eval code:1:32
- 'TemplateAdDuration', //TemplateAd.duration debugger eval code:1:32
- 'TemplateAdName', //TemplateAd.name debugger eval code:1:32
- 'TemplateAdUnionId', //TemplateAd.adUnionId debugger eval code:1:32
- 'TemplateElementFieldName', //TemplateElementField.name debugger eval code:1:32
- 'TemplateElementFieldText', //TemplateElementField.fieldText debugger eval code:1:32
- 'TemplateElementFieldType', //TemplateElementField.type debugger eval code:1:32
- 'TemplateId', //TemplateAd.templateId debugger eval code:1:32
- 'TemplateOriginAdId', //TemplateAd.originAdId debugger eval code:1:32
- 'UniqueName', //TemplateElement.uniqueName debugger eval code:1:32
- 'Url', //Ad.url debugger eval code:1:32
- 'UrlData', //Ad.urlData debugger eval code:1:32
- 'Urls', //Media.urls debugger eval code:1:32
- 'VideoTypes', //ThirdPartyRedirectAd.videoTypes debugger eval code:1:32
- 'Width', //Dimensions.width debugger eval code:1:32
- 'YouTubeVideoIdString', //Video.youTubeVideoIdString
- ]);
- $api_ads = $adGroupAdService->get($selector);
- foreach ($api_ads->getEntries() as $api_ad) {
- echo $api_ad->getAd()->getType() . ": " . $api_ad->getAd()->getId() . "n";
- $tmpl = $api_ad->getAd()->getTrackingUrlTemplate();
- if (false === strpos($tmpl, "cid={campaignId}")) {
- if (empty($tmpl)) {
- $api_ad->getAd()->setTrackingUrlTemplate($tmpl . "{lpurl}?cid={campaignId}");
- } elseif (strpos($tmpl, "?") === null) {
- $api_ad->getAd()->setTrackingUrlTemplate($tmpl . "?cid={campaignId}");
- } elseif (empty(explode("?", $tmpl)[1])) {
- $api_ad->getAd()->setTrackingUrlTemplate($tmpl . "cid={campaignId}");
- } else {
- $api_ad->getAd()->setTrackingUrlTemplate($tmpl . "&cid={campaignId}");
- }
- if ($api_ad->getAd() instanceof GoogleAdsApiAdWordsv201802cmImageAd) {
- // adToCopyImageFrom - not working
- // $api_ad->getAd()->setAdToCopyImageFrom($api_ad->getAd()->getId());
- foreach ($api_ad->getAd()->getImage()->getUrls() as $url) {
- if ($url->getKey() == "FULL") {
- $image = new Image();
- $image->setData(file_get_contents($url->getValue()));
- $image->setType(MediaMediaType::IMAGE);
- $mediaService = $adWordsServices->get($session, MediaService::class);
- $api_ad->getAd()->setImage($mediaService->upload([$image])[0]);
- }
- }
- } elseif ($api_ad->getAd() instanceof GoogleAdsApiAdWordsv201802cmGmailAd) {
- //echo $api_ad->getAd()->getMarketingImageDisplayCallToAction()->getText();
- if (null == $api_ad->getAd()->getMarketingImageDisplayCallToAction()->getText()) {
- $api_ad->getAd()->getMarketingImageDisplayCallToAction()->setText(""); //SHOULD_NOT_BE_THERE
- }
- echo "!!!!!!!!!!!!!!!!!";
- }
- $adGroupAd = new AdGroupAd();
- $adGroupAd->setAdGroupId($api_ad->getAdGroupId());
- $adGroupAd->setAd($api_ad->getAd());
- $operation = new AdGroupAdOperation();
- $operation->setOperand($adGroupAd);
- $operation->setOperator(Operator::ADD);
- try {
- $result = $adGroupAdService->mutate([$operation]);
- var_dump($result->getValue()[0]->getAd()->getId());
- $operation->setOperator(Operator::REMOVE);
- $adGroupAdService->mutate([$operation]);
- } catch (GoogleAdsApiAdWordsv201802cmApiException $ae) {
- echo $ae->getMessage1() . "n";
- }
- }
- echo "n---n";
- }
Add Comment
Please, Sign In to add comment