Пример #1
0
def CreateCustomAudience(name, description=None, f=None, datatype='email'):
    audience = CustomAudience(parent_id=my_account.get_id_assured())
    audience.update({CustomAudience.Field.name: name})
    if description:
            audience.update({CustomAudience.Field.description: description})
    audience.remote_create()
    print('Created custom audience id ' + audience[CustomAudience.Field.id])
    if f and datatype:
        LoadCustomAudience(audience, f, datatype)
def CreateCustomAudience(name, description=None, f=None, datatype='email'):
    audience = CustomAudience(parent_id=my_account.get_id_assured())
    audience.update({CustomAudience.Field.name: name})
    if description:
            audience.update({CustomAudience.Field.description: description})
    audience.remote_create()
    print('Created custom audience id ' + audience[CustomAudience.Field.id])
    if f and datatype:
        LoadCustomAudience(audience, f, datatype)
def create_purchase_audience_data(account_id, pixel_id):
  audience_values = [('MAU',30),('WAU',7),('DAU',1)]
  for value in audience_values:
    audience = CustomAudience(parent_id='act_'+str(account_id))
    audience[CustomAudience.Field.name] = value[0]
    audience[CustomAudience.Field.subtype] = CustomAudience.Subtype.website
    audience[CustomAudience.Field.retention_days] = value[1]
    audience[CustomAudience.Field.rule] = {"and":[{"event":{"eq":"Purchase"}}]}
    audience[CustomAudience.Field.pixel_id] = pixel_id
    audience.remote_create()
Пример #4
0
def create_custom_audience():
    audience = CustomAudience(parent_id=test_config.account_id)
    audience[CustomAudience.Field.subtype] = CustomAudience.Subtype.custom
    audience[CustomAudience.Field.name] = unique_name('Test Audience')
    audience[CustomAudience.Field.description] = 'Created for docsmith example'
    audience.remote_create()

    atexit.register(remote_delete, audience)

    return audience
Пример #5
0
def create_custom_audience():
    audience = CustomAudience(parent_id=test_config.account_id)
    audience[CustomAudience.Field.subtype] = CustomAudience.Subtype.custom
    audience[CustomAudience.Field.name] = unique_name('Test Audience')
    audience[CustomAudience.Field.description] = 'Created for docsmith example'
    audience.remote_create()

    atexit.register(remote_delete, audience)

    return audience
Пример #6
0
def CreateCustomAudience(ad_account, name, description=None, f=None, datatype='email'):
    audience = CustomAudience(parent_id=ad_account.get_id_assured())
    audience.update({
        CustomAudience.Field.name: name,
        CustomAudience.Field.subtype: CustomAudience.Subtype.custom,
    })

    if description:
        audience.update({CustomAudience.Field.description: description})
    audience.remote_create()
    print('Created custom audience id ' + audience[CustomAudience.Field.id])
    if f and datatype:
        return LoadCustomAudience(audience, f, datatype)
    return "No data was uploaded to audience. Only created custom audience id ' + audience[CustomAudience.Field.id]"
    def create_audience(self, name, desc=None):
        """ This creates an audience object.
        
        :params name: str, name of audience
        :params desc: str, description of audience
        """
        if name in [audience['name'] for audience in self.audiences]:
            raise ValueError(
                'Attempted to add audience. Audience with same name exists.')

        audience = CustomAudience(parent_id=self._account)
        audience[CustomAudience.Field.subtype] = CustomAudience.Subtype.custom
        audience[CustomAudience.Field.name] = '{}'.format(name)

        if desc:
            audience[CustomAudience.Field.description] = desc
        audience.remote_create()
