googleads / googleads/data-manager-php

Inconsistent docs/validation for Event.event_source in Google Ads offline conversion migration

Open
#2 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
PHP
Stars
1
Forks
1
Avg merge
2d 8h
Merged PRs (30d)
5

Description

Hi,

I noticed an inconsistency while migrating Google Ads offline conversion uploads to the Data Manager API.

In the Google Ads offline conversion upgrade field mappings:

https://developers.google.com/data-manager/api/devguides/events/google-ads/offline/upgrade/field-mappings#conversion-fields

the table says:

ClickConversion.conversion_environment -> No equivalent
No equivalent -> Event.event_source
This suggests that conversion_environment should not be mapped directly to event_source, and that event_source is a separate Data Manager field.

However, when calling IngestEvents / events:ingest without event_source, the API rejects the request with:

{
"field": "events.events[0].event_source",
"description": "Required field is missing.",
"reason": "REQUIRED_FIELD_MISSING"
}

This makes event_source effectively required for Google Ads event ingestion, even though it is shown as having no Google Ads API equivalent in the migration table, and the generated PHP protobuf class documents it as optional.

Could the documentation clarify the recommended migration behavior?

Specifically:

  1. Is event_source required for Google Ads offline conversion event ingestion?
  2. If yes, should advertisers set it explicitly based on their own source context, e.g. WEB for website purchases?
  3. Should conversion_environment = WEB|APP be intentionally mapped to event_source = WEB|APP, despite the mapping table saying conversion_environment has no equivalent?
  4. Should the API reference/protobuf field behavior mark event_source as required for this use case?

Current workaround:
We keep conversion_environment for Google Ads API uploads and add a separate explicit Data Manager field:
{
"conversion_environment": "WEB",
"event_source": "WEB"
}
Then the Data Manager adapter maps only event_source to Event.event_source, avoiding an undocumented automatic mapping from conversion_environment.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the Google Ads offline conversion field-mappings table and the IngestEvents/events:ingest behavior described in the issue, then inspect the generated PHP protobuf field documentation for Event.event_source. Confirm the required behavior and recommended relationship to conversion_environment, and update the migration documentation and API reference so the expected request fields and mapping are explicit.

Written by the indexing model from the issue text.

Assessment

Tech stack
php
Domain
api, documentation
Issue type
Documentation
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.