共用方式為


開始搭配使用 PHP 與 Bing Ads API

若要開始使用 PHP 開發 Bing Ads API 應用程式,您可以從 提供的範例 開始,或遵循 Web傳統型 應用程式的其中一個應用程式逐步解說。 這些範例已使用 Bing Ads PHP SDK 開發,並使用 PHP 7.0.6 執行。 您應該能夠使用其他版本的 PHP (大於 5.6) 、套件和作業系統。 不過,程式代碼和組態的某些部分可能必須變更。 如需如何設定 PHP 開發環境以使用 Web 服務的相關信息,請參閱工具的檔。 您也應該在 PHP.ini 檔案中啟用SOAP和OpenSSL擴充功能。 啟用 curl 擴充功能以執行大量上傳範例。

extension=php_soap.dll
extension=php_openssl.dll
extension=php_curl.dll

您需要可在 生產沙箱中存取 Microsoft Advertising 的用戶認證。 針對生產環境,您需要 生產開發人員令牌。 所有沙盒用戶端都可以使用通用沙盒開發人員令牌,也就是 BBD37VB98。 如需詳細資訊,請 參閱開始使用Bing Ads API沙盒

若要透過 OAuth 進行驗證,您也必須註冊應用程式並取得對應的用戶端識別碼。 如果您要開發 Web 應用程式,也需要記下用戶端密碼和重新導向 URI。 如需在生產環境中註冊應用程式和授權碼授與流程的詳細資訊,請參閱 使用 OAuth 進行驗證 和使用 SDK 進行驗證。 雖然在生產環境中,您必須使用自己的應用程式標識碼 (也就是用戶端標識符) ,但所有Microsoft廣告客戶都可以在沙盒中使用公用的「教學課程範例應用程式」用戶端標識符,也就是 00001111-aaaa-2222-bbbb-3333cccc4444。 如需詳細資訊,請參閱 沙盒

安裝 SDK

您可以使用 Composer 套件管理員從 Packagist 擷取Bing Ads PHP SDK,也可以從 GitHub 複製來源。 本指南說明如何使用 Composer 取得最新版的 Bing Ads PHP SDK。

  1. 下載並安裝 Composer。 Microsoft Windows 使用者也應該將 composer.phar 新增至 PATH 變數。

  2. 開啟命令提示字元,然後輸入 composer require microsoft/bingads

    注意事項

    未將 composer.phar 新增至 PATH 的 Windows 使用者必須改為輸入 php composer.phar require microsoft/bingads

  3. 若要取得未來更新,請輸入 composer update。 如果 packagist 提供任何更新,編輯器將會安裝最新版本。

逐步解說

安裝 Bing Ads PHP SDK 之後,您可以瀏覽 Bing Ads API 程式代碼範例、在 GitHub 下載範例,或遵循 Web傳統型 應用程式的其中一個應用程式逐步解說。

使用 SoapVar

若要傳送繼承自基類的複雜類型,您必須將物件編碼為 SoapVar。 在下列範例中,衍生自 CampaignCriterion) 的 BiddableCampaignCriterion (、衍生自 Criterion) 的 LocationCriterion (,以及衍生自 CriterionBid) 的 BidMultiplier (全都已編碼。

$campaignCriterions = array();

$locationBiddableCampaignCriterion = new BiddableCampaignCriterion();
$locationBiddableCampaignCriterion->CampaignId = $campaignId;
$locationCriterion = new LocationCriterion();
$locationCriterion->LocationId = 190;
$encodedLocationCriterion = new SoapVar($locationCriterion, SOAP_ENC_OBJECT, 'LocationCriterion', $GLOBALS['CampaignProxy']->GetNamespace());
$locationBiddableCampaignCriterion->Criterion = $encodedLocationCriterion;
$bidMultiplier = new BidMultiplier();
$bidMultiplier->Multiplier = 0;
$encodedBidMultiplier = new SoapVar($bidMultiplier, SOAP_ENC_OBJECT, 'BidMultiplier', $GLOBALS['CampaignProxy']->GetNamespace());
$locationBiddableCampaignCriterion->CriterionBid = $encodedBidMultiplier;

$encodedCriterion = new SoapVar($locationBiddableCampaignCriterion, SOAP_ENC_OBJECT, 'BiddableCampaignCriterion', $GLOBALS['CampaignProxy']->GetNamespace());
$campaignCriterions[] = $encodedCriterion;

如果您未將 CriterionBid 編碼為具象類型 BidMultiplier,產生的要求 SOAP 就是空的 Abstract CriterionBid 元素。 這會導致串行化例外狀況,並出現「無法建立抽象類」訊息。

<ns1:CriterionBid>

對象必須以複雜類型正確編碼,例如 BidMultiplier。

<ns1:CriterionBid xsi:type="ns1:BidMultiplier">
    <ns1:Type xsi:nil="true" />
    <ns1:Multiplier>0</ns1:Multiplier>
</ns1:CriterionBid>

每個數據對象的參考檔會指定複雜類型是否衍生自基底類型,例如,請參閱 BiddableCampaignCriterionLocationCriterionBidMultiplier

WSDL 也會定義階層,例如,BidMultiplier 的下列定義。

<xs:complexType name="BidMultiplier">
  <xs:complexContent mixed="false">
    <xs:extension base="tns:CriterionBid">
      <xs:sequence>
        <xs:element minOccurs="0" name="Multiplier" type="xs:double"/>
      </xs:sequence>
    </xs:extension>
  </xs:complexContent>
</xs:complexType>
<xs:element name="BidMultiplier" nillable="true" type="tns:BidMultiplier"/>

另請參閱

Bing Ads API 用戶端連結庫
Bing Ads API 程式代碼範例
Bing Ads API Web 服務位址
處理服務錯誤和例外狀況
沙箱