ภาษา

ตัวอย่างโค้ดโฆษณาข้อความที่ขยาย

ตัวอย่างนี้แสดงวิธีการตั้งค่าโฆษณาแบบข้อความขยายสําหรับแคมเปญโฆษณาในผลการค้นหา

หมายเหตุ

  • อัปเกรดโฆษณาข้อความที่ขยายเป็นโฆษณาการค้นหาที่ตอบสนองภายในวันที่ 1 กุมภาพันธ์ 2023 หลังจากวันที่นี้ คุณจะไม่สามารถสร้างโฆษณาแบบข้อความที่ขยายใหม่หรือแก้ไขโฆษณาแบบข้อความที่ขยายที่มีอยู่ได้อีกต่อไป หากต้องการข้อมูลเพิ่มเติม โปรดดูเกี่ยวกับโฆษณาการค้นหาที่ตอบสนอง
  • โฆษณาแบบข้อความที่ขยายที่มีอยู่จะยังคงให้บริการต่อไป และคุณจะสามารถดูรายงานประสิทธิภาพการทํางานของโฆษณาได้
  • คุณจะยังคงสามารถหยุดชั่วคราว เปิดใช้งาน หรือลบโฆษณาแบบข้อความที่ขยายออกได้ มิฉะนั้น ความพยายามที่จะเพิ่มหรืออัปเดตโฆษณาแบบข้อความที่ขยายจะส่งผลให้เกิด CampaignServiceAdTypeInvalid ข้อผิดพลาด
  • เรียนรู้เพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงนี้

เคล็ดลับ

ใช้ตัวเลือกภาษาในส่วนหัวของเอกสารประกอบเพื่อเลือก C#, Java, PHP หรือ Python

เมื่อต้องการรับการเข้าถึงและรีเฟรชโทเค็นสําหรับผู้ใช้ Microsoft Advertising ของคุณ และทําการเรียกใช้บริการครั้งแรกของคุณโดยใช้ Bing Ads API ให้ดูคู่มือเริ่มต้นใช้งานด่วน คุณจะต้องตรวจสอบคู่มือเริ่มต้นใช้งานและคําแนะนําสําหรับภาษาที่คุณต้องการ เช่น C#, Java, PHP และ Python

ไฟล์ที่สนับสนุนสําหรับตัวอย่าง C#, Java, PHP และ Python มีอยู่ที่ GitHub คุณสามารถโคลนแต่ละที่เก็บหรือนําส่วนย่อยไปใช้ใหม่ได้ตามต้องการ

using System;
using System.Collections.Generic;
using System.Linq;
using System.ServiceModel;
using System.Threading.Tasks;
using Microsoft.BingAds.V13.CampaignManagement;
using Microsoft.BingAds;

namespace BingAdsExamplesLibrary.V13
{
    /// <summary>
    /// How to create Expanded Text Ads with the Campaign Management service.
    /// </summary>
    public class ExpandedTextAds : ExampleBase
    {
        public override string Description
        {
            get { return "Expanded Text Ads | Campaign Management V13"; }
        }