Пример #8
0
 def create_audience(
     self,
     accountid,
     app_id,
     name,
     retention_days,
     event,
     period,
     greater_than=None,
     less_than=None,
 ):
     """
     Creates a new custom audience and returns the id. The custom audience
     is created based on the cumulative values of the events (add to cart
     or purchase) during the selected period, provided that app is logging
     the selected app event and passing the right value with them.
     """
     audience = CustomAudience(parent_id=accountid)
     technique = {
         'technique_name': 'absolute',
     }
     if greater_than is not None:
         technique['lower_bound'] = greater_than
     if less_than is not None:
         technique['upper_bound'] = less_than
     rule = {
         '_application': app_id,
         '_eventName': event,
         '_cumulativeRule': {
             'metric': 'amount',
             'period': period,
             'technique': technique,
         },
     }
     audience.update({
         CustomAudience.Field.name: name,
         CustomAudience.Field.subtype: CustomAudience.Subtype.app,
         CustomAudience.Field.retention_days: retention_days,
         CustomAudience.Field.rule: json.dumps(rule),
     })
     audience.remote_create()
     caid = audience[CustomAudience.Field.id]
     return caid
    def create_lals(
        self,
        account_id,
        seed_id,
        base_name,
        countries,
        ratios,
    ):
        """
        Function that creates the lookalike audiences
        Params:
        * `account_id` is your Facebook AdAccount id
        * `seed_id` is the source custom audience
        * `base_name` the lookalike audiences will have names in the format of
          `[base_name] [COUNTRY_CODE] [RATIO]`
        * `countries` array of country codes
        * `ratios` array of integers stating the lookalike ratio, from 1 to 10
           currency is USD, dailybudget=1000 says your budget is 1000 USD
        """
        lal_created = []

        for country, ratio in itertools.product(countries, ratios):
            # Create the lookalike audience
            lookalike = CustomAudience(parent_id=account_id)
            lookalike[LookalikeAudience.Field.name] = "{0} {1} {2}".format(
                base_name,
                country,
                ratio,
            )
            lookalike[LookalikeAudience.Field.origin_audience_id] = seed_id
            lookalike[LookalikeAudience.Field.lookalike_spec] = {
                LookalikeAudience.Field.LookalikeSpec.ratio: ratio / 100.0,
                LookalikeAudience.Field.LookalikeSpec.country: country,
            }
            lookalike[CustomAudience.Field.subtype] = \
                CustomAudience.Subtype.lookalike
            lookalike.remote_create()
            lal_created.append(lookalike)
        return lal_created
    def create_tiered_lookalikes(
        self,
        account_id,
        name,
        seed_id,
        tiers,
        country
    ):
        """
        Take a seed custom audiences ID and create tiered lookalike audiences
        """
        tiered_audiences = []
        for tier in range(1, tiers + 1):
            lookalike = CustomAudience(parent_id=account_id)
            lookalike[LookalikeAudience.Field.name] = \
                '{0} LAL {1}'.format(name, tier)
            lookalike[LookalikeAudience.Field.origin_audience_id] = seed_id

            lal_spec = {
                LookalikeAudience.Field.LookalikeSpec.ratio: tier / 100.0,
                LookalikeAudience.Field.LookalikeSpec.country: country,
            }
            if (tier > 1):
                lal_spec[
                    # LookalikeAudience.Field.LookalikeSpec.starting_ratio
                    'starting_ratio'
                ] = (tier - 1) / 100.0

            lookalike[LookalikeAudience.Field.lookalike_spec] = lal_spec
            lookalike[CustomAudience.Field.subtype] = \
                CustomAudience.Subtype.lookalike
            lookalike.remote_create()

            tiered_audiences.append(lookalike)

        return tiered_audiences
from facebookads import test_config

ad_account_id = test_config.account_id
video_path = test_config.video_path


# _DOC open [CUSTOM_AUDIENCE_CREATE]
# _DOC vars [ad_account_id:s]
from facebookads.objects import CustomAudience

audience = CustomAudience(parent_id=ad_account_id)
audience[CustomAudience.Field.subtype] = CustomAudience.Subtype.custom
audience[CustomAudience.Field.name] = "My new CA"
audience[CustomAudience.Field.description] = "People who bought on my website"

