from facebookads.objects import ProductAudience

product_audience = ProductAudience(parent_id=ad_account_id)
product_audience.update({
    ProductAudience.Field.name: 'Product Audience',
    ProductAudience.Field.product_set_id: product_set_id,
    ProductAudience.Field.inclusions: [
        {
            'retention_seconds': 86400,
            'rule': {
                'event': {'eq': 'AddToCart'},
            },
        },
        {
            'retention_seconds': 72000,
            'rule': {
                'event': {'eq': 'ViewContent'},
            },
        },
    ],
    ProductAudience.Field.exclusions: [
        {
            'retention_seconds': 172800,
            'rule': {
                'event': {'eq': 'Purchase'},
            },
        },
    ],
})
product_audience.remote_create()
# _DOC close [PRODUCTAUDIENCE_CREATE_NO_PURCHASE]
product_audience = ProductAudience(parent_id=ad_account_id)
product_audience.update({
    ProductAudience.Field.name: 'Product Audience',
    ProductAudience.Field.product_set_id: product_set_id,
    ProductAudience.Field.inclusions: [
        {
            'retention_seconds': 86400,
            'rule': {
                'and': [
                    {
                        'event': {'eq': 'AddToCart'},
                    },
                    {
                        'userAgent': {'i_contains': 'iPhone'},
                    },
                ],
            },
        },
    ],
    ProductAudience.Field.exclusions: [
        {
            'retention_seconds': 172800,
            'rule': {
                'event': {'eq': 'Purchase'},
            },
        },
    ],
})
product_audience.remote_create()
# _DOC close [PRODUCTAUDIENCE_CREATE_IPHONE_VIEW_NO_PURCHASE]