        public async override Task RunAsync(AuthorizationData authorizationData)
        {
            try
            {
                ApiEnvironment environment = ((OAuthDesktopMobileAuthCodeGrant)authorizationData.Authentication).Environment;

                CampaignManagementExampleHelper CampaignManagementExampleHelper = new CampaignManagementExampleHelper(
                    OutputStatusMessageDefault: this.OutputStatusMessage);
                CampaignManagementExampleHelper.CampaignManagementService = new ServiceClient<ICampaignManagementService>(
                    authorizationData: authorizationData,
                    environment: environment);

                // Add a search campaign.

                var campaigns = new[]{
                    new Campaign
                    {
                        BudgetType = BudgetLimitType.DailyBudgetStandard,
                        DailyBudget = 50,
                        CampaignType = CampaignType.Search,
                        Languages = new string[] { "All" },
                        Name = "Everyone's Shoes " + DateTime.UtcNow,
                        TimeZone = "PacificTimeUSCanadaTijuana",                        
                    },
                };

                OutputStatusMessage("-----\nAddCampaigns:");
                AddCampaignsResponse addCampaignsResponse = await CampaignManagementExampleHelper.AddCampaignsAsync(
                    accountId: authorizationData.AccountId,
                    campaigns: campaigns);
                long?[] campaignIds = addCampaignsResponse.CampaignIds.ToArray();
                BatchError[] campaignErrors = addCampaignsResponse.PartialErrors.ToArray();
                OutputStatusMessage("CampaignIds:");
                CampaignManagementExampleHelper.OutputArrayOfLong(campaignIds);
                OutputStatusMessage("PartialErrors:");
                CampaignManagementExampleHelper.OutputArrayOfBatchError(campaignErrors);

                // Add an ad group within the campaign.

                var adGroups = new[] {
                    new AdGroup
                    {
                        Name = "Everyone's Red Shoe Sale",
                        StartDate = null,
                        EndDate = new Date {
                            Month = 12,
                            Day = 31,
                            Year = DateTime.UtcNow.Year + 1
                        },
                        CpcBid = new Bid { Amount = 0.09 },
                    }
                };

                OutputStatusMessage("-----\nAddAdGroups:");
                AddAdGroupsResponse addAdGroupsResponse = await CampaignManagementExampleHelper.AddAdGroupsAsync(
                    campaignId: (long)campaignIds[0],
                    adGroups: adGroups,
                    returnInheritedBidStrategyTypes: false);
                long?[] adGroupIds = addAdGroupsResponse.AdGroupIds.ToArray();
                BatchError[] adGroupErrors = addAdGroupsResponse.PartialErrors.ToArray();
                OutputStatusMessage("AdGroupIds:");
                CampaignManagementExampleHelper.OutputArrayOfLong(adGroupIds);
                OutputStatusMessage("PartialErrors:");
                CampaignManagementExampleHelper.OutputArrayOfBatchError(adGroupErrors);

                // Add keywords and ads within the ad group.

                var keywords = new[] {
                    new Keyword
                    {
                        Bid = new Bid { Amount = 0.47 },
                        Param2 = "10% Off",
                        MatchType = MatchType.Phrase,
                        Text = "Brand-A Shoes",
                    },
                };

                OutputStatusMessage("-----\nAddKeywords:");
                AddKeywordsResponse addKeywordsResponse = await CampaignManagementExampleHelper.AddKeywordsAsync(
                    adGroupId: (long)adGroupIds[0],
                    keywords: keywords,
                    returnInheritedBidStrategyTypes: false);
                long?[] keywordIds = addKeywordsResponse.KeywordIds.ToArray();
                BatchError[] keywordErrors = addKeywordsResponse.PartialErrors.ToArray();
                OutputStatusMessage("KeywordIds:");
                CampaignManagementExampleHelper.OutputArrayOfLong(keywordIds);
                OutputStatusMessage("PartialErrors:");
                CampaignManagementExampleHelper.OutputArrayOfBatchError(keywordErrors);

                var ads = new Ad[] {
                    new ExpandedTextAd 
                    {
                        TitlePart1 = "Contoso",
                        TitlePart2 = "Quick & Easy Setup",
                        TitlePart3 = "Seemless Integration",
                        Text = "Find New Customers & Increase Sales!",
                        TextPart2 = "Start Advertising on Contoso Today.",
                        Path1 = "seattle",
                        Path2 = "shoe sale",
                        FinalUrls = new[] {
                            "https://www.contoso.com/womenshoesale"
                        },
                    },
                };
                
                OutputStatusMessage("-----\nAddAds:");
                AddAdsResponse addAdsResponse = await CampaignManagementExampleHelper.AddAdsAsync(
                    adGroupId: (long)adGroupIds[0], 
                    ads: ads);
                long?[] adIds = addAdsResponse.AdIds.ToArray();
                BatchError[] adErrors = addAdsResponse.PartialErrors.ToArray();
                OutputStatusMessage("AdIds:");
                CampaignManagementExampleHelper.OutputArrayOfLong(adIds);
                OutputStatusMessage("PartialErrors:");
                CampaignManagementExampleHelper.OutputArrayOfBatchError(adErrors);

                // Delete the campaign and everything it contains e.g., ad groups and ads.

                OutputStatusMessage("-----\nDeleteCampaigns:");
                await CampaignManagementExampleHelper.DeleteCampaignsAsync(
                    accountId: authorizationData.AccountId,
                    campaignIds: new[] { (long)campaignIds[0] });
                OutputStatusMessage(string.Format("Deleted Campaign Id {0}", campaignIds[0]));
            }
            // Catch authentication exceptions
            catch (OAuthTokenRequestException ex)
            {
                OutputStatusMessage(string.Format("Couldn't get OAuth tokens. Error: {0}. Description: {1}", ex.Details.Error, ex.Details.Description));
            }
            // Catch Campaign Management service exceptions
            catch (FaultException<AdApiFaultDetail> ex)
            {
                OutputStatusMessage(string.Join("; ", ex.Detail.Errors.Select(error => string.Format("{0}: {1}", error.Code, error.Message))));
            }
            catch (FaultException<ApiFaultDetail> ex)
            {
                OutputStatusMessage(string.Join("; ", ex.Detail.OperationErrors.Select(error => string.Format("{0}: {1}", error.Code, error.Message))));
                OutputStatusMessage(string.Join("; ", ex.Detail.BatchErrors.Select(error => string.Format("{0}: {1}", error.Code, error.Message))));
            }
            catch (FaultException<EditorialApiFaultDetail> ex)
            {
                OutputStatusMessage(string.Join("; ", ex.Detail.OperationErrors.Select(error => string.Format("{0}: {1}", error.Code, error.Message))));
                OutputStatusMessage(string.Join("; ", ex.Detail.BatchErrors.Select(error => string.Format("{0}: {1}", error.Code, error.Message))));
            }
            catch (Exception ex)
            {
                OutputStatusMessage(ex.Message);
            }
        }
    }
}
package com.microsoft.bingads.examples.v13;

