Skip to main content

Microsoft Bing Ads Component

Manage Microsoft Bing Ad Customer Services

Component key: ms-bing-ads

Description

Microsoft Advertising is a pay-per-click (PPC) advertising platform used to display ads based on the keywords used in a user's search query. For advertisers placing a large number of ads or developers building advertising tools, the Bing Ads API provides programmatic access to Microsoft Advertising.

Using the Bing Ads API is the most efficient way to manage many large campaigns or to integrate your marketing with other in-house systems. Some organizations may choose a hybrid approach; using the web UI for most tasks but automating reporting or campaign optimization with the API.

This component allows you to add external conversions to Ads campaigns.

Microsoft documents many frequent asked questions that will aid in troubleshooting.

Connections

OAuth 2.0 Authorization Code

This component uses OAuth 2.0 to connect to the Microsoft Bing Ads API.

To use Bing Ads APIs, you must have a developer token and valid user credentials. If you do not yet have a Microsoft Advertising account, you can sign up via the Microsoft Advertising web application.

You can follow these steps to get a developer token for production.

  1. Sign in with Super Admin credentials at the Microsoft Advertising Developer Portal account tab.
  2. Choose the user that you want associated with the developer token. Typically an application only needs one universal token regardless how many users will be supported.
  3. Click on the Request Token button.

Microsoft Advertising leverages the Microsoft identity platform endpoint for developers and the OAuth 2.0 protocol to authenticate work or school accounts from Azure Active Directory (AAD) and personal Microsoft accounts (MSA), such as hotmail.com, outlook.com, and msn.com.

Before your application can authenticate Microsoft Advertising users, you must register your application and get the corresponding client ID and client secret.

  1. Navigate to the Microsoft identity platform for developers in the Azure portal - App registrations page. You can login using either a personal Microsoft Account or a Work or School Account.

  2. Select New registration.

  3. When the Register an application page appears, enter your application's registration information:

    • In the Name section, enter a meaningful application name that will be displayed to users of the app, for example My browserless client.
    • In the Supported account types section, select Accounts in any organizational directory and personal Microsoft accounts.
  4. Select Register to create the application.

  5. On the app Overview page, find the Application (client) ID value and record it for later. You will use it as the client_id when you request user consent and get an access token.

  6. Select the Add a Redirect URI link and then you should see the Redirect URIs page.

    • For web applications, provide the base URL of your application. For Prismatic, use callback url https://oauth2.prismatic.io/callback. Users would use this URL to sign into a web client application.
  7. For web applications, select Certificates & secrets under Manage. Select the New client secret button. Enter a value in Description, select any option for Expires and choose Add. Copy the client secret value before leaving the page. You will use it later as the client_secret to get an access token.

Now that you have a Client ID and Client Secret, add Microsoft Bing Ads step to your integration in Prismatic.

Open the Configuration Wizard Designer by clicking Configuration Wizard, select your Microsoft Bing Ads Connection and enter your client ID and secret.

Data Sources

Select Account ID

Gets the account identifiers that are accessible from the specified customer. | key: selectAccountId | type: picklist

Data Source Payload

{
"result": [
{
"key": "17685412",
"label": "XYZ 1 (id: 17685412)"
},
{
"key": "68745216",
"label": "XYZ 2 (id: 68745216)"
},
{
"key": "89442154",
"label": "XYZ 3 (id: 89442154)"
}
]
}

Select Customer ID

Gets the customer identifiers that are accessible to the current authenticated user. | key: selectCustomerId | type: picklist

Data Source Payload

{
"result": [
{
"key": "17685412",
"label": "XYZ 1 (id: 17685412)"
},
{
"key": "68745216",
"label": "XYZ 2 (id: 68745216)"
},
{
"key": "89442154",
"label": "XYZ 3 (id: 89442154)"
}
]
}

Actions

Initiates the client link process to manage the accounts of another customer. Sends a link request from one customer to another customer or account. | key: addClientLinks

Output Example Payload

{
"data": {
"OperationErrors": {
"OperationError": [
{
"Code": 12345678,
"Details": "xyz",
"Message": "some error message"
},
{
"Code": 12345678,
"Details": "xyz",
"Message": "some error message"
}
]
},
"PartialErrors": {
"ArrayOfOperationError": {
"OperationError": [
{
"Code": 12345678,
"Details": "xyz",
"Message": "some error message"
},
{
"Code": 12345678,
"Details": "xyz",
"Message": "some error message"
}
]
}
}
}
}

Get Account Info

Gets the identifiers, names, and numbers of accounts that are accessible from the specified customer. | key: getAccountsInfo

Output Example Payload

{
"data": {
"AccountsInfo": {
"AccountInfo": [
{
"Id": 12345678,
"Name": "Account Name 1",
"Number": "F123456KG",
"AccountLifeCycleStatus": "Active"
},
{
"Id": 12345678,
"Name": "Account Name 2",
"Number": "F123456KG",
"AccountLifeCycleStatus": "Active"
}
]
}
}
}

Get Customer

Gets the details of a customer. | key: getCustomer

Output Example Payload

