Skip to main content
AWS Partner Revenue Measurement (PRM) attributes AWS service consumption to the AWS Marketplace product that drove it. This page covers how to implement it: which method to use for each workload, the exact identifier formats, code samples and the limits to design around. Everything here is based on the AWS PRM onboarding guide. Replace the example account ID (012345678901) and product code (5ugbbrmu7ud3u5hsipfzug61p) with your own.
For what PRM is, why it affects eligibility for APN funding benefits, and the six steps to compliance, see AWS Partner Revenue Measurement.

Choose a method

AWS offers three PRM methods. You can combine them on one product. AWS defines three architecture patterns: everything in the partner account, everything in the customer account, or a hybrid of both. Match each workload to a method.
Tagging gives continuous attribution while the tag is present. The user agent string only attributes resources that receive at least one qualifying API call in the month. Use tagging for quiet, long-running infrastructure.

Identifier formats

Find your product code in the AWS Marketplace Management Portal under Products, then the product’s Product Summary. The 12-digit account ID in the tag key is your Partner Central AWS account ID, shown at the top right of the Partner Central homepage.

Common formatting mistakes

Each of these attributes nothing, and none of them returns an error.

Resource tagging

Apply PRM tags through the tool that manages the resource.
Tags added in the console, CLI or SDK to resources managed by Terraform, CloudFormation or CDK cause drift. The next deploy can remove them, and attribution stops without an error.
  • Some Terraform resources, such as aws_autoscaling_group, do not support default_tags. Do not set the same key in default_tags and in a resource’s own tags.
  • EBS volumes created from block device mappings do not inherit CloudFormation stack tags. Tag them on the resource.
  • Tag only resources your product directly uses or influences, and only in production.

User agent string

The string must appear on every regular AWS API or CLI call your product makes. The trailing $ is required.
  • Set the string only on calls your product makes, never on calls the customer makes.
  • If an application ID already exists, append yours after a space.
  • The Terraform approach needs Terraform 1.0 or later and AWS provider 6.27.0 or later. provider_meta does not inherit into child modules, so add it to each one. Do not declare a provider "aws" block in a module you ship to customers.
  • CloudFormation does not support custom user agent strings. Use tagging for CloudFormation-deployed resources.
  • Only control plane calls count. Data plane calls do not. A read-only Describe* call qualifies.

Validate

  1. Make a test call and check that the userAgent field in AWS CloudTrail contains APN_1.1/pc_<product code>$.
  2. Confirm the tags on your production resources.
  3. Send deployment details to your AWS partner management team or APN Support for validation.
  4. Check the Attributed Revenue Dashboard in Partner Central. Revenue for a billing month appears about 45 days after that month ends.

Limits to design around

Sources

Get a free PRM readiness check

Find out which of your product-driven AWS spend carries a PRM signal, and what to fix first.