Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions librarian.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ version: v0.15.1-0.20260528141105-567c9bf1faa7
repo: googleapis/google-cloud-python
sources:
googleapis:
commit: 43731d5d22f8e3526ba7aa708da9d5de26043d0f
sha256: d146cfa257ffa00fc298ec7b6f73f9c7395a5a5ba050dcc553cfd78d6705bc3b
commit: dae2a496666e372c1ebf56ceb54fe7f467a2c10e
sha256: 867490e3ce7818a2011475a888ce5d77c68cb7a13764f47d9aec8cf3038320e0
default:
output: packages
tag_format: '{name}-v{version}'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,8 @@
from google.ads.datamanager_v1.types.age_range import AgeRange
from google.ads.datamanager_v1.types.audience import (
AudienceMember,
CompositeData,
IpData,
MobileData,
PairData,
PpidData,
Expand All @@ -70,6 +72,7 @@
ProductAccount,
)
from google.ads.datamanager_v1.types.device_info import DeviceInfo
from google.ads.datamanager_v1.types.encrypted_user_id import EncryptedUserId
from google.ads.datamanager_v1.types.encryption_info import (
AwsWrappedKeyInfo,
EncryptionInfo,
Expand Down Expand Up @@ -212,6 +215,8 @@
"UserListServiceAsyncClient",
"AgeRange",
"AudienceMember",
"CompositeData",
"IpData",
"MobileData",
"PairData",
"PpidData",
Expand All @@ -225,6 +230,7 @@
"ProductAccount",
"Product",
"DeviceInfo",
"EncryptedUserId",
"AwsWrappedKeyInfo",
"EncryptionInfo",
"GcpWrappedKeyInfo",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,11 +48,20 @@
UserListServiceClient,
)
from .types.age_range import AgeRange
from .types.audience import AudienceMember, MobileData, PairData, PpidData, UserIdData
from .types.audience import (
AudienceMember,
CompositeData,
IpData,
MobileData,
PairData,
PpidData,
UserIdData,
)
from .types.cart_data import CartData, Item, ItemCustomVariable
from .types.consent import Consent, ConsentStatus
from .types.destination import Destination, Product, ProductAccount
from .types.device_info import DeviceInfo
from .types.encrypted_user_id import EncryptedUserId
from .types.encryption_info import AwsWrappedKeyInfo, EncryptionInfo, GcpWrappedKeyInfo
from .types.error import ErrorReason
from .types.event import (
Expand Down Expand Up @@ -254,6 +263,7 @@ def _get_version(dependency_name):
"AwsWrappedKeyInfo",
"Baseline",
"CartData",
"CompositeData",
"Consent",
"ConsentStatus",
"ContactIdInfo",
Expand All @@ -270,6 +280,7 @@ def _get_version(dependency_name):
"Destination",
"DeviceInfo",
"Encoding",
"EncryptedUserId",
"EncryptionInfo",
"ErrorCount",
"ErrorInfo",
Expand All @@ -290,6 +301,7 @@ def _get_version(dependency_name):
"IngestEventsResponse",
"IngestedUserListInfo",
"IngestionServiceClient",
"IpData",
"Item",
"ItemCustomVariable",
"ItemParameter",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@
)
from .audience import (
AudienceMember,
CompositeData,
IpData,
MobileData,
PairData,
PpidData,
Expand All @@ -40,6 +42,9 @@
from .device_info import (
DeviceInfo,
)
from .encrypted_user_id import (
EncryptedUserId,
)
from .encryption_info import (
AwsWrappedKeyInfo,
EncryptionInfo,
Expand Down Expand Up @@ -180,6 +185,8 @@
__all__ = (
"AgeRange",
"AudienceMember",
"CompositeData",
"IpData",
"MobileData",
"PairData",
"PpidData",
Expand All @@ -193,6 +200,7 @@
"ProductAccount",
"Product",
"DeviceInfo",
"EncryptedUserId",
"AwsWrappedKeyInfo",
"EncryptionInfo",
"GcpWrappedKeyInfo",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

from typing import MutableMapping, MutableSequence

import google.protobuf.timestamp_pb2 as timestamp_pb2 # type: ignore
import proto # type: ignore

from google.ads.datamanager_v1.types import consent as gad_consent
Expand All @@ -30,6 +31,8 @@
"MobileData",
"UserIdData",
"PpidData",
"CompositeData",
"IpData",
},
)

Expand Down Expand Up @@ -74,6 +77,10 @@ class AudienceMember(proto.Message):
identifiers.
This feature is only available to data partners.

This field is a member of `oneof`_ ``data``.
composite_data (google.ads.datamanager_v1.types.CompositeData):
Group of multiple identifier types.

This field is a member of `oneof`_ ``data``.
consent (google.ads.datamanager_v1.types.Consent):
Optional. The consent setting for the user.
Expand Down Expand Up @@ -113,6 +120,12 @@ class AudienceMember(proto.Message):
oneof="data",
message="PpidData",
)
composite_data: "CompositeData" = proto.Field(
proto.MESSAGE,
number=8,
oneof="data",
message="CompositeData",
)
consent: gad_consent.Consent = proto.Field(
proto.MESSAGE,
number=3,
Expand Down Expand Up @@ -194,4 +207,63 @@ class PpidData(proto.Message):
)


