Guest User

Untitled

a guest
Mar 23rd, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.19 KB | None | 0 0
  1. var t = $("#my")
  2. $.each($("tr", t), (i, v) => { console.log("'" + $("td", v).eq(0).text() + "', //" + $("a", $("td", v).eq(1)).text()); });
  3.  
  4. if ($api_ad->getAd() instanceof GoogleAdsApiAdWordsv201802cmImageAd) {
  5. $api_ad->getAd()->setAdToCopyImageFrom($api_ad->getAd()->getId());
  6. }
  7.  
  8. foreach ($api_ad->getAd()->getImage()->getUrls() as $url) {
  9. if ($url->getKey() == "FULL") {
  10. $image = new Image();
  11. $image->setData(file_get_contents($url->getValue()));
  12. $image->setType(MediaMediaType::IMAGE);
  13. $mediaService = $adWordsServices->get($session, MediaService::class);
  14. $api_ad->getAd()->setImage($mediaService->upload([$image])[0]);
  15. }
  16. }
  17.  
  18. if (null == $api_ad->getAd()->getMarketingImageDisplayCallToAction()->getText()) {
  19. $api_ad->getAd()->getMarketingImageDisplayCallToAction()->setText("");
  20. }
  21.  
  22. if (null == $api_ad->getAd()->getMarketingImageDisplayCallToAction()->getText()) {
  23. $api_ad->getAd()->getMarketingImageDisplayCallToAction()->setText("SHOULD_NOT_BE"); // THERE
  24. }
  25.  
  26. <?php
  27. require __DIR__ . '/vendor/autoload.php';
  28.  
  29. use GoogleAdsApiAdWordsAdWordsSessionBuilder;
  30. use GoogleAdsApiAdWordsv201802cmSelector;
  31. use GoogleAdsApiAdWordsv201802cmCampaignService;
  32. use GoogleAdsApiAdWordsv201802cmAdGroupAd;
  33. use GoogleAdsApiAdWordsv201802cmAdGroupAdOperation;
  34. use GoogleAdsApiAdWordsv201802cmAdGroupAdService;
  35. use GoogleAdsApiCommonOAuth2TokenBuilder;
  36. use GoogleAdsApiCommonConfiguration;
  37. use GoogleAdsApiAdWordsAdWordsServices;
  38.  
  39. use GoogleAdsApiAdWordsv201802cmOperator;
  40.  
  41. use GoogleAdsApiAdWordsv201802cmImage;
  42. use GoogleAdsApiAdWordsv201802cmMediaMediaType;
  43. use GoogleAdsApiAdWordsv201802cmMediaService;
  44.  
  45. $config = new Configuration([
  46. 'LOGGING' => [
  47. 'reportDownloaderLogLevel' => 'NOTICE',
  48. 'soapLogLevel' => 'NOTICE'
  49. ],
  50. 'ADWORDS' => [
  51. 'developerToken' => 'DEVELOPER_TOKEN',
  52. 'clientCustomerId' => 'CLIENT_CUSTOMER_ID'
  53. ],
  54. 'OAUTH2' => [
  55. 'clientId' => 'CLIENT_ID.apps.googleusercontent.com',
  56. 'clientSecret' => 'CLIENT_SECRET',
  57. 'refreshToken' => 'REFRESH_TOKEN'
  58. ]
  59. ]);
  60.  
  61. $oAuth2Credential = (new OAuth2TokenBuilder())->from($config)->build();
  62. $session = (new AdWordsSessionBuilder())->from($config)->withOAuth2Credential($oAuth2Credential)->build();
  63.  
  64. $adWordsServices = new AdWordsServices();
  65. $campaignService = $adWordsServices->get($session, CampaignService::class);
  66.  
  67. $selector = new Selector();
  68.  
  69. $selector->setFields(['Id', 'Name', 'Status', 'AdvertisingChannelType']);
  70. $api_campaigns = $campaignService->get($selector);
  71.  
  72. foreach ($api_campaigns->getEntries() as $api_campaign) {
  73. echo $api_campaign->getName() . "n";
  74. }
  75.  
  76. $adGroupAdService = $adWordsServices->get($session, AdGroupAdService::class);
  77. $selector = new Selector();
  78.  
  79. // https://developers.google.com/adwords/api/docs/appendix/selectorfields#v201802
  80. // 1. Set "id=my" for desired table from the page in HTML firebug editor and launch following script in firebug console
  81. // to get the list with properties and comments to them
  82. // var t = $("#my")
  83. // $.each($("tr", t), (i, v) => { console.log("'" + $("td", v).eq(0).text() + "', //" + $("a", $("td", v).eq(1)).text()); });
  84. // 2. Copy/Paste result in $selector->setFields below
  85. // 3. Manually remove duplicate and empty entries
  86. $selector->setFields([
  87. 'AccentColor', //ResponsiveDisplayAd.accentColor debugger eval code:1:32
  88. 'AdGroupId', //AdGroupAd.adGroupId debugger eval code:1:32
  89. 'AdType', //Ad.type debugger eval code:1:32
  90. 'AdvertisingId', //Video.advertisingId debugger eval code:1:32
  91. 'AllowFlexibleColor', //ResponsiveDisplayAd.allowFlexibleColor debugger eval code:1:32
  92. 'Automated', //Ad.automated debugger eval code:1:32
  93. 'BaseAdGroupId', //AdGroupAd.baseAdGroupId debugger eval code:1:32
  94. 'BaseCampaignId', //AdGroupAd.baseCampaignId debugger eval code:1:32
  95. 'BusinessName', //ResponsiveDisplayAd.businessName debugger eval code:1:32
  96. 'CallOnlyAdBusinessName', //CallOnlyAd.businessName debugger eval code:1:32
  97. 'CallOnlyAdCallTracked', //CallOnlyAd.callTracked debugger eval code:1:32
  98. 'CallOnlyAdConversionTypeId', //CallOnlyAd.conversionTypeId debugger eval code:1:32
  99. 'CallOnlyAdCountryCode', //CallOnlyAd.countryCode debugger eval code:1:32
  100. 'CallOnlyAdDescription1', //CallOnlyAd.description1 debugger eval code:1:32
  101. 'CallOnlyAdDescription2', //CallOnlyAd.description2 debugger eval code:1:32
  102. 'CallOnlyAdDisableCallConversion', //CallOnlyAd.disableCallConversion debugger eval code:1:32
  103. 'CallOnlyAdPhoneNumber', //CallOnlyAd.phoneNumber debugger eval code:1:32
  104. 'CallOnlyAdPhoneNumberVerificationUrl', //CallOnlyAd.phoneNumberVerificationUrl debugger eval code:1:32
  105. 'CallToActionText', //ResponsiveDisplayAd.callToActionText debugger eval code:1:32
  106. 'CreationTime', //Media.creationTime debugger eval code:1:32
  107. 'CreativeFinalAppUrls', //Ad.finalAppUrls debugger eval code:1:32
  108. 'CreativeFinalMobileUrls', //Ad.finalMobileUrls debugger eval code:1:32
  109. 'CreativeFinalUrls', //Ad.finalUrls debugger eval code:1:32
  110. 'CreativeTrackingUrlTemplate', //Ad.trackingUrlTemplate debugger eval code:1:32
  111. 'CreativeUrlCustomParameters', //Ad.urlCustomParameters debugger eval code:1:32
  112. 'Description', //ExpandedDynamicSearchAd.description ExpandedTextAd ResponsiveDisplayAd
  113. 'Description1', //TextAd.description1 DynamicSearchAd
  114. 'Description2', //TextAd.description2 DynamicSearchAd
  115. 'DevicePreference', //Ad.devicePreference debugger eval code:1:32
  116. 'Dimensions', //Media.dimensions debugger eval code:1:32
  117. 'DisplayUploadAdGmailTeaserBusinessName', //GmailTeaser.businessName debugger eval code:1:32
  118. 'DisplayUploadAdGmailTeaserDescription', //GmailTeaser.description debugger eval code:1:32
  119. 'DisplayUploadAdGmailTeaserHeadline', //GmailTeaser.headline debugger eval code:1:32
  120. 'DisplayUploadAdGmailTeaserLogoImage', //GmailTeaser.logoImage debugger eval code:1:32
  121. 'DisplayUrl', //Ad.displayUrl debugger eval code:1:32
  122. 'ExpandingDirections', //ThirdPartyRedirectAd.expandingDirections debugger eval code:1:32
  123. 'FileSize', //Media.fileSize debugger eval code:1:32
  124. 'FormatSetting', //ResponsiveDisplayAd.formatSetting debugger eval code:1:32
  125. 'GmailHeaderImage', //GmailAd.headerImage debugger eval code:1:32
  126. 'GmailMarketingImage', //GmailAd.marketingImage debugger eval code:1:32
  127. 'GmailTeaserBusinessName', //GmailTeaser.businessName debugger eval code:1:32
  128. 'GmailTeaserDescription', //GmailTeaser.description debugger eval code:1:32
  129. 'GmailTeaserHeadline', //GmailTeaser.headline debugger eval code:1:32
  130. 'GmailTeaserLogoImage', //GmailTeaser.logoImage debugger eval code:1:32
  131. 'Headline', //TextAd.headline debugger eval code:1:32
  132. 'HeadlinePart1', //ExpandedTextAd.headlinePart1 debugger eval code:1:32
  133. 'HeadlinePart2', //ExpandedTextAd.headlinePart2 debugger eval code:1:32
  134. 'Height', //Dimensions.height debugger eval code:1:32
  135. 'Id', //Ad.id debugger eval code:1:32
  136. 'ImageCreativeName', //ImageAd.name debugger eval code:1:32
  137. 'IndustryStandardCommercialIdentifier', //Video.industryStandardCommercialIdentifier debugger eval code:1:32
  138. 'IsCookieTargeted', //ThirdPartyRedirectAd.isCookieTargeted debugger eval code:1:32
  139. 'IsTagged', //ThirdPartyRedirectAd.isTagged debugger eval code:1:32
  140. 'IsUserInterestTargeted', //ThirdPartyRedirectAd.isUserInterestTargeted debugger eval code:1:32
  141. 'Labels', //AdGroupAd.labels debugger eval code:1:32
  142. 'LandscapeLogoImage', //DynamicSettings.landscapeLogoImage debugger eval code:1:32
  143. 'LogoImage', //ResponsiveDisplayAd.logoImage debugger eval code:1:32
  144. 'LongHeadline', //ResponsiveDisplayAd.longHeadline debugger eval code:1:32
  145. 'MainColor', //ResponsiveDisplayAd.mainColor debugger eval code:1:32
  146. 'MarketingImage', //ResponsiveDisplayAd.marketingImage debugger eval code:1:32
  147. 'MarketingImageCallToActionText', //DisplayCallToAction.text debugger eval code:1:32
  148. 'MarketingImageCallToActionTextColor', //DisplayCallToAction.textColor debugger eval code:1:32
  149. 'MarketingImageDescription', //GmailAd.marketingImageDescription debugger eval code:1:32
  150. 'MarketingImageHeadline', //GmailAd.marketingImageHeadline debugger eval code:1:32
  151. 'MediaId', //Media.mediaId debugger eval code:1:32
  152. 'MimeType', //Media.mimeType debugger eval code:1:32
  153. 'Path1', //ExpandedTextAd.path1 debugger eval code:1:32
  154. 'Path2', //ExpandedTextAd.path2 debugger eval code:1:32
  155. 'PolicySummary', //AdGroupAd.policySummary debugger eval code:1:32
  156. 'PricePrefix', //DynamicSettings.pricePrefix debugger eval code:1:32
  157. 'ProductImages', //GmailAd.productImages debugger eval code:1:32
  158. 'ProductVideoList', //GmailAd.productVideoList debugger eval code:1:32
  159. 'PromoText', //DynamicSettings.promoText debugger eval code:1:32
  160. 'ReadyToPlayOnTheWeb', //Audio.readyToPlayOnTheWeb Video
  161. 'ReferenceId', //Media.referenceId debugger eval code:1:32
  162. 'RichMediaAdCertifiedVendorFormatId', //RichMediaAd.certifiedVendorFormatId debugger eval code:1:32
  163. 'RichMediaAdDuration', //RichMediaAd.adDuration debugger eval code:1:32
  164. 'RichMediaAdImpressionBeaconUrl', //RichMediaAd.impressionBeaconUrl debugger eval code:1:32
  165. 'RichMediaAdName', //RichMediaAd.name debugger eval code:1:32
  166. 'RichMediaAdSnippet', //RichMediaAd.snippet debugger eval code:1:32
  167. 'RichMediaAdSourceUrl', //RichMediaAd.sourceUrl debugger eval code:1:32
  168. 'RichMediaAdType', //RichMediaAd.richMediaAdType debugger eval code:1:32
  169. 'ShortHeadline', //ResponsiveDisplayAd.shortHeadline debugger eval code:1:32
  170. 'SourceUrl', //Media.sourceUrl debugger eval code:1:32
  171. 'SquareMarketingImage', //ResponsiveDisplayAd.squareMarketingImage debugger eval code:1:32
  172. 'Status', //AdGroupAd.status debugger eval code:1:32
  173. 'SystemManagedEntitySource', //Ad.systemManagedEntitySource debugger eval code:1:32
  174. 'TemplateAdDuration', //TemplateAd.duration debugger eval code:1:32
  175. 'TemplateAdName', //TemplateAd.name debugger eval code:1:32
  176. 'TemplateAdUnionId', //TemplateAd.adUnionId debugger eval code:1:32
  177. 'TemplateElementFieldName', //TemplateElementField.name debugger eval code:1:32
  178. 'TemplateElementFieldText', //TemplateElementField.fieldText debugger eval code:1:32
  179. 'TemplateElementFieldType', //TemplateElementField.type debugger eval code:1:32
  180. 'TemplateId', //TemplateAd.templateId debugger eval code:1:32
  181. 'TemplateOriginAdId', //TemplateAd.originAdId debugger eval code:1:32
  182. 'UniqueName', //TemplateElement.uniqueName debugger eval code:1:32
  183. 'Url', //Ad.url debugger eval code:1:32
  184. 'UrlData', //Ad.urlData debugger eval code:1:32
  185. 'Urls', //Media.urls debugger eval code:1:32
  186. 'VideoTypes', //ThirdPartyRedirectAd.videoTypes debugger eval code:1:32
  187. 'Width', //Dimensions.width debugger eval code:1:32
  188. 'YouTubeVideoIdString', //Video.youTubeVideoIdString
  189. ]);
  190.  
  191. $api_ads = $adGroupAdService->get($selector);
  192.  
  193. foreach ($api_ads->getEntries() as $api_ad) {
  194. echo $api_ad->getAd()->getType() . ": " . $api_ad->getAd()->getId() . "n";
  195.  
  196. $tmpl = $api_ad->getAd()->getTrackingUrlTemplate();
  197. if (false === strpos($tmpl, "cid={campaignId}")) {
  198. if (empty($tmpl)) {
  199. $api_ad->getAd()->setTrackingUrlTemplate($tmpl . "{lpurl}?cid={campaignId}");
  200. } elseif (strpos($tmpl, "?") === null) {
  201. $api_ad->getAd()->setTrackingUrlTemplate($tmpl . "?cid={campaignId}");
  202. } elseif (empty(explode("?", $tmpl)[1])) {
  203. $api_ad->getAd()->setTrackingUrlTemplate($tmpl . "cid={campaignId}");
  204. } else {
  205. $api_ad->getAd()->setTrackingUrlTemplate($tmpl . "&cid={campaignId}");
  206. }
  207.  
  208. if ($api_ad->getAd() instanceof GoogleAdsApiAdWordsv201802cmImageAd) {
  209. // adToCopyImageFrom - not working
  210. // $api_ad->getAd()->setAdToCopyImageFrom($api_ad->getAd()->getId());
  211. foreach ($api_ad->getAd()->getImage()->getUrls() as $url) {
  212. if ($url->getKey() == "FULL") {
  213. $image = new Image();
  214. $image->setData(file_get_contents($url->getValue()));
  215. $image->setType(MediaMediaType::IMAGE);
  216.  
  217. $mediaService = $adWordsServices->get($session, MediaService::class);
  218. $api_ad->getAd()->setImage($mediaService->upload([$image])[0]);
  219. }
  220. }
  221. } elseif ($api_ad->getAd() instanceof GoogleAdsApiAdWordsv201802cmGmailAd) {
  222. //echo $api_ad->getAd()->getMarketingImageDisplayCallToAction()->getText();
  223. if (null == $api_ad->getAd()->getMarketingImageDisplayCallToAction()->getText()) {
  224. $api_ad->getAd()->getMarketingImageDisplayCallToAction()->setText(""); //SHOULD_NOT_BE_THERE
  225. }
  226. echo "!!!!!!!!!!!!!!!!!";
  227. }
  228. $adGroupAd = new AdGroupAd();
  229. $adGroupAd->setAdGroupId($api_ad->getAdGroupId());
  230. $adGroupAd->setAd($api_ad->getAd());
  231. $operation = new AdGroupAdOperation();
  232. $operation->setOperand($adGroupAd);
  233. $operation->setOperator(Operator::ADD);
  234. try {
  235. $result = $adGroupAdService->mutate([$operation]);
  236. var_dump($result->getValue()[0]->getAd()->getId());
  237. $operation->setOperator(Operator::REMOVE);
  238. $adGroupAdService->mutate([$operation]);
  239. } catch (GoogleAdsApiAdWordsv201802cmApiException $ae) {
  240. echo $ae->getMessage1() . "n";
  241. }
  242. }
  243. echo "n---n";
  244. }
Add Comment
Please, Sign In to add comment