Skip to content

Commit 0f542e4

Browse files
authored
Merge pull request #46747 from yijenj/patch-9
Update grow-your-business-with-azure-marketplace.md
2 parents 0971a73 + 420e675 commit 0f542e4

File tree

1 file changed

+239
-1
lines changed

1 file changed

+239
-1
lines changed

articles/marketplace/grow-your-business-with-azure-marketplace.md

Lines changed: 239 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,245 @@ To promote your offer or app, use the following table to access more benefits an
213213
| Earn your Cloud Platform Competency | Earning a competency helps you differentiate yourself among other Microsoft partners. Earning a competency also helps you demonstrate technical expertise and customer success in the market. Competency is a prerequisite for many key partner programs like Co-Sell.<br /> For more information about Cloud Platform competency, visit [Cloud Platform Competency](https://partner.microsoft.com/membership/cloud-platform-competency). |
214214
| Become IP Co-Sell Ready | You may be eligible for the IP Co-Sell Ready program, which allows you to collaborate directly with Microsoft sellers and other partners on target customer opportunities and account planning. Your solution becomes visible to Microsoft sellers in the seller solution catalog. Microsoft sellers are rewarded for collaborating and winning with you.<br /> For more information about Co-Sell readiness, including eligibility requirements, visit [Promote Your Business](https://partner.microsoft.com/reach-customers/promote-your-business). |
215215

216-
## Next Steps
216+
217+
# Azure Partner Revenue Attribution
218+
219+
As a software partner for Azure your solutions either require Azure components or is deployed directly on Azure infrastructure. Today, when an partner solution is deployed by the customer and uses Azure resources provisioned by the customer, it is difficult for the partner to gain visibility to the status of those deployments and difficult to get optics into impact to Azure growth for alignment with the Microsoft sales teams and credit for Microsoft partner programs.
220+
221+
Microsoft is creating a new method to help partners better track Azure usage that is a result of a customer deploying your software on Azure. This new method is based on using Azure Resource Manager to orchestrate deployment of Azure services.
222+
223+
As a Microsoft partner, you can associate Azure usage with any Azure resources you provision on a customer's behalf. This can be done via the Azure Marketplace, the QuickStart repo, private github repos and even 1 on 1 customer engagements. To enable this, there are two approaches available:
224+
225+
1. Azure Resource Manager Templates: Azure Resource Manager templates or solution templates to deploy the Azure services to run the partner’s software. Partners can create Azure Resource Manager template that defines the infrastructure and configuration of your Azure solution. Creating an Azure Resource Manager template allows you and your customers repeatedly deploy your solution throughout its lifecycle and have confidence your resources are deployed in a consistent state.
226+
227+
2. Azure Resource Manager APIs: partners can call the Azure Resource Manager APIs directly to either deploy an Azure Resource Manager template or to generate the API calls to directly provision Azure services.
228+
229+
## Method 1: Azure Resource Manager Templates
230+
Today many partner solutions are deployed on a customer’s subscription using Azure Resource Manager templates. If you already have a Azure Resource Manager template available in the Azure Marketplace, on GitHub or as a QuickStart, the process of modifying your template to enable this new tracking method should be straight forward. If you are not using an Azure Resource Manager template today here are a few links to help you better understand Azure Resource Manager templates and how to create one:
231+
232+
* [Create and deploy your first Azure Resource Manager template](https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-manager-create-first-template)
233+
* [Guide to create a solution template for Azure Marketplace](https://docs.microsoft.com/en-us/azure/marketplace-publishing/marketplace-publishing-solution-template-creation)
234+
235+
## Instructions: add a GUID to your existing Azure Resource Manager template
236+
237+
Adding the GUID is a single modification of the main template file:
238+
1. Create a GUID, let's say that the generated value is eb7927c8-dd66-43e1-b0cf-c346a422063
239+
2. Open the Azure Resource Manager template
240+
3. Add a new resource in the main template file. The resource only needs to be in the mainTemplate.json or azuredeploy.json, not in any nested or linked templates.
241+
4. Enter the GUID after the “pid-” as shown above.
242+
243+
It should look something like this example:
244+
`pid-eb7927c8-dd66-43e1-b0cf-c346a422063`
245+
246+
5. Check template for any errors
247+
6. Republish the template in the appropriate repositories
248+
249+
## Sample Template Code
250+
251+
```
252+
253+
{ // add this resource to the mainTemplate.json (do not add the entire file)
254+
"apiVersion": "2018-02-01",
255+
"name": "pid-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", // use your GUID here
256+
"type": "Microsoft.Resources/deployments",
257+
"properties": {
258+
"mode": "Incremental",
259+
"template": {
260+
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
261+
"contentVersion": "1.0.0.0",
262+
"resources": []
263+
}
264+
}
265+
} // remove all comments from the file when done
266+
267+
```
268+
269+
## Method 2: Azure Resource Manager APIs
270+
271+
In some cases, partners prefer to make calls directly against the Azure Resource Manager REST APIs to deploy Azure services. [Azure supports multiple SDKs](https://docs.microsoft.com/en-us/azure/#pivot=sdkstools) to enable this. You can use one of the SDKs, or call the REST APIs directly to deploy resources.
272+
273+
If you are using an Azure Resource Manager template, you should tag your solution using the instructions above. If you are not using an Azure Resource Manager template and making direct API calls you can still tag your deployment to associate usage of Azure resources.
274+
275+
**How to tag a deployment using the Azure Resource Manager APIs:**
276+
For this approach, when designing your API calls you will include a GUID in the user agent header in the request. The GUID should be added for each Offer or SKU. The string will need to be formatted with the prefix pid- and then include the partner generated GUID.
277+
278+
>[!Note]
279+
>GUID format for insertion into the user agent:
280+
pid-eb7927c8-dd66-43e1-b0cf-c346a422063 // enter your GUID after the “pid-“
281+
282+
The format of the string is important. If the prefix “pid-” is not included we will not be able to query the data. Different SDKs do this differently. To implement this method you will need to review the support and approach for your preferred Azure SDK.
283+
284+
**Example using the Python SDK:**
285+
For Python, you need to use the “config” attribute. You can only add to a UserAgent (we still want some kind of control). This would be:
286+
287+
```python
288+
289+
client = azure.mgmt.servicebus.ServiceBusManagementClient(**parameters)
290+
client.config.add_user_agent("pid-eb7927c8-dd66-43e1-b0cf-c346a422063")
291+
292+
293+
```
294+
295+
>This has to be done for each client, there is no global static configuration (You may choose to do a client factory to be sure every client is doing it.
296+
>[Additional reference information](https://github.com/Azure/azure-cli/blob/7402fb2c20be2cdbcaa7bdb2eeb72b7461fbcc30/src/azure-cli-core/azure/cli/core/commands/client_factory.py#L70-L79)
297+
298+
## Registering a GUID:
299+
300+
How to tag a deployment using the Azure PowerShell or the Azure CLI:
301+
If you deploy resources via AzurePowerShell you can append your GUID by using the following method:
302+
303+
```
304+
305+
[Microsoft.Azure.Common.Authentication.AzureSession]::ClientFactory.AddUserAgent("pid-eb7927c8-dd66-43e1-b0cf-c346a422063")
306+
307+
308+
```
309+
310+
To append your GUID when using the Azure CLI, set the AZURE_HTTP_USER_AGENT environment variable. You can set this within the scope of a script or to set globally, for shell scope use:
311+
312+
```
313+
314+
export AZURE_HTTP_USER_AGENT='pid-eb7927c8-dd66-43e1-b0cf-c346a422063'
315+
316+
317+
```
318+
319+
## Registering GUIDs/Offers
320+
321+
In order for the GUID to be included in our tracking it must be registered.
322+
323+
All registrations for template GUIDs will be done via the Azure Marketplace Cloud Partner Portal (CPP).
324+
325+
Apply to [Azure Marketplace](http://aka.ms/listonazuremarketplace) today and get access to the Cloud Partner portal.
326+
327+
* Partners will be required to [have a profile in CPP](https://docs.microsoft.com/en-us/azure/marketplace/become-publisher) and encouraged to list the offer in Azure Marketplace or AppSource
328+
* Partners will be able to register multiple GUIDs
329+
* Partners will also be able to register a GUID for the non-Marketplace solution templates/offers
330+
331+
Once you have added the GUID to your template or in the user agent and registered the GUID in the CPP all deployments will be tracked.
332+
333+
## Verification of GUID Deployment
334+
335+
After you have modified your template and performed a test deployment, you can use the following PowerShell script to retrieve the resrouces that were deployed and tagged.
336+
337+
You can use it to verify if the GUID has been added to your Azure Resource Manager template successfully. It does not apply to Azure Resource Manager API deployment.
338+
339+
Log in to Azure and select the subscription that contains the deployment you want to verify before running the script. It must be run within the subscription context of the deployment.
340+
341+
The GUID and resourceGroup name of the deployment are required params.
342+
343+
You can find the original script [here](https://gist.github.com/bmoore-msft/ae6b8226311014d6e7177c5127c7eba1#file-verify-deploymentguid-ps1).
344+
345+
```
346+
347+
Param(
348+
[GUID][Parameter(Mandatory=$true)]$guid,
349+
[string][Parameter(Mandatory=$true)]$resourceGroupName'
350+
)
351+
352+
#get the correlationId of the pid deployment
353+
354+
$correlationId = (Get-AzureRmResourceGroupDeployment -ResourceGroupName
355+
$resourceGroupName -Name "pid-$guid").correlationId
356+
357+
#find all deployments with that correlationId
358+
359+
$deployments = Get-AzureRmResourceGroupDeployment -ResourceGroupName $resourceGroupName | Where-Object{$_.correlationId -eq $correlationId}
360+
361+
#find all deploymentOperations in a deployment by name (since PowerShell does not surface outputResources on the deployment or correlationId on the deploymentOperation)
362+
363+
foreach ($deployment in $deployments){
364+
365+
#get deploymentOperations by deploymentName and then the resourceId for any create operation
366+
367+
($deployment | Get-AzureRmResourceGroupDeploymentOperation | Where-Object{$_.properties.provisioningOperation -eq "Create" -and $_.properties.targetResource.resourceType -ne "Microsoft.Resources/deployments"}).properties.targetResource.id
368+
369+
}
370+
371+
372+
```
373+
374+
## Guidance on creating GUIDS
375+
376+
A GUID (globally unique identifier) is a 32 hexadecimal digit unique reference number. To create a GUID a partner should use a GUID generator to create their GUIDs for tracking. There are multiple [online GUID generators](https://www.bing.com/search?q=guid%20generator&qs=n&form=QBRE&sp=-1&ghc=2&pq=guid%20g&sc=8-6&sk=&cvid=0BAFAFCD70B34E4296BB97FBFA3E1B4E) you can use.
377+
378+
Partners are encouraged to create a unique GUID for every Offer and distribution channel. For example, a partner who has two solutions and both are deployed via a template and are available in both the Azure Marketplace and on GitHub. The partner should create 4 GUIDS:
379+
380+
* Offer A in Azure Marketplace
381+
* Offer A on GitHub
382+
* Offer B in Azure Marketplace
383+
* Offer B on GitHub
384+
385+
Reporting will be done by partner (Microsoft Partner ID) and GUID.
386+
387+
You can also choose to track GUIDs at a more granular level i.e. SKU (where SKUs are variants of an offer).
388+
389+
## Guidance on privacy and data collection
390+
391+
Partners should provide messaging to inform their customers that deployments that include the Azure Resource Manager GUID tracking will allow Microsoft to report the Azure usage associated with those deployments to the partner. Some example language is below. In addition, partners should ensure this aligns with their own data privacy and collection policies including options for customers to be excluded from track:
392+
393+
**For Azure Resource Manager template deployments**
394+
395+
When deploying this template Microsoft will be able identify the installation of our [insert partner software name] software with the Azure resources deployed. Microsoft will be able to correlate the Azure resources used to support the software. Microsoft collects this information to provide the best experiences with their products and to operate their business. This data will be collected and governed by Microsoft’s privacy policies, which can be found at https://www.microsoft.com/en-us/trustcenter.
396+
397+
**For SDK or API deployments**
398+
399+
When deploying our software Microsoft will be able identify the installation of our [insert partner software name] software with the Azure resources deployed. Microsoft will be able to correlate the Azure resources used to support the software. Microsoft collects this information to provide the best experiences with their products and to operate their business. This data will be collected and governed by Microsoft’s privacy policies, which can be found at https://www.microsoft.com/en-us/trustcenter.
400+
401+
## Support
402+
403+
For assistance, please follow the below steps:
404+
1. Visit the support page located at [go.microsoft.com/fwlink/?linkid=844975](https://go.microsoft.com/fwlink/?linkid=844975)
405+
2. For issues with usage association - select Problem type: **Marketplace Onboarding** and Category: **Other** and then click **Start Request.**
406+
407+
For issues on accessing Azure Marketplace Cloud Partner Portal - select Problem type: **Marketplace Onboarding** and Category: **Access Problem** and then click **Start Request.**
408+
3. Complete the required fields on the next page and click **Continue.**
409+
4. Complete the free text fields on the next page.
410+
411+
>[!Important]
412+
>Fill in Incident title with **“ISV Usage Tracking”** and describe your issue in detail in the large free text field after. Complete the rest of the form and click **Submit**.
413+
414+
## FAQs
415+
416+
**What is the benefit of adding the GUID to the template?**
417+
418+
Microsoft will provide partners with a view of customer deployments of their templates and insights on their influenced usage. Both Microsoft and the partner can also use this information to drive closer engagement between partners and the Microsoft sales teams and a more consistent view of an individual partner’s impact on Azure growth.
419+
420+
**Who can add a GUID to a template?**
421+
422+
The tracking resource is intended to connect the partner’s solution to the customers Azure usage. The usage data is tied to a partner’s Microsoft Partner Network identity (MPN ID) and reporting will be available to partners in the Cloud Partner Portal (CPP).
423+
424+
**Once a GUID has been added can it be changed?**
425+
426+
Yes, a customer or implementation partner may customize the template and could change or remove the GUID. We suggest that partners proactively describe the role of the resource and GUID to their customers and partners to prevent removal or edits to the tracking GUID. Note that changing the GUID will only affect new, not existing, deployments and resources.
427+
428+
**When will reporting be available?**
429+
430+
A beta version of reporting should be available soon. Reporting will be integrated into the Cloud Partner Portal (CPP).
431+
432+
**Can I track templates deployed from a non-Microsoft repository like GitHub?**
433+
434+
Yes, as long as the GUID is present when the template is deployed, usage will be tracked.
435+
Partners is required to have a profile in Cloud Partner Portal to register the related templates published outside of the Azure Marketplace.
436+
437+
**Is there a difference if the template is deployed from Azure Marketplace versus other repositories like GitHub?**
438+
439+
Yes, partner who publish offers in the Azure Marketplace may receive more detailed data on deployments from the Azure Marketplace. Partners will benefit from exposing their offer to customers on the Azure Marketplace portal and in the Azure management portal. Offers in the Azure marketplace also generate leads for the partner.
440+
441+
**What if I create a custom template for an individual customer engagement?**
442+
443+
You are still welcome to add the GUID to the template. If you use an existing GUID that was registered it will be included in reporting. If you create a new GUID you will need to register the new GUID to get it included in tracking.
444+
445+
**Does the customer receive reporting as well?**
446+
447+
Customers are currently able to track their usage of individual resources or customer defined resource groups within the Azure management portal.
448+
449+
**Is this similar to the Digital Partner of Record (DPOR)?**
450+
451+
This new method of connecting the deployment and usage to a partner’s solution is intended to provide a mechanism to link a partner solution to Azure usage. DPOR is intended to associate a consulting (Systems Integrator) or management (Managed Service Provider) partner with a customer’s Azure subscription.
452+
453+
454+
## Next steps
217455
Visit [Go to Market Services](https://partner.microsoft.com/reach-customers/gtm) to learn more about Marketplace services.
218456

219457
---

0 commit comments

Comments
 (0)