Unable to use Template Ads to create video ads with youtube url

57 views
Skip to first unread message

BruceChiu

unread,
Jan 10, 2018, 4:07:09 AM1/10/18
to AdWords API Forum

Hi 

I tried to use template ads create a video template ad service. 
I referred the document,  but has some error message.

my code:

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

    $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 msg:

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']

How should I fix it?

Bharani Cherukuri (AdWords API Team)

unread,
Jan 10, 2018, 3:07:28 PM1/10/18
to AdWords API Forum
Hello, 

The OPERATION_NOT_PERMITTED_FOR_CAMPAIGN_TYPE error is noticed when the operation is not permitted on the campaign type (DISPLAY). The TrueView in-search video template ads with template ID: 231 will no longer accept new ads for that template, for display network campaigns. You may refer to this blog post for more information. 

Regards,
Bharani, AdWords API Team
Reply all
Reply to author
Forward
0 new messages