import java.util.ArrayList;
import java.util.Calendar;

import com.microsoft.bingads.*;
import com.microsoft.bingads.v13.campaignmanagement.*;
import java.util.HashSet;
import java.util.List;

public class ExpandedTextAds extends ExampleBase {
    
    public static void main(java.lang.String[] args) {
     
        try
        {
            authorizationData = getAuthorizationData(); 
             
            CampaignManagementExampleHelper.CampaignManagementService = new ServiceClient<ICampaignManagementService>(
                        authorizationData, 
                        API_ENVIRONMENT,
                        ICampaignManagementService.class);
            
            // Add a search campaign.

            ArrayOfCampaign campaigns = new ArrayOfCampaign();
            Campaign campaign = new Campaign();
            campaign.setBudgetType(BudgetLimitType.DAILY_BUDGET_STANDARD);
            campaign.setDailyBudget(50.00);
            ArrayOfstring languages = new ArrayOfstring();
            languages.getStrings().add("All");
            campaign.setLanguages(languages);
            campaign.setName("Everyone's Shoes " + System.currentTimeMillis());
            campaign.setTimeZone("PacificTimeUSCanadaTijuana");
            campaigns.getCampaigns().add(campaign);

            outputStatusMessage("-----\nAddCampaigns:");
            AddCampaignsResponse addCampaignsResponse = CampaignManagementExampleHelper.addCampaigns(
                    authorizationData.getAccountId(), 
                    campaigns);            
            ArrayOfNullableOflong campaignIds = addCampaignsResponse.getCampaignIds();
            ArrayOfBatchError campaignErrors = addCampaignsResponse.getPartialErrors();
            outputStatusMessage("CampaignIds:");
            CampaignManagementExampleHelper.outputArrayOfNullableOflong(campaignIds);
            outputStatusMessage("PartialErrors:");
            CampaignManagementExampleHelper.outputArrayOfBatchError(campaignErrors);

            // Add an ad group within the campaign.
            
            ArrayOfAdGroup adGroups = new ArrayOfAdGroup();
            AdGroup adGroup = new AdGroup();
            adGroup.setName("Everyone's Red Shoe Sale");
            adGroup.setStartDate(null);
            Calendar calendar = Calendar.getInstance();
            adGroup.setEndDate(new com.microsoft.bingads.v13.campaignmanagement.Date());
            adGroup.getEndDate().setDay(31);
            adGroup.getEndDate().setMonth(12);
            adGroup.getEndDate().setYear(calendar.get(Calendar.YEAR));
            Bid CpcBid = new Bid();
            CpcBid.setAmount(0.09);
            adGroup.setCpcBid(CpcBid);
            adGroups.getAdGroups().add(adGroup);

            outputStatusMessage("-----\nAddAdGroups:");
            AddAdGroupsResponse addAdGroupsResponse = CampaignManagementExampleHelper.addAdGroups(
                    campaignIds.getLongs().get(0), 
                    adGroups, 
                    false);
            ArrayOfNullableOflong adGroupIds = addAdGroupsResponse.getAdGroupIds();
            ArrayOfBatchError adGroupErrors = addAdGroupsResponse.getPartialErrors();
            outputStatusMessage("AdGroupIds:");
            CampaignManagementExampleHelper.outputArrayOfNullableOflong(adGroupIds);
            outputStatusMessage("PartialErrors:");
            CampaignManagementExampleHelper.outputArrayOfBatchError(adGroupErrors); 

            // Add keywords and ads within the ad group.
            
            ArrayOfKeyword keywords = new ArrayOfKeyword();
            Keyword keyword = new Keyword();
            keyword.setBid(new Bid());
            keyword.getBid().setAmount(0.47);
            keyword.setParam2("10% Off");
            keyword.setMatchType(MatchType.PHRASE);
            keyword.setText("Brand-A Shoes");
            keywords.getKeywords().add(keyword);

            outputStatusMessage("-----\nAddKeywords:");
            AddKeywordsResponse addKeywordsResponse = CampaignManagementExampleHelper.addKeywords(
                    adGroupIds.getLongs().get(0), 
                    keywords, 
                    false);
            ArrayOfNullableOflong keywordIds = addKeywordsResponse.getKeywordIds();
            ArrayOfBatchError keywordErrors = addKeywordsResponse.getPartialErrors();
            outputStatusMessage("KeywordIds:");
            CampaignManagementExampleHelper.outputArrayOfNullableOflong(keywordIds);
            outputStatusMessage("PartialErrors:");
            CampaignManagementExampleHelper.outputArrayOfBatchError(keywordErrors);

            ArrayOfAd ads = new ArrayOfAd();
            ExpandedTextAd expandedTextAd = new ExpandedTextAd();
            expandedTextAd.setTitlePart1("Contoso");
            expandedTextAd.setTitlePart2("Quick & Easy Setup");
            expandedTextAd.setTitlePart3("Seemless Integration");
            expandedTextAd.setText("Find New Customers & Increase Sales!");
            expandedTextAd.setTextPart2("Start Advertising on Contoso Today.");
            expandedTextAd.setPath1("seattle");
            expandedTextAd.setPath2("shoe sale");
            com.microsoft.bingads.v13.campaignmanagement.ArrayOfstring finalUrls = new com.microsoft.bingads.v13.campaignmanagement.ArrayOfstring();
            finalUrls.getStrings().add("https://www.contoso.com/womenshoesale");
            expandedTextAd.setFinalUrls(finalUrls);
            ads.getAds().add(expandedTextAd);

            outputStatusMessage("-----\nAddAds:");
            AddAdsResponse addAdsResponse = CampaignManagementExampleHelper.addAds(
                    adGroupIds.getLongs().get(0), 
                    ads);
            ArrayOfNullableOflong adIds = addAdsResponse.getAdIds();
            ArrayOfBatchError adErrors = addAdsResponse.getPartialErrors();
            outputStatusMessage("AdIds:");
            CampaignManagementExampleHelper.outputArrayOfNullableOflong(adIds);
            outputStatusMessage("PartialErrors:");
            CampaignManagementExampleHelper.outputArrayOfBatchError(adErrors);

            // Delete the campaign and everything it contains e.g., ad groups and ads.

            outputStatusMessage("-----\nDeleteCampaigns:");
            ArrayOflong deleteCampaignIds = new ArrayOflong();
            deleteCampaignIds.getLongs().add(campaignIds.getLongs().get(0));
            CampaignManagementExampleHelper.deleteCampaigns(
                    authorizationData.getAccountId(), 
                    deleteCampaignIds);
            outputStatusMessage(String.format("Deleted CampaignId %d", deleteCampaignIds.getLongs().get(0))); 
        } 
        catch (Exception ex) {
            String faultXml = ExampleExceptionHelper.getBingAdsExceptionFaultXml(ex, System.out);
            outputStatusMessage(faultXml);
            String message = ExampleExceptionHelper.handleBingAdsSDKException(ex, System.out);
            outputStatusMessage(message);
        }
    }    
 }
