Creating an Analytics Integration for Non-Mobile Campaigns: Guide for Partners

Singular creates analytics integrations (also known as data connectors) when we have a mutual customer that uses you as an ad network, ad agency, or similar service.

The integration is designed to pull the customer's aggregated marketing campaign data from you every day in order to combine this data with attribution stats pulled from Singular's MMP attribution solution or a third-party attribution tracker (such as AppsFlyer, Adjust, Branch, or Kochava) used by the advertiser. This allows us to present up-to-date ROAS data in our analytics reports. The data is presented with a high level of granularity: data breakdowns by app, campaign, audience, targeted country, publisher app, creative, and more.

We build a data connector for advertisers to enable through retrieving data from you in any of the following methods:

  • API
  • s3
  • GDrive report file
  • Email Report

Learn more about some of our major integrations.


What data does Singular need for non-mobile cost integrations?
  • App Name (a.k.a., Brand Name): an App Name is a title/container that contains all of its "App Sites". The same brand can have a website domain, iOS, and Android apps for the same brand. The website domain, iOS, and Android apps would be "App Sites" all living under the global brand ("App Name"). Singular cost integrations (data connectors) need the equivalent brand name within Singular. This allows us to map data to the different brands or apps you are promoting.
  • Campaign Name and ID: a collection of audiences / targeting directives and creatives that share the same marketing objective and draw from the same budget.
  • Sub Campaign Name and ID: an additional grouping of ads that some networks have under the campaign level. Some networks may call it "flight", "line", "ad group" or "ad set".
  • Cost: the advertising spend for a particular network/channel partner.
  • Original Currency: the original currency in which cost data is provided by the network/channel partner. This should be standardized to the three-letter ISO 4217 currency code, e.g., "USD", "EUR", "INR". (This is preferred, but not required.)

See our standardized dimensions here.

Why does Singular not need "OS" or "Platform" reported for cost integrations?

Many advertisers run cross-platform campaigns and the "OS" and "Platform" can be different from where the impression or click occurred to where the user converted. Reporting on these campaigns by the "OS" or "Platform" that is provided by the media source will not align with the end attributed platform. In these cases, Singular cannot report ROI at the "Platform" reporting dimension since the two value do not match. 

What should I do if I need to report on "OS" or "Platform" in order to pull data into my Internal BI?

You should include the campaign type, such as "CTV" in your campaign name. Within Singular you can then setup a Custom Reporting Dimension that would show the campaign type. 

Custom Reporting Dimensions are available in aggregated reporting via the Reporting API and also in the Aggregated ETL data. 


We use the following terms to describe integration types and reporting dimensions:

Type/ Dimension Description
API The partner has data regularly updating on an endpoint that Singular can retrieve data from using an API key and token you have permissioned.
s3 The partner provides a .csv file delivered to an Amazon s3 bucket (that they host). Singular can support integration to retrieve data from the s3 bucket either using Access and Secret keys provided by the partner, or via IAM permissions. (Singular does not support integrating with s3 buckets using KMS permissions at this time.)
Google Drive file

The partner updates a shared Google Sheet file. The Google Sheet file key is required to be entered into the Data Connector setup in order to initiate pulling data from the file. See our sample report containing our standard report headers.

Note: Your Google Sheet key can be found in your published Google sheets URL. Select the string of data found between the slashes after spreadsheets/d in your Google Sheet URL. 

Mail report

The partner schedules automated delivery of a report to an email domain Singular provides your company. Files larger than 25MB cannot be processed by the mail service. This limitation can be exceeded when you have large data volumes and are passing granular data to Singular. 


The platform of the marketed product. Only certain values are accepted, if unknown values are provided, they will be reported as "Unknown" within Singular's platform dimension.

Below are the values that are currently recognized:

Amazon Chrome OS Linux PlayStation Windows Phone
Android Desktop Mac OS Symbian Xbox
Android Phone iOS MIDP TV  
Android Tablet iPad Mixed Unknown  
Blackberry iPhone Other Web  
Canvas iPod Out of Home Windows  

Best Practices

  • Email reports are more error-prone compared to app-based dashboards or API data due to the higher level of human intervention. Talk with your partner about providing API access or s3 bucket delivery to the data instead.
  • Your partner should update the reports daily, before 07:00 AM UTC if possible.
  • Campaign names should be as descriptive as possible, including brand/app names, platform (even if the "platform" isn't one Singular can report on - a great example is "CTV"), country, etc., when applicable.
  • The reports should be cumulative per month - i.e., each report should contain all the days prior to it for a given month.
  • Have reports sent to both Singular and yourself so you can easily tell if Singular is receiving the reports.
  • Make sure that your partner provides the reports with a consistent format/header and file naming conventions (time/date stamps) to avoid any processing issues. Date formatting changes can either break data ingestion or result in incorrect cost reporting for that partner.

Further Setup Instructions

Setting up s3 bucket

Setting up Google Docs or Mail Reports