Compliance Testing

MassiveMusic has rights holder reporting obligations, each individual service will have bespoke reporting requirements. Due to this, it is crucial that we have correct log data from which we can generate the required reports.

The logging API allows you to report playback activity back to MassiveMusic, for the purposes of licensor royalty and usage reporting. There are 4 different API endpoints, these are: subscription stream, catalogue stream, download sales and preview clips.

The processes outlined below allows MassiveMusic to ensure the data is accurate from the source where the data is logged.

Process:

Step 1: Testing instructions and a Development API key(s) will be sent to you so that you can begin Compliance Testing.

Step 2: You test according to whatever service type you fall under (i.e. download, subscription streaming, catalogue streaming or preview clips).

Step 3: Once you have completed testing, you would email the Client Success team via MassiveMusic's support email address [email protected]. and attach a CSV file of the data you have logged during the test period.

Step 4: MassiveMusic reviews the assets you sent and if everything is there then we pass this over to our Reporting Team.

Step 5: MassiveMusic’s Reporting Team then reviews the logs. This process takes up to 5 working days and we will let you know once complete. Once this process is complete, we will send you an Excel file with your logs and ours so you can see the direct comparison. If there are any non-compliant areas this will be flagged to you so you can correct.

Step 6: Once you have put a fix in place for these areas, you would then send over the new logs (steps 4 & 5 will be repeated until the data pulls through correctly).

Step 7: The compliance process is complete. MassiveMusic will then send you your live keys and you can launch. The Development API key(s) will still be open so, feel free to use this to do any testing you may need post compliance approval.

Select a service type from below to see more details on how testing should be conducted:




Logging Subscription Streams

🚧

Before you get started

  • Please ensure you conduct the tests on the Development API key(s).
  • Please note down the time and date (UTC) that you begin the test usage activity, and the same for when you cease the test usage activity.
  • Once your logging activity has been approved, we highly advise and recommend retaining a backup of all your logs on a monthly basis.
  • During the testing window you must only log compliance data and should not log any other development activity to MassiveMusic’s platform during the testing window.
  • Either need to create a test compliance key or put in place a 24 hour blockage for Developers when testing, this information will be used to reconcile the data you have logged via the logging endpoints.

Testing Instructions

  1. Set-up 10 test users via user/create on your test Development API key(s), Mobile and Web (if applicable). Authorize the users for streaming via user/unlimitedStreaming.

  2. Over a 24 hour period conduct streaming for all 10 test users via stream/subscription. For each test user there should be around 10-50 streams.

  3. Log the streams via user/subscription/log .

    • Use a variety of different label content.
    • Ensure you note down the date and times that you start and end the testing.
  4. For the same data that you logged on user/subscription/log please also provide to us the exact same data in a CSV file to the Client Success team via MassiveMusic's support email address [email protected], and similarly, please also provide us with the data you logged on user/unlimitedStreaming in a separate CSV file. The headers we require in the CSV are listed below.

MassiveMusic manages the rest. We compare the data from our log tables to the 2 CSV files you have provided, looking for a 100% match. When this is achieved we will be able to build and begin validating reports with the rights holders.

Reporting Template

The CSV file of logs that you send to MassiveMusic must contain the following headers and data:

Stream Log Template:

Header

Required / Optional

Description

userId

Required

The unique identifier of the user.

country

Required

ISO 2-character code of the country the end user resides in.

trackId

Required

The MassiveMusic ID of the track that was streamed.

releaseId

Required

The MassiveMusic release ID of the release that was delivered to the user. If a track was delivered this needs to correctly identify the release that the track appears on.

formatId

Required

The MassiveMusic ID of the format streamed.

Available Streaming Formats

userAgent

Required

Details of the device model and application version used to play the track.

Values over 256 characters will be truncated.

dateTimePlayed

Required

The date and time when the track was played. Should be in the ISO 8601 format.

totalTimePlayed

Required

The total time the track was streamed in seconds (or 0 if it was only pre-fetched and never played).

playMode

Required

Either “online”, “offline”, or “online-cached”. Indicates if the play was with an active or inactive network connection and if the network connection was active, whether or not it was read from the device cache.

User Log Template:

HeaderRequired / OptionalDescription
userIdRequiredThe unique identifier of the user.
planCodeRequiredPlease contact your Client Success Manager for more detail on how to supply the correct planCode.
statusRequiredThe status of the subscription must be set as active.
currencyRequiredISO 4217 currency code, identifying the currency in which the end user has paid.
recurringFeeRequiredThe amount in cents charged to the subscriber for the current subscription. If a voucher has been used then recurringFee should be 0.
postcodeOptionalThe postcode of the subscriber if applicable.
countryRequiredISO 2-character country code where the subscriber is located.
activatedAtRequiredISO 8601 UTC date-time format. The date and time when the user first activated any type of subscription. ActivatedAt must be now or earlier.
currentPeriodStartDateRequiredISO 8601 UTC date-time format. The date and time when the current subscription started.CurrentPeriodStartDate must be no more than 1 day from now, and the same as or later than activatedAt.
trialEndsAtOptionalISO 8601 UTC date-time format. This is the date and time of when a trial period ends. If you are using a trail plan code, then this value must be populated. Otherwise this parameter must not be supplied. Please contact your Client Success Manager for more detail on how to supply the correct planCode. TrialEndsAt must be later than currentPeriodStartDate and no more than 100 days from currentPeriodStartDate.
expiryDateRequiredISO 8601 UTC date-time format. The date and time when the subscription is due to expire. ExpiryDate must be no more than 1 month from currentPeriodStartDate. If the subscription was a trial, expiryDate must also be the same as or later than trialEndsAt. In the exceptional case that trialEndsAt is more than 1 month from currentPeriodStartDate, expiryDate must be equal to trialEndsAt.

Logging Catalogue Streams

🚧

Before you get started

  • Please ensure you conduct the tests on the Development API key(s).
  • Please note down the time and date (UTC) that you begin the test usage activity, and the same for when you cease the test usage activity.
  • Once your logging activity has been approved, we highly advise and recommend retaining a backup of all your logs on a monthly basis.
  • During the testing window you can only log compliance information.
  • Either need to create a test compliance key or put in place a 24 hour blockage for Developers when testing, this information will be used to reconcile the data you have logged via the logging endpoints.

Testing Instructions

  1. If you set-up external users for your service on our system, set-up 10 test users via user/create on your test Development API key(s), Mobile and Web (if applicable). (Note, if you don’t set-up users on our system you must still provide a User ID value in the stream logs, as we need to identify each user’s activity for compliance and reporting purposes.

  2. Over a 24 hour period conduct streaming for all 10 test users via conduct streaming via stream/catalogue. For each test user there should be around 10-50.

  3. Log the streams via catalogue/log .

    • Use a variety of different label content.
    • Ensure you note down the date and times that you start and end the testing.
    • Ensure you apply a User ID value for each user, whether created on our system or not, and include that User ID value in the stream log.
  4. For the same data that you logged on catalogue/log please also provide to us the exact same data in a CSV file to the Client Success team via MassiveMusic's support email address [email protected]. The headers we require in the CSV are listed below.

MassiveMusic manages the rest. We compare the data from our log tables to the 2 CSV files you have provided, looking for a 100% match. When this is achieved we will be able to build and begin validating reports with the rights holders.

Reporting Template

The CSV file of logs that you send to MassiveMusic must contain the following headers and data:

HeaderRequired / OptionalDescription
userIdRequiredThe unique identifier of the user.
countryRequiredISO 2-character code of the country the end user resides in.
trackIdRequiredThe MassiveMusic ID of the track that was streamed.
releaseIdRequiredThe MassiveMusic ID of the release that was streamed.
formatIdRequiredThe MassiveMusic ID of the format streamed.
dateTimePlayedRequiredThe date and time when the track was played. Should be in the ISO 8601 format.
totalTimePlayedRequiredThe total time the track was streamed in seconds (or 0 if it was only pre-fetched and never played).
endReasonRequiredThe reason the track play was stopped. This is one of three values "naturalEnd", "userSkipped" or "other." "naturalEnd" would be used to indicate when a track has finished playing in its entirety. "userSkipped" would be used to indicate that a user has chosen to skip the currently playing track. "other" is used when the reason the track has been stopped doesn't fit into the previous categories, for example when a user changes radio station.
userAgentRequiredDetails of the device model and application version used to play the track. Values over 256 characters will be truncated.



Logging Download Sales

🚧

Before you get started

  • Please ensure you conduct the tests on the Development API key(s).
  • Please note down the time and date (UTC) that you begin the test usage activity, and the same for when you cease the test usage activity.
  • Once your logging activity has been approved, we highly advise and recommend retaining a backup of all your logs on a monthly basis.
  • During the testing window you can only log compliance information.
  • Either need to create a test compliance key or put in place a 24 hour blockage for Developers when testing, this information will be used to reconcile the data you have logged via the logging endpoints.

Testing Instructions

  1. Set up 10 test users via user/create on your test Development API key(s), Mobile and Web (if applicable).

  2. Over a 24 hour period conduct downloading for all 10 test users via user/deliveritem. For each test user there should be around 10-50 streams.

    • Use a variety of different label content.
    • Ensure you note down the date and times that you start and end the testing..
  3. For the same transactions that you logged on user/deliveritemplease also provide to us the exact same data in a CSV file to the Client Success team via MassiveMusic's support email address [email protected].The headers we require in the CSV are listed below.

MassiveMusic manages the rest. We compare the data from our log tables to the 2 CSV files you have provided, looking for a 100% match. When this is achieved we will be able to build and begin validating reports with the rights holders.

Reporting Template

The CSV file of logs that you send to MassiveMusic must contain the following headers and data:

HeaderRequired / OptionalDescription
userIdRequiredThe unique identifier of the user.
transactionIdRequiredThe transaction ID you provided for the initial transaction when calling the ~user/deliveritem endpoint.
purchaseIdRequiredThe MassiveMusic purchase ID returned in the response from your call to the ~user/deliveritem endpoint.
purchaseStatusRequiredIdentifying whether the data in this row relates to a Purchase or Refund.
purchaseDateTimeRequiredThe date and time (in UTC) of the purchase in ISO 8601 UTC date-time format.
refundDateTimeOptionalIf the Purchase Status identifies a refund then you must provide the refund date and time in ISO 8601 UTC date-time format.
countryRequiredISO 2-character code of the country the end user resides in.
currencyRequiredISO 4217 currency code, identifying the currency in which the end user has paid.
rrpRequiredThe MassiveMusic RRP of the release or track from the purchase.
purchasePriceOptionalIf you are charging your users different prices than the MassiveMusic RRP please include the Purchase Price. This should include fractional units in decimal form where relevant for the currency in question, eg. "7.99", "1.00". The price must not be negative, must not be more than 2 decimal places and must not include any commas (",").
artistIdRequiredThe unique MassiveMusic identifier of the artist.
releaseIdRequiredThe MassiveMusic release ID of the release that was delivered to the user. If a track was delivered this needs to correctly identify the release that the track appears on.
trackIdOptionalIf supplied, this specifies that only the track was delivered. The MassiveMusic track ID of the track that was delivered to the user.
artistNameRequiredThe artist name of the release or track which was purchased.
productNameRequiredThe title of the release or track which was purchased.
licensorNameRequiredThe name of the licensor the product is distributed by.



Logging Preview Clips

🚧

Before you get started

  • Please ensure you conduct the tests on the Development API key(s).
  • Please note down the time and date (UTC) that you begin the test usage activity, and the same for when you cease the test usage activity.
  • Once your logging activity has been approved, we highly advise and recommend retaining a backup of all your logs on a monthly basis.
  • During the testing window you can only log compliance information.
  • Either need to create a test compliance key or put in place a 24 hour blockage for Developers when testing, this information will be used to reconcile the data you have logged via the logging endpoints.

Instructions

  1. Set up 10 test users via user/create on your test Development API key(s), Mobile and Web (if applicable).

  2. Over a 24 hour period conduct conduct a few plays each day on preview.7digital.com/clip using the 10 test users, For each test user there should be around 10-50 streams.

    • Use a variety of different label content.
    • Ensure you note down the date and times that you begin the testing and end the testing.
  3. For the same plays that you logged on preview/log please also provide to us the exact same data in a CSV file to the Client Success team via MassiveMusic's support email address [email protected]. The reporting template is outlined below.

MassiveMusic manages the rest. We compare the data from our log tables to the 2 CSV files you have provided, looking for a 100% match. When this is achieved we will be able to build and begin validating reports with the rights holders.

Reporting Template

The CSV file of logs that you send to MassiveMusic must contain the following headers and data:

HeaderRequired / OptionalDescription
countryRequiredISO 2-character country code where the subscriber is located.
trackIdRequiredIf supplied, this specifies that only the track was delivered. The MassiveMusic track ID of the track that was delivered to the user.
dateTimePlayedRequiredThe date and time when the track was played. Should be in the ISO 8601 format.
totalTimePlayedRequiredThe total time the track was streamed in seconds (or 0 if it was only pre-fetched and never played).
userIdRequiredThe unique identifier of the user.
playModeRequiredEither “online”, “offline”, or “online-cached”. Indicates if the play was with an active or inactive network connection and if the network connection was active, whether or not it was read from the device cache.