<?php

use Microsoft\MsAds\Rest\ApiException;
use Microsoft\MsAds\Rest\Model\CampaignManagementService\AddKeywordsRequest;
use Microsoft\MsAds\Rest\Model\CampaignManagementService\AdGroup;
use Microsoft\MsAds\Rest\Model\CampaignManagementService\Bid;
use Microsoft\MsAds\Rest\Model\CampaignManagementService\BudgetLimitType;
use Microsoft\MsAds\Rest\Model\CampaignManagementService\Campaign;
use Microsoft\MsAds\Rest\Model\CampaignManagementService\Date;
use Microsoft\MsAds\Rest\Model\CampaignManagementService\ExpandedTextAd;
use Microsoft\MsAds\Rest\Model\CampaignManagementService\Keyword;
use Microsoft\MsAds\Rest\Model\CampaignManagementService\MatchType;
use Microsoft\MsAds\Rest\Test\RestApiTestBase;

class ExpandedTextAdsTest extends RestApiTestBase
{
    /**
     * Add a new search campaign.
     * @throws ApiException
     */
    public function testAddCampaigns()
    {
        print("-----\r\nAdding Campaigns:\r\n");

        $campaign = new Campaign();
        $campaign->setName("Women's Shoes ".self::generateRandomAlphaNumeric());
        $campaign->setBudgetType(BudgetLimitType::DAILY_BUDGET_STANDARD);
        $campaign->setDailyBudget(50.00);
        $campaign->setLanguages(['All']);
        $campaign->setTimeZone('PacificTimeUSCanadaTijuana');

        return self::addCampaignsRequest([$campaign]);
    }

