create video ads with youtube url error

25 views
Skip to first unread message

BruceChiu

unread,
Jan 10, 2018, 4:15:14 AM1/10/18
to AdWords API Forum
hi 

i try to use template ad create video ads with youtube url .
i use templateId 231 and give required parameters but it have errors?
Is there anything wrong?

mycode:

    $adGroupAdService = $adWordsServices->get($session, AdGroupAdService::class);
    $operations
= [];
   
// Create a template ad.
    $youtubeAd
= new TemplateAd();
    $youtubeAd
->setName('TestAd for youtube');

    $youtubeAd
->setTemplateId(231);
    $youtubeAd
->setFinalUrls(['https://www.google.com']);
    $youtubeAd
->setDisplayUrl('www.google.com');

    $headline
= new TemplateElementField();
    $headline
->setName('headline');
    $headline
->setType(TemplateElementFieldType::TEXT);
    $headline
->setFieldText('Enjoy');

    $videoId
= new TemplateElementField();
    $videoId
->setName('videoId');
    $videoId
->setType(TemplateElementFieldType::VIDEO);
    $videoId
->setFieldText('https://youtu.be/m6S4phxKEM8');

    $channel
= new TemplateElementField();
    $channel
->setName('channelName');
    $channel
->setType(TemplateElementFieldType::TEXT);
    $channel
->setFieldText('youtube.com/Google');

    $image
= new TemplateElementField();
    $image
->setName('imageUrl');
    $image
->setType(TemplateElementFieldType::URL);
    $image
->setFieldText('');

    $adData
= new TemplateElement();
    $adData
->setUniqueName('adData');
    $adData
->setFields([$headline, $videoId, $channel, $image]);

    $youtubeAd
->setTemplateElements([$adData]);

   
// Create ad group ad.
    $adGroupAd
= new AdGroupAd();
    $adGroupAd
->setAdGroupId($adGroupId);
    $adGroupAd
->setAd($youtubeAd);
   
// Optional: Set additional settings.
    $adGroupAd
->setStatus(AdGroupAdStatus::PAUSED);

   
// Create ad group ad operation and add it to the list.
    $operation
= new AdGroupAdOperation();
    $operation
->setOperand($adGroupAd);
    $operation
->setOperator(Operator::ADD);
    $operations
[] = $operation;

   
// Create the ad group ad on the server and print out some information
   
// about it.
    $result
= $adGroupAdService->mutate($operations);
   
foreach ($result->getValue() as $adGroupAd) {
      printf
(
         
"New HTML5 ad with ID %d and display URL '%s' was created.\n",
          $adGroupAd
->getAd()->getId(),
          $adGroupAd
->getAd()->getDisplayUrl()
     
);
   
}

error message
Fatal error: Uncaught Google\AdsApi\AdWords\v201710\cm\ApiException: [AdError.INVALID_YOUTUBE_DISPLAY_URL @ operations[0].operand.ad.displayUrl, OperationAccessDenied.OPERATION_NOT_PERMITTED_FOR_CAMPAIGN_TYPE @ operations[0].operand.ad; trigger:'DISPLAY', AdError.EMPTY_FIELD @ operations[0].operand.ad.templateElements[0].fields[1].fieldMedia; trigger:'<null>', AdError.EMPTY_FIELD @ operations[0].operand.ad.templateElements[0].fields[3].fieldText; trigger:'<null>', UrlError.INVALID_FINAL_URL @ operations[0].operand.ad.finalUrls[0]; trigger:'https://www.google.com']

thx
Reply all
Reply to author
Forward
0 new messages