{
"data": {
"Customer": {
"CustomerFinancialStatus": "ClearFinancialStatus",
"Id": 1234567,
"Industry": "NA",
"LastModifiedByUserId": 2,
"LastModifiedTime": "2022-10-26T13:35:34.957",
"MarketCountry": "US",
"ForwardCompatibilityMap": {
"KeyValuePairOfstringstring": [
{
"key": "ManagedByCustomerId",
"value": 0
}
],
"MarketLanguage": "English",
"Name": "zyx",
"ServiceLevel": "SelfServe",
"CustomerLifeCycleStatus": "Active",
"TimeStamp": "AAAAADlQGFU=",
"Number": "F145006C7T",
"CustomerAddress": {
"City": "Sioux Falls",
"CountryCode": "US",
"Id": 135264702,
"Line1": "1235 W 12th St",
"Line2": "Suite 202",
"PostalCode": 27108,
"StateOrProvince": "fl",
"TimeStamp": "AAAAADlQGE4="
}
}
}
}
}

Get Customers Info

Gets the identifiers and names of customers that are accessible to the current authenticated user. The results are filtered by customer name. | key: getCustomersInfo

Output Example Payload

{
"data": {
"CustomersInfo": {
"CustomerInfo": [
{
"Id": 12345678,
"Name": "xyz inc"
},
{
"Id": 12345689,
"Name": "xyz inc"
}
]
}
}
}

Get Linked Accounts And Customers Info

Gets the customer and account hierarchy under the specified customer. | key: getLinkedAccountsAndCustomersInfo

Output Example Payload

{
"data": {
"AccountsInfo": {
"AccountInfo": [
{
"Id": 12345678,
"Name": "Account Name 1",
"Number": "F123456KG",
"AccountLifeCycleStatus": "Active"
},
{
"Id": 12345678,
"Name": "Account Name 2",
"Number": "F123456KG",
"AccountLifeCycleStatus": "Active"
}
]
},
"CustomersInfo": {
"CustomerInfo": [
{
"Id": 12345678,
"Name": "xyz inc"
}
]
}
}
}

Raw Request

Send raw HTTP request to Bing Ads | key: rawRequest


Search Accounts

Searches for accounts that match the request criteria. | key: searchAccounts

Output Example Payload

{
"data": {
"Accounts": {
"AdvertiserAccount": [
{
"BillToCustomerId": 369545927,
"CurrencyCode": "USD",
"AccountFinancialStatus": "ClearFinancialStatus",
"Id": 156089854,
"Language": "English",
"LastModifiedByUserId": 3,
"LastModifiedTime": "2022-10-26T18:6:8.443",
"Name": "XYZ.co",
"Number": "F168K7MC",
"ParentCustomerId": 1696874121,
"PaymentMethodId": 1268789111,
"PaymentMethodType": "CreditCard",
"PrimaryUserId": 168125418,
"AccountLifeCycleStatus": "Active",
"TimeStamp": "AAAAADlTWUc=",
"TimeZone": "CentralTimeUSCanada",
"LinkedAgencies": {
"CustomerInfo": [
{
"Id": 12345678,
"Name": "xyz inc"
},
{
"Id": 12345689,
"Name": "xyz inc"
}
]
},
"TaxInformation": {
"KeyValuePairOfstringstring": [
{
"key": "ManagedByCustomerId",
"value": 0
}
]
},
"BusinessAddress": {
"City": "Sioux Falls",
"CountryCode": "US",
"Id": 135264777,
"Line1": "4516 S 50th St",
"Line2": "Suite 220",
"PostalCode": 37108,
"StateOrProvince": "NE",
"BusinessName": "XYZ Software Inc."
},
"AutoTagType": "Inactive"
}
]
}
}
}

Searches for the client links for the customer of the current authenticated user, filtered by the search criteria. The operation returns the most recent link for each unique combination of agency customer and client account. | key: searchClientLinks

Output Example Payload

{
"data": {
"ClientLinks": {
"ClientLink": [
{
"ClientEntityId": 144015218,
"ClientEntityName": "Example - Company",
"ClientEntityNumber": "F113T5TB",
"InviterEmail": "example@company.com",
"InviterName": "Bob",
"InviterPhone": "null",
"IsBillToClient": false,
"LastModifiedByUserId": 134084676,
"LastModifiedDateTime": "2022-11-11T15:26:49.357",
"ManagingCustomerId": 169592807,
"ManagingCustomerName": "company.com",
"ManagingCustomerNumber": "F145006C7T",
"Name": "Example Link",
"Note": "null",
"StartDate": "2022-11-11T15:26:49.24Z",
"Status": "LinkPending",
"SuppressNotification": false,
"Timestamp": "AAAAAAAAAAA=",
"Type": "AccountLink"
},
{
"ClientEntityId": 138108451,
"ClientEntityName": "Test Example 1",
"ClientEntityNumber": "F107RHVU",
"InviterEmail": "john@other-example.com",
"InviterName": "John Doe",
"InviterPhone": "111-555-1234",
"IsBillToClient": true,
"LastModifiedByUserId": 134080686,
"LastModifiedDateTime": "2022-11-10T01:10:11.55",
"ManagingCustomerId": 169592807,
"ManagingCustomerName": "other-example.com",
"ManagingCustomerNumber": "F145006C7T",
"Name": "Test Client Link",
"Note": "This is just a test",
"StartDate": "2022-11-10T01:10:11.423Z",
"Status": "LinkPending",
"SuppressNotification": false,
"Timestamp": "AAAAAAAAAAA=",
"Type": "AccountLink"
}
]
}
}
}

Send User Invitation

Sends an email invitation for a user to sign up for Microsoft Advertising. The invitation limits account access and permissions. | key: sendUserInvitation

Output Example Payload

{
"data": {
"UserInvitationId": 134015178
}
}