    /**
     * Add an ad group within the campaign.
     * @depends testAddCampaigns
     * @throws ApiException
     */
    public function testAddAdGroups($campaignIds)
    {
        print("-----\r\nAdding Ad Groups:\r\n");

        $adGroup = new AdGroup();
        $adGroup->setName("Women's Red Shoe Sale".self::generateRandomAlphaNumeric());
        $adGroup->setCpcBid((new Bid())->setAmount(0.09));
        $adGroup->setEndDate((new Date())
            ->setDay(31)
            ->setMonth(12)
            ->setYear(date("Y")));

        return self::addAdGroupsRequest($campaignIds[0], [$adGroup]);
    }

    /**
     * Add keywords to the ad group.
     * @depends testAddAdGroups
     * @throws ApiException
     */
    public function testAddKeywords($adGroupIds)
    {
        print("-----\r\nAdding Keywords:\r\n");

        $keyword = new Keyword();
        $keyword->setText("Brand-A Shoes".self::generateRandomAlpha());
        $keyword->setMatchType(MatchType::BROAD);
        $keyword->setBid((new Bid())->setAmount(0.47));
        $keyword->setParam2("10% Off");

        $request = new AddKeywordsRequest([
            'AdGroupId' => $adGroupIds[0],
            'Keywords' => [$keyword]
        ]);

        $response = self::$campaignManagementServiceApi->addKeywords($request);
        $keywordIds = $response->getKeywordIds();
        print("KeywordIds:\r\n");
        print_r($keywordIds);
        print("PartialErrors:\r\n");
        print_r($response->getPartialErrors());
        self::assertEmpty($response->getPartialErrors());
        self::assertNotEmpty($keywordIds);

        return $adGroupIds;
    }

    /**
     * Add an expanded text ad to the ad group.
     * @depends testAddKeywords
     * @throws ApiException
     */
    public function testAddExpandedTextAd($adGroupIds)
    {
        print("-----\r\nAdding Ads:\r\n");

        $ad = new ExpandedTextAd();
        $ad->setTitlePart1("Contoso");
        $ad->setTitlePart2("Quick & Easy Setup");
        $ad->setTitlePart3("Seamless Integration");
        $ad->setText("Find New Customers & Increase Sales!");
        $ad->setTextPart2("Start Advertising on Contoso Today.");
        $ad->setPath1("seattle");
        $ad->setPath2("shoe sale");
        $ad->setFinalUrls(["http://www.contoso.com/womenshoesale"]);

        return self::addAdsRequest($adGroupIds[0], [$ad]);
    }

    /**
     * Delete the campaign and everything it contains.
     * @depends testAddCampaigns
     * @depends testAddExpandedTextAd
     * @throws ApiException
     */
    public function testDeleteCampaigns($campaignIds)
    {
        self::deleteCampaignsRequest($campaignIds);
    }
}
import uuid
from auth_helper import *
from openapi_client.models.campaign import *

def main(authorization_data):
    try:
        # Create a campaign
        print("Creating campaign...")
        
        campaign = Campaign(
            name=f"Campaign_{uuid.uuid4()}",
            budget_type=BudgetLimitType.DAILYBUDGETSTANDARD,
            daily_budget=50.00,
            languages=['All'],
            time_zone='PacificTimeUSCanadaTijuana',
            campaign_type=CampaignType.SEARCH
        )
        
        add_campaigns_request = AddCampaignsRequest(
            account_id=authorization_data.account_id,
            campaigns=[campaign]
        )
        
        add_campaigns_response = campaign_service.add_campaigns(
            add_campaigns_request=add_campaigns_request
        )
        
        campaign_ids = add_campaigns_response.CampaignIds
        print(f"Created Campaign ID: {campaign_ids[0]}")
        
        # Create an ad group
        print("\nCreating ad group...")
        
        ad_group = AdGroup(
            name=f"AdGroup_{uuid.uuid4()}",
            start_date=None,
            end_date=Date(day=31, month=12, year=datetime.now().year),
            cpc_bid=Bid(amount=0.10),
            language="English"
        )
        
        add_ad_groups_request = AddAdGroupsRequest(
            campaign_id=campaign_ids[0],
            ad_groups=[ad_group]
        )
        
        add_ad_groups_response = campaign_service.add_ad_groups(
            add_ad_groups_request=add_ad_groups_request
        )
        
        ad_group_ids = add_ad_groups_response.AdGroupIds
        print(f"Created Ad Group ID: {ad_group_ids[0]}")
        
        # Create expanded text ads
        print("\nCreating expanded text ads...")
        
        ads = []
        
        for i in range(3):
            expanded_text_ad = ExpandedTextAd(
                title_part1=f"Contoso Quick Setup {i}",
                title_part2="Fast & Easy",
                title_part3="Seamless Integration",
                text=f"Find New Customers & Increase Sales! Start Advertising on Contoso Today. Ad {i}",
                text_part2="Start Advertising on Contoso Today.",
                path1="seattle",
                path2="shoe sale",
                final_urls=["http://www.contoso.com/womenshoesale"],
                final_mobile_urls=["http://mobile.contoso.com/womenshoesale"]
            )
            ads.append(expanded_text_ad)
        
        add_ads_request = AddAdsRequest(
            ad_group_id=ad_group_ids[0],
            ads=ads
        )
        
        add_ads_response = campaign_service.add_ads(
            add_ads_request=add_ads_request
        )
        
        ad_ids = add_ads_response.AdIds
        print(f"Created {len(ad_ids)} ads")
        print(f"Ad IDs: {ad_ids}")
        
        if add_ads_response.PartialErrors:
            print(f"Partial Errors: {add_ads_response.PartialErrors}")
        
        # Get ads
        print("\nGetting ads...")
        
        get_ads_request = GetAdsByAdGroupIdRequest(
            ad_group_id=ad_group_ids[0],
            ad_types=[AdType.EXPANDEDTEXT],
            return_additional_fields=None
        )
        
        get_ads_response = campaign_service.get_ads_by_ad_group_id(
            get_ads_by_ad_group_id_request=get_ads_request
        )
        
        retrieved_ads = get_ads_response.Ads
        print(f"Retrieved {len(retrieved_ads)} ads")
        
        for ad in retrieved_ads:
            if ad and hasattr(ad, 'Id'):
                print(f"  Ad ID: {ad.Id}")
                if hasattr(ad, 'TitlePart1'):
                    print(f"    Title Part 1: {ad.TitlePart1}")
        
        # Update ads
        print("\nUpdating ads...")
        
        update_ads = []
        
        if len(retrieved_ads) > 0 and retrieved_ads[0]:
            update_ad = ExpandedTextAd(
                id=ad_ids[0],
                title_part1="Updated Contoso Quick Setup",
                title_part2="Updated Fast & Easy",
                text="Updated - Find New Customers & Increase Sales!",
                final_urls=["http://www.contoso.com/womenshoesale"]
            )
            update_ads.append(update_ad)
        
        if update_ads:
            update_ads_request = UpdateAdsRequest(
                ad_group_id=ad_group_ids[0],
                ads=update_ads
            )
            
            update_ads_response = campaign_service.update_ads(
                update_ads_request=update_ads_request
            )
            
            if update_ads_response.PartialErrors:
                print(f"Partial Errors: {update_ads_response.PartialErrors}")
            else:
                print("Ads updated successfully")
        
        # Delete ads
        print("\nDeleting ads...")
        
        delete_ads_request = DeleteAdsRequest(
            ad_group_id=ad_group_ids[0],
            ad_ids=ad_ids
        )
        
        delete_ads_response = campaign_service.delete_ads(
            delete_ads_request=delete_ads_request
        )
        
        if delete_ads_response.PartialErrors:
            print(f"Partial Errors: {delete_ads_response.PartialErrors}")
        else:
            print(f"Deleted {len(ad_ids)} ads")
        
        # Delete ad group
        print("\nDeleting ad group...")
        
        delete_ad_groups_request = DeleteAdGroupsRequest(
            campaign_id=campaign_ids[0],
            ad_group_ids=ad_group_ids
        )
        
        campaign_service.delete_ad_groups(
            delete_ad_groups_request=delete_ad_groups_request
        )
        
        print(f"Deleted Ad Group ID {ad_group_ids[0]}")
        
        # Delete campaign
        print("\nDeleting campaign...")
        
        delete_campaigns_request = DeleteCampaignsRequest(
            account_id=authorization_data.account_id,
            campaign_ids=campaign_ids
        )
        
        campaign_service.delete_campaigns(
            delete_campaigns_request=delete_campaigns_request
        )
        
        print(f"Deleted Campaign ID {campaign_ids[0]}")
        
    except Exception as ex:
        print(f"Error occurred: {str(ex)}")

if __name__ == '__main__':
    print("Loading the web service client...")
    
    authorization_data = AuthorizationData(
        account_id=None,
        customer_id=None,
        developer_token=DEVELOPER_TOKEN,
        authentication=None,
    )
    
    authenticate(authorization_data)
    
    campaign_service = ServiceClient(
        service='CampaignManagementService',
        version=13,
        authorization_data=authorization_data,
        environment=ENVIRONMENT,
    )
    
    main(authorization_data)

ดูเพิ่มเติม

เริ่มต้นใช้งาน Bing Ads API