audience.remote_create()
# _DOC close [CUSTOM_AUDIENCE_CREATE]


pixel_id = fixtures.create_ads_pixel().get_id_assured()

# _DOC open [CUSTOM_AUDIENCE_CREATE_WCA]
# _DOC vars [ad_account_id:s, pixel_id]
from facebookads.objects import CustomAudience

audience = CustomAudience(parent_id=ad_account_id)
audience[CustomAudience.Field.name] = "my audience"
audience[CustomAudience.Field.subtype] = CustomAudience.Subtype.website
audience[CustomAudience.Field.retention_days] = 15
audience[CustomAudience.Field.rule] = {"url": {"i_contains": "shoes"}}
audience[CustomAudience.Field.pixel_id] = pixel_id
Пример #12
0
response = page_api.call(
    'POST',
    graph_video_upload_url,
    files={'source': (video_path, 'multipart/form-data')},
)
video_id = response.json()['id']

# _DOC open [CUSTOM_AUDIENCE_CREATE]
# _DOC vars [ad_account_id:s]
from facebookads.objects import CustomAudience

audience = CustomAudience(parent_id=ad_account_id)
audience[CustomAudience.Field.name] = 'My new CA'
audience[CustomAudience.Field.description] = 'People who bought on my website'

audience.remote_create()
# _DOC close [CUSTOM_AUDIENCE_CREATE]

custom_audience_id = audience.get_id()

# _DOC open [CUSTOM_AUDIENCE_USERS_ADD_EMAILS]
# _DOC vars [custom_audience_id:s]
from facebookads.objects import CustomAudience

audience = CustomAudience(custom_audience_id)
users = ['*****@*****.**', '*****@*****.**', '*****@*****.**']

audience.add_users(CustomAudience.Schema.email_hash, users)
# _DOC close [CUSTOM_AUDIENCE_USERS_ADD_EMAILS]

# _DOC open [CUSTOM_AUDIENCE_USERS_REMOVE_EMAILS]
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.

from facebookads import test_config

ad_account_id = test_config.account_id
page_id = test_config.page_id

# _DOC open [LOOKALIKE_CREATE_PAGE_FAN]
# _DOC vars [ad_account_id:s, pixel_id:s, page_id:s]
from facebookads.objects import CustomAudience

lookalike = CustomAudience(parent_id=ad_account_id)
lookalike.update({
    CustomAudience.Field.name: 'My lookalike audience',
    CustomAudience.Field.subtype: CustomAudience.Subtype.lookalike,
    CustomAudience.Field.lookalike_spec: {
        'ratio': 0.01,
        'country': 'US',
        'page_id': page_id,
        'conversion_type': 'page_like',
    },
})

lookalike.remote_create()
print(lookalike)
# _DOC close [LOOKALIKE_CREATE_PAGE_FAN]

lookalike.remote_delete()
# Policies [http://developers.facebook.com/policy/]. This copyright notice
# shall be included in all copies or substantial portions of the software.

# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.

from examples.docs import fixtures
from facebookads import test_config

pixel_id = fixtures.create_ads_pixel().get_id()
ad_account_id = test_config.account_id

# _DOC open [CUSTOM_AUDIENCE_CREATE_WCA]
# _DOC vars [ad_account_id:s, pixel_id]
from facebookads.objects import CustomAudience

audience = CustomAudience(parent_id=ad_account_id)
audience[CustomAudience.Field.name] = 'my audience'
audience[CustomAudience.Field.subtype] = CustomAudience.Subtype.website
audience[CustomAudience.Field.retention_days] = 15
audience[CustomAudience.Field.rule] = {'url': {'i_contains': 'shoes'}}
audience[CustomAudience.Field.pixel_id] = pixel_id

audience.remote_create()
# _DOC close [CUSTOM_AUDIENCE_CREATE_WCA]