class CompositeData(proto.Message):
r"""Composite data holding identifiers and associated data for a user.
At least one of ``user_data`` or ``ip_data`` is required.

Attributes:
user_data (google.ads.datamanager_v1.types.UserData):
Optional. User-provided data that identifies
the user.
ip_data (MutableSequence[google.ads.datamanager_v1.types.IpData]):
Optional. IP address data representing
customer interaction used to build the audience.
"""

user_data: gad_user_data.UserData = proto.Field(
proto.MESSAGE,
number=1,
message=gad_user_data.UserData,
)
ip_data: MutableSequence["IpData"] = proto.RepeatedField(
proto.MESSAGE,
number=2,
message="IpData",
)


class IpData(proto.Message):
r"""IP address information for a user. We recommend including
observe_start_time and observe_end_time to help improve Customer
Match match rates.

Attributes:
ip_address (str):
Required. IP address captured at the time of
customer interaction. Accepts standard string
formats for both IPv4 and IPv6.
observe_start_time (google.protobuf.timestamp_pb2.Timestamp):
Optional. First recorded interaction time
from this IP address in a session.
observe_end_time (google.protobuf.timestamp_pb2.Timestamp):
Optional. Last recorded interaction time from
this IP address in a session.
"""

ip_address: str = proto.Field(
proto.STRING,
number=1,
)
observe_start_time: timestamp_pb2.Timestamp = proto.Field(
proto.MESSAGE,
number=2,
message=timestamp_pb2.Timestamp,
)
observe_end_time: timestamp_pb2.Timestamp = proto.Field(
proto.MESSAGE,
number=3,
message=timestamp_pb2.Timestamp,
)


__all__ = tuple(sorted(__protobuf__.manifest))
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,8 @@ class AccountType(proto.Enum):
Google Analytics.
GOOGLE_AD_MANAGER_AUDIENCE_LINK (6):
Google Ad Manager audience link.
FLOODLIGHT_CONFIG (7):
Floodlight configuration.
"""

ACCOUNT_TYPE_UNSPECIFIED = 0
Expand All @@ -165,6 +167,7 @@ class AccountType(proto.Enum):
DATA_PARTNER = 4
GOOGLE_ANALYTICS_PROPERTY = 5
GOOGLE_AD_MANAGER_AUDIENCE_LINK = 6
FLOODLIGHT_CONFIG = 7

product: "Product" = proto.Field(
proto.ENUM,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
# -*- coding: utf-8 -*-
# Copyright 2026 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
from __future__ import annotations

from typing import MutableMapping, MutableSequence

import proto # type: ignore

__protobuf__ = proto.module(
package="google.ads.datamanager.v1",
manifest={
"EncryptedUserId",
},
)


class EncryptedUserId(proto.Message):
r"""A user identifier issued to be used for attribution. All
fields are required if this is used.

Attributes:
encrypted_id (str):
Required. The alphanumeric encrypted id.
entity_type (google.ads.datamanager_v1.types.EncryptedUserId.EncryptionEntityType):
Required. The encryption entity type. This
should match the encryption configuration for ad
serving or Data Transfer.
entity_id (int):
Required. The encryption entity ID. This
should match the encryption configuration for ad
serving or Data Transfer.
source (google.ads.datamanager_v1.types.EncryptedUserId.EncryptionSource):
Required. Describes whether the encrypted
cookie was received from ad serving (the %m
macro) or from Data Transfer.
"""

class EncryptionEntityType(proto.Enum):
r"""The encryption entity type.

Values:
ENCRYPTION_ENTITY_TYPE_UNSPECIFIED (0):
Unspecified encryption entity type.
CAMPAIGN_MANAGER_ACCOUNT (1):
Campaign Manager 360 account.
CAMPAIGN_MANAGER_ADVERTISER (2):
Campaign Manager 360 advertiser.
DISPLAY_VIDEO_PARTNER (3):
Display & Video 360 partner.
DISPLAY_VIDEO_ADVERTISER (4):
Display & Video 360 advertiser.
GOOGLE_ADS_CUSTOMER (5):
Google Ads customer.
GOOGLE_AD_MANAGER_NETWORK_CODE (6):
Google Ad Manager network code.
"""

ENCRYPTION_ENTITY_TYPE_UNSPECIFIED = 0
CAMPAIGN_MANAGER_ACCOUNT = 1
CAMPAIGN_MANAGER_ADVERTISER = 2
DISPLAY_VIDEO_PARTNER = 3
DISPLAY_VIDEO_ADVERTISER = 4
GOOGLE_ADS_CUSTOMER = 5
GOOGLE_AD_MANAGER_NETWORK_CODE = 6

class EncryptionSource(proto.Enum):
r"""The encryption source.

Values:
ENCRYPTION_SOURCE_UNSPECIFIED (0):
Unspecified encryption source.
AD_SERVING (1):
Ad serving encryption source.
DATA_TRANSFER (2):
Data transfer encryption source.
"""

ENCRYPTION_SOURCE_UNSPECIFIED = 0
AD_SERVING = 1
DATA_TRANSFER = 2

encrypted_id: str = proto.Field(
proto.STRING,
number=1,
)
entity_type: EncryptionEntityType = proto.Field(
proto.ENUM,
number=2,
enum=EncryptionEntityType,
)
entity_id: int = proto.Field(
proto.INT64,
number=3,
)
source: EncryptionSource = proto.Field(
proto.ENUM,
number=4,
enum=EncryptionSource,
)


__all__ = tuple(sorted(__protobuf__.manifest))
Loading
Loading