
Start with the participants’ checked post links and available owner reports. You can build these tables in a spreadsheet. A public data collection tool can supply public observations, but you must check the identities, account links, and reporting scope yourself.
Choose what each total means
A reporting unit is the thing that one row or total represents. This method uses three reporting units:
| Reporting unit | What it represents | What to count |
|---|---|---|
| Unique campaign post | One checked content item | Each post once |
| Account participation | One confirmed account-to-post link | Each confirmed link once |
| Account owner result | A result in an account’s own report | The result within its stated scope and dates |
A shared post can belong to the first table once and have several links in the second table. These are different totals. Neither total is a count of people.
Instagram Insights means the statistics available through an account’s own reporting access. Keep those records in a separate view. Do not assume that all collaborators can access or export identical reports.
The supplied public questions show why this distinction matters. One asks about collaboration Insights. Another asks whether a post counts in an account’s analytics when that account did not publish it first. These are reader questions, not evidence of a current access rule. See the collaboration Insights question and the collaboration analytics question.
Answer access questions in the actual account context. For campaign reporting, first establish which post each report describes and what its numbers measure.
Build the campaign post and account tables
A campaign ledger is a table that records the campaign’s checked posts. Build it from a roster, which is your list of expected posts and participating accounts.
- Collect the post links supplied by the participants.
- Keep each original link and its source.
- Check which links refer to the same post.
- Record the available evidence that connects each account to that post.
- Keep uncertain links in a review table.
Do not identify a collaboration from a similar display name or matching content on two profile grids. Similar appearance alone does not establish a shared post identity.
Use a stable post identifier when it is available. The documented public output calls this field `postId`. Keep the checked post URL in `postUrl` too. If an identifier is missing, retain the source link and mark the identity for review. Do not invent a platform identifier or merge uncertain rows.
Create the following two tables. Their names and review columns are proposed spreadsheet fields. The Actor does not build these tables for you.
| Table | Fields to save | Row rule |
|---|---|---|
| Posts | `postId`, `postUrl`, original supplied links, campaign reference, identity evidence reference, review state | One row per checked unique post |
| Participation | `postId`, confirmed account ID, account handle, role when known, evidence reference, review state | One row per confirmed account-to-post link |
| Unresolved relations | Supplied post link, claimed account, available evidence, unresolved question | Keep each uncertain relation outside confirmed totals |
An evidence reference points to the source that supports a decision. It can point to a saved public observation or an available collaboration confirmation. Keep enough detail for another analyst to check the relation.
An account handle is its public username. Use a checked account ID where available, rather than a display name alone. If your creator roster has duplicate profile records, use the separate Instagram profile identity guide. Resolve that account identity issue before you use the roster here.
Do not remove an unresolved relation to make the tables agree. Show the gap. A confirmed post can remain in Posts while one claimed account relation waits for evidence.
Use public collection for a known post
An Actor is a hosted program that collects data. The Instagram Metrics Scraper documents public post collection. Its checked public contract, build 1.0.35 on October 25, 2026, accepts direct content URLs with `mode` set to `contentUrls`.
This is a documented fit for collecting public observations from known campaign posts. It is not proof that a run succeeded. No run was made for this guide. The checked contract is available in the public build record.
Use the supplied small input for a first check:
{
"maxItems": 1,
"mode": "contentUrls",
"startUrls": ["https://www.instagram.com/reel/DIwcCZgxVZP/"]
}- Replace the sample URL with one known public campaign post or Reel URL. A Reel is an Instagram video format.
- Keep `mode` set to `contentUrls`. This tells the Actor to use direct content inputs.
- Keep `maxItems` at `1` for this one-URL check. This field sets an optional total row limit.
- Run the Actor only when you are ready to collect the observation.
- Compare any returned row with your intended post before using its metrics.
Replace the sample rather than adding your URL beside it. With a limit of one row, a larger input list does not establish coverage of every supplied post. For later collection, choose a limit that fits your intended list and check the output against that list.
The Actor also documents profile discovery inputs. This method uses known content URLs. It does not establish a complete account archive.
A Task is a saved Actor input preset. The public Instagram Brand Campaign Metrics Task was checked for public page presence only. Its saved settings were not inspected through an authenticated account, and it was not run. Check its inputs before use.
Save observations without turning them into extra posts
An observation is a saved reading from a source at a known time. A snapshot is that reading at that time. Several observations can describe one post without creating several unique posts.
Keep public observations in their own table. Save the documented fields below when available.
| Fields | Why to keep them |
|---|---|
| `inputUrl`, `postId`, `postUrl` | Match the collected row to the intended post |
| `profileId`, `profileHandle` | Retain the returned profile context |
| `publishedAt` | Retain the publication time when available |
| `scrapedAt` | Retain the time of the collected observation |
| `likes`, `comments`, `views` | Retain each public metric separately |
| `postMetricStatus` | Retain each metric’s availability and precision |
| `collaborationCount`, `collaborationProfiles` | Retain exposed collaboration context |
| `status`, `statusReason` | Retain the row result and any reported problem |
A metric is a measured value, such as likes. Precision describes whether the value is exact, rounded, unavailable, or of unknown exactness. The documented `postMetricStatus` includes the metric, value, status, precision, and raw value. Keep that information with the number.
The documented `collaborationProfiles` entries include an ID, handle, URL, and owner or collaborator role. Use available entries as public evidence. Check them against your roster. Missing collaboration context does not prove that no collaborator exists.
Keep the returned profile context separate from your full Participation table. Do not treat one returned profile as proof of every participating account.
A missing value is not zero. If `likes` is missing or unavailable, leave the count unknown. If a source reports zero with suitable status and precision, preserve that zero. Do not replace missing, failed, or unreturned data with zero.
Check each supplied URL against the returned rows. Keep any target without a usable result in a review list. Record whether its identity, metric, or collaboration relation remains unresolved.
Select one public observation per post for the total
A join connects rows in different tables through a shared field. Here, `postId` connects Posts, Participation, and public observations. This connection can repeat a post’s metric beside several account rows. Those repeated cells are not new post results.
For the campaign public total, select one suitable observation per post and metric. Write the selection rule before you add the values. A suitable set needs a common metric, known source scope, and observation times that fit the report.
- Keep every source observation with its time and source reference.
- Check whether two rows repeat the same shared post counter.
- Choose one suitable observation for that post’s campaign total.
- Record the reason for the choice.
- Keep excluded and conflicting readings available for review.
Two account exports can repeat the same post-level counter. Preserve both export observations, but do not add both copies to the campaign post total. First check that they describe the same post and the same metric.
If two readings differ, inspect their times, sources, and precision. A later reading may describe a different moment. If you choose the later reading, label the report accordingly. Do not call readings taken at different times one simultaneous snapshot.
Do not average conflicting readings to create an invented exact count. If you cannot select a suitable reading, mark that post’s metric unresolved. If you report a subtotal from the remaining posts, state how many posts it covers and which posts are missing.
This guide removes repeated shared post counts. A change over a month requires a different check. Use the old and new Instagram post reporting guide when you need saved counts at period boundaries. A current observation cannot restore an earlier missing count.
Keep account owner reports in a separate view
Public post metrics and account owner results answer different questions. A public like count describes the observed post counter. It does not divide that result among collaborators.
For every owner report you receive, save the following information:
| Field | What to record |
|---|---|
| Account | The checked account identity |
| Source | The export or report reference |
| Metric | The metric name and definition supplied by the report |
| Scope | Whether the result describes a post, an account, or another stated unit |
| Dates | The reporting interval and export or observation time |
| Content identity | The checked post link or ID, when supplied |
| Access limit | Any gap in the records available to you |
Keep the report’s metric definition. Do not rename an account result as a public post count merely because the numbers match.
Reach concerns the audience reached within a report’s stated scope. Do not infer collaborator-specific reach from a shared public counter. Do not assume that audience results from different accounts contain no overlapping people. Adding account reach values cannot establish a unique combined audience without evidence about that overlap.
The checked Actor dataset has no private reach, saves, shares, or historical boundary count field. Its public collaboration fields do not promise owner Insights access. These limits come from the checked public contract.
If an owner report is unavailable, state that gap. Do not estimate it by dividing the public counter equally among accounts.
Worked example: three posts and four account links
Original fiction. All identities and readings below are invented. These rows show the reporting method. They are not Actor output or real campaign results.
Two accounts, A and B, share P1. Account A also participates in P2. Account B also participates in P3. Assume the four relations have been confirmed for this example.
| Account | Post | Participation relation |
|---|---|---|
| A | P1 | Shared post |
| B | P1 | Shared post |
| A | P2 | Confirmed participation |
| B | P3 | Confirmed participation |
There are four account-to-post participation links. There are three unique posts: P1, P2, and P3.
The example supplies these compatible public like readings:
| Unique post | Selected observed likes | Times included in the post total |
|---|---|---|
| P1 | 100 | Once |
| P2 | 20 | Once |
| P3 | 30 | Once |
Post-level likes = 100 + 20 + 30 = 150 observed post likes.
If you repeat P1 for each account, the calculation becomes 100 + 100 + 20 + 30 = 250 likes. That adds the same 100-like post counter twice. The extra 100 comes from repeating P1, not from another observed post result.
Report the example as follows:
- Three unique campaign posts.
- Four confirmed account-to-post participation links.
- 150 observed post likes across the three matched readings.
The account participation view can show that A and B both link to P1. It must not describe the shared 100 likes as 100 likes separately earned by A and another 100 separately earned by B.
The fiction does not supply owner reach reports or evidence about audience overlap. It therefore cannot establish either account’s reach contribution or the campaign’s unique combined audience.
Check the ledger before you deliver it
Reconciliation means checking that the tables agree under their stated rules. The totals do not all need to match. Three posts and four participation links can be correct at the same time.
- Check that each confirmed unique post has one Posts row.
- Check that every confirmed Participation row points to a checked post and account.
- Check the evidence reference for every account-to-post relation.
- Check that each public metric total uses at most one selected reading per post.
- Check metric names, observation times, source scope, and precision.
- Keep missing values, unresolved identities, and conflicting readings visible.
- Keep owner reports separate with their exact scope and dates.
- State roster coverage and any missing posts or account records.
Accept the report when another analyst can trace each included value and relation to evidence. If a check fails, hold the affected total or label its limited coverage. Do not force agreement by deleting source rows, assigning zero, or splitting a shared count.
Sources & further reading
- Instagram Metrics Scraper public product and README evidence — retrieved October 25, 2026; documented public collection scope, no run verified
- Instagram Metrics Scraper default build 1.0.35 — checked October 25, 2026; static input and output contract, not a runtime result
- Instagram Brand Campaign Metrics Task — checked October 25, 2026; public page presence only, saved settings not inspected and Task not run
- Collaboration Insights on Instagram question — published April 7, 2026, retrieved October 25, 2026; one public reader question, no access-policy proof
- Collaboration post analytics question — published August 1, 2023, retrieved October 25, 2026; one public reader question, no access-policy proof
By Chronometrica · Updated
Back to top ↑
