RapidAddAds.php 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. <?php
  2. require_once __DIR__ . '/../../vendor/autoload.php'; // change path as needed
  3. use TencentAds\TencentAds;
  4. use TencentAds\Exception\TencentAdsResponseException;
  5. use TencentAds\Exception\TencentAdsSDKException;
  6. /*****
  7. * 本文件提供了一个一次性创建Campaign、Adgroup、Adcreative、Ad的示例
  8. */
  9. class RapidAddAds
  10. {
  11. public static $tads;
  12. public static $ACCESS_TOKEN = 'YOUR ACCESS TOKEN';
  13. public static $ACCOUNT_ID = 'YOUR ACCOUNT ID';
  14. public static $CAMPAIGN_TYPE = 'CAMPAIGN_TYPE_NORMAL'; // 普通推广计划
  15. public static $PROMOTED_OBJECT_TYPE = 'PROMOTED_OBJECT_TYPE_LINK'; // 推广普通外链
  16. public static $DAILY_BUDGET = 5000; // 日预算50元(5000分)
  17. public static $SITE_SET = 'SITE_SET_QZONE'; // 投放QQ空间流量
  18. public static $BILLING_EVENT = 'BILLINGEVENT_IMPRESSION'; // 按曝光扣费(CPM)
  19. public static $OPTIMIZATION_GOAL = 'OPTIMIZATIONGOAL_IMPRESSION'; // 广告目标优化类型:曝光
  20. public static $BID_AMOUNT = 150; // 出价1.5元(150分)
  21. public static $BEGIN_DATE = 'YOUR ADGROUP BEGIN DATE'; // 广告开始投放日期
  22. public static $END_DATE = 'YOUR ADGROUP END DATE'; // 广告结束投放日期
  23. public static $ADCREATIVE_TEMPLATE_ID = 968; // 文字链
  24. public static $AD_TITLE = 'YOUR AD TEXT'; // 广告标题,968规格要求:字数:10~14
  25. public static $AD_DESCRIPTION = 'YOUR AD DESCRIPTION'; // 广告文案,968规格要求:字数:24~30
  26. public static $PAGE_TYPE = 'PAGE_TYPE_DEFAULT'; // 默认落地页类型
  27. public static $PAGE_URL = 'YOUR AD PAGE URL'; // 广告落地页地址
  28. public function init()
  29. {
  30. $tads = TencentAds::init([
  31. 'access_token' => static::$ACCESS_TOKEN,
  32. 'is_debug' => true,
  33. ]);
  34. $tads->useSandbox(); // 默认访问沙箱环境,如访问正式环境,请切换为$tads->useProduction()
  35. static::$tads = $tads;
  36. return $tads;
  37. }
  38. public function main()
  39. {
  40. try {
  41. /* @var TencentAds $tads */
  42. $tads = static::$tads;
  43. $campaignName = 'SDK计划' . uniqid();
  44. $campaignRequest = [
  45. 'account_id' => static::$ACCOUNT_ID,
  46. 'campaign_name' => $campaignName,
  47. 'campaign_type' => static::$CAMPAIGN_TYPE,
  48. 'promoted_object_type' => static::$PROMOTED_OBJECT_TYPE,
  49. 'daily_budget' => static::$DAILY_BUDGET,
  50. ];
  51. $adgroupName = 'SDK广告组' . uniqid();
  52. $timeSeries = str_repeat('1', 48 * 7); // 全天投放
  53. $targeting = [
  54. 'user_os' => ['IOS'], // 定向IOS用户
  55. ];
  56. $adgroupRequest = [
  57. 'account_id' => static::$ACCOUNT_ID,
  58. 'adgroup_name' => $adgroupName,
  59. 'promoted_object_type' => static::$PROMOTED_OBJECT_TYPE,
  60. 'begin_date' => static::$BEGIN_DATE,
  61. 'end_date' => static::$END_DATE,
  62. 'billing_event' => static::$BILLING_EVENT,
  63. 'bid_amount' => static::$BID_AMOUNT,
  64. 'optimization_goal' => static::$OPTIMIZATION_GOAL,
  65. 'time_series' => $timeSeries,
  66. 'site_set' => [static::$SITE_SET],
  67. 'targeting' => $targeting,
  68. ];
  69. $adcreativeName = 'SDK广告创意' . uniqid();
  70. $adcreativeElements = [
  71. 'title' => static::$AD_TITLE,
  72. 'description' => static::$AD_DESCRIPTION,
  73. ];
  74. $pageSpec = [
  75. 'page_url' => static::$PAGE_URL,
  76. ];
  77. $adcreativeRequest = [
  78. 'account_id' => static::$ACCOUNT_ID,
  79. 'adcreative_name' => $adcreativeName,
  80. 'adcreative_template_id' => static::$ADCREATIVE_TEMPLATE_ID,
  81. 'adcreative_elements' => $adcreativeElements,
  82. 'promoted_object_type' => static::$PROMOTED_OBJECT_TYPE,
  83. 'page_type' => static::$PAGE_TYPE,
  84. 'site_set' => [static::$SITE_SET],
  85. 'page_spec' => $pageSpec,
  86. ];
  87. $adName = 'SDK广告' . uniqid();
  88. $adRequest = [
  89. 'account_id' => static::$ACCOUNT_ID,
  90. 'ad_name' => $adName,
  91. ];
  92. $response = $tads->rapidAddAds($campaignRequest, $adgroupRequest, $adcreativeRequest, $adRequest);
  93. //echo $response->getAdId();
  94. return $response;
  95. } catch (TencentAdsResponseException $e) {
  96. // When Api returns an error
  97. echo 'Tencent ads returned an error: ' . $e->getMessage() . PHP_EOL;
  98. throw $e;
  99. } catch (TencentAdsSDKException $e) {
  100. // When validation fails or other local issues
  101. echo 'Tencent ads SDK returned an error: ' . $e->getMessage() . PHP_EOL;
  102. throw $e;
  103. } catch (Exception $e) {
  104. echo 'Other exception: ' . $e->getMessage() . PHP_EOL;
  105. throw $e;
  106. }
  107. }
  108. }
  109. if (basename($_SERVER['PHP_SELF']) == basename(__FILE__)) {
  110. try {
  111. $example = new RapidAddAds();
  112. $example->init();
  113. $example->main();
  114. } catch (\Exception $e) {
  115. exit(-1);
  116